cuLite v0.3.1
A lite CUDA C++ Interface
Loading...
Searching...
No Matches
culite::dns::CxVector< T_Scalar > Class Template Reference

The device dense complex vector class. More...

Inheritance diagram for culite::dns::CxVector< T_Scalar >:

Constructors

 CxVector ()
 Default constructor.
 CxVector (int_t n)
 Dimension constructor.
 CxVector (int_t n, T_Scalar *vals, bool bind)
 Auxiliary constructor.
 CxVector (const CxVector< T_Scalar > &other)=default
 Copy constructor.
 CxVector (CxVector< T_Scalar > &&other)=default
 Move constructor.
 ~CxVector ()
 Destructor.

Operators

CxVector< T_Scalar > & operator= (const CxVector< T_Scalar > &other)=default
 Copy assignment operator.
CxVector< T_Scalar > & operator= (CxVector< T_Scalar > &&other)=default
 Move assignment operator.
void operator= (T_Scalar val)
 Fill operator.

Public Member Functions

XxVector< T_RScalar > real () const
 Extract the real part.
XxVector< T_RScalar > imag () const
 Extract the imaginary part.

Additional Inherited Members

 XxVector ()
 Default constructor.
 XxVector (int_t n)
 Dimension constructor.
 XxVector (int_t n, T_Scalar *vals, bool bind)
 Auxiliary constructor.
 XxVector (const XxVector< T_Scalar > &other)=default
 Copy constructor.
 XxVector (XxVector< T_Scalar > &&other)=default
 Move constructor.
 ~XxVector ()
 Destructor.
XxVector< T_Scalar > & operator= (const XxVector< T_Scalar > &other)=default
 Copy assignment operator.
XxVector< T_Scalar > & operator= (XxVector< T_Scalar > &&other)=default
 Move assignment operator.
void operator= (T_Scalar val)
 Fill operator.
alias::VirtualScal_vec< T_Scalar > operator- () const
 Unary negation operator.
void iscale (const T_Scalar &val)
 Scale the device vector in-place.
VirtualRowvec< T_Scalar > transpose () const
 Transpose the vector.
VirtualRowvec< T_Scalar > ctranspose () const
 Conjugate transpose the vector.
alias::VirtualConj_vec< T_Scalar > conjugate () const
 Compute the complex conjugate.
void iconjugate ()
 Conjugate the device vector in-place.
T_RScalar normOne () const
 Compute the 1-norm.
T_RScalar normInf () const
 Compute the infinity norm.
T_RScalar normEuc () const
 Compute the Euclidean norm (2-norm).
XxVector< T_Scalar > block (int_t ibgn, int_t ni) const
 Extract a block as a new device vector.
XxVector< T_Scalar > rblock (int_t ibgn, int_t ni)
 Extract a reference block.
Guard< XxVector< T_Scalar > > rblock (int_t ibgn, int_t ni) const
 Extract a guarded reference block.
void setBlock (int_t ibgn, const XxVector< T_Scalar > &src)
 Set a block of elements.
void clear ()
 Clear the device vector.
void fill (T_Scalar val)
 Fill all elements with a value.
XiVector< T_Scalar > copy () const
 Create a deep copy of the device vector.
XiVector< T_Scalar > rcopy ()
 Create a reference copy (shallow copy) of the device vector.
Guard< XiVector< T_Scalar > > rcopy () const
 Create a guarded reference copy (shallow copy) of the device vector.
XiVector< T_Scalar > move ()
 Move the device vector's resources.
std::string info (const std::string &header="") const
 Get information about the device vector.
void copyToHost (::cla3p::dns::XiVector< T_Cla3pScalar > &dest) const
 Copies the device vector to a host vector.
void copyFromHost (const ::cla3p::dns::XiVector< T_Cla3pScalar > &src)
 Copies a host vector to the device vector.
static Guard< XiVector< T_Scalar > > view (int_t n, const T_Scalar *vals)
 Create a view of existing device memory.

Detailed Description

template<typename T_Scalar>
class culite::dns::CxVector< T_Scalar >

The device dense complex vector class.

Represents a complex-valued dense vector stored on the GPU device.

Template Parameters
T_ScalarThe complex scalar type (e.g., std::complex<float>, std::complex<double>).

Constructor & Destructor Documentation

◆ CxVector() [1/5]

template<typename T_Scalar>
culite::dns::CxVector< T_Scalar >::CxVector ( )

Default constructor.

Creates an empty complex device vector with no allocated device memory.

◆ CxVector() [2/5]

template<typename T_Scalar>
culite::dns::CxVector< T_Scalar >::CxVector ( int_t n)
explicit

Dimension constructor.

Creates a complex device vector of the specified size and allocates device memory.

Parameters
[in]nThe number of elements in the vector.

◆ CxVector() [3/5]

template<typename T_Scalar>
culite::dns::CxVector< T_Scalar >::CxVector ( int_t n,
T_Scalar * vals,
bool bind )
explicit

Auxiliary constructor.

Creates a complex device vector using existing device memory.

Parameters
[in]nThe number of elements in the vector.
[in]valsPointer to existing device memory.
[in]bindIf true, the vector takes ownership of the memory.

◆ CxVector() [4/5]

template<typename T_Scalar>
culite::dns::CxVector< T_Scalar >::CxVector ( const CxVector< T_Scalar > & other)
default

Copy constructor.

Creates a new complex device vector by copying another complex device vector.

Parameters
[in]otherThe complex device vector to copy.

◆ CxVector() [5/5]

template<typename T_Scalar>
culite::dns::CxVector< T_Scalar >::CxVector ( CxVector< T_Scalar > && other)
default

Move constructor.

Creates a new complex device vector by moving resources from another complex device vector.

Parameters
[in]otherThe complex device vector to move from.

◆ ~CxVector()

template<typename T_Scalar>
culite::dns::CxVector< T_Scalar >::~CxVector ( )

Destructor.

Destroys the complex device vector and releases allocated device memory.

Member Function Documentation

◆ operator=() [1/3]

template<typename T_Scalar>
CxVector< T_Scalar > & culite::dns::CxVector< T_Scalar >::operator= ( const CxVector< T_Scalar > & other)
default

Copy assignment operator.

Copies the contents of another complex device vector to this complex device vector.

Parameters
[in]otherThe complex device vector to copy.
Returns
Reference to this complex device vector.

◆ operator=() [2/3]

template<typename T_Scalar>
CxVector< T_Scalar > & culite::dns::CxVector< T_Scalar >::operator= ( CxVector< T_Scalar > && other)
default

Move assignment operator.

Moves resources from another complex device vector to this complex device vector.

Parameters
[in]otherThe complex device vector to move from.
Returns
Reference to this complex device vector.

◆ operator=() [3/3]

template<typename T_Scalar>
void culite::dns::CxVector< T_Scalar >::operator= ( T_Scalar val)

Fill operator.

Fills all elements with the specified complex value.

Parameters
[in]valThe complex scalar value to fill with.

◆ real()

template<typename T_Scalar>
XxVector< T_RScalar > culite::dns::CxVector< T_Scalar >::real ( ) const

Extract the real part.

Creates a new device vector containing the real part of each complex element.

Returns
A device vector containing the real parts.

◆ imag()

template<typename T_Scalar>
XxVector< T_RScalar > culite::dns::CxVector< T_Scalar >::imag ( ) const

Extract the imaginary part.

Creates a new device vector containing the imaginary part of each complex element.

Returns
A device vector containing the imaginary parts.