CLA3P v0.3.1
Compact Linear Algebra Parallel Portable Package
Loading...
Searching...
No Matches
cla3p::dns::CxVector< T_Scalar > Class Template Reference

The dense complex vector class. More...

Inheritance diagram for cla3p::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

alias::VirtualStrided_vec< T_RScalar > real ()
 Extract the real part (mutable).
alias::VirtualStrided_vec< T_RScalar > imag ()
 Extract the imaginary part (mutable).
alias::GuardedStrided_vec< T_RScalar > real () const
 Extract the real part (const).
alias::GuardedStrided_vec< T_RScalar > imag () const
 Extract the imaginary part (const).

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 (T_Scalar val)
 Scale the 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 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.
XxVector< T_Scalar > permuteLeft (const prm::PxMatrix< int_t > &P) const
 Permute the vector.
void permuteLeft (const prm::PxMatrix< int_t > &P, XxVector< T_Scalar > &dest) const
 Permute the vector into a destination.
XxVector< T_Scalar > block (int_t ibgn, int_t ni) const
 Extract a block as a new 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.
T_Scalar & operator() (int_t i)
 Element access operator.
const T_Scalar & operator() (int_t i) const
 Element access operator.
void clear ()
 Clear the vector.
void fill (T_Scalar val)
 Fill all elements with a value.
XiVector< T_Scalar > copy () const
 Create a deep copy of the vector.
XiVector< T_Scalar > rcopy ()
 Create a reference copy (shallow copy) of the vector.
Guard< XiVector< T_Scalar > > rcopy () const
 Create a guarded reference copy (shallow copy) of the vector.
XiVector< T_Scalar > move ()
 Move the vector's resources.
std::string info (const std::string &header="") const
 Get information about the vector.
void print (std::streamsize prec=0) const
 Print the vector to standard output.
void toStream (std::ostream &os, std::streamsize prec=0) const
 Output the vector to a stream.
Public Member Functions inherited from cla3p::Meta1D< int_t >
int_t size () const
 Vector size.
bool empty () const
 Tests whether the object has zero dimension.
 operator bool () const
 Boolean conversion operator.
Public Member Functions inherited from cla3p::dns::XxContainerBase< T_Scalar >
T_Scalar * values ()
 Access the data buffer.
const T_Scalar * values () const
 Access the data buffer.
Public Member Functions inherited from cla3p::Ownership
 Ownership ()
 Default constructor.
 Ownership (bool owner)
 Ownership constructor.
 ~Ownership ()
 Destructor.
bool owner () const
 Tests memory ownership.
void unbind ()
 Relinquishes memory ownership.
static XxVector< T_Scalar > random (int_t n, T_RScalar lo=T_RScalar(0), T_RScalar hi=T_RScalar(1))
 Create a random vector.
static Guard< XiVector< T_Scalar > > view (int_t n, const T_Scalar *vals)
 Create a view of existing memory.

Detailed Description

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

The dense complex vector class.

Represents a dense complex-valued vector stored in contiguous memory.

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>
cla3p::dns::CxVector< T_Scalar >::CxVector ( )

Default constructor.

Creates an empty complex vector with no allocated memory.

◆ CxVector() [2/5]

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

Dimension constructor.

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

Parameters
[in]nThe number of elements.

◆ CxVector() [3/5]

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

Auxiliary constructor.

Creates a complex vector using existing memory.

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

◆ CxVector() [4/5]

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

Copy constructor.

Creates a new complex vector by copying another complex vector.

Parameters
[in]otherThe complex vector to copy.

◆ CxVector() [5/5]

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

Move constructor.

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

Parameters
[in]otherThe complex vector to move from.

◆ ~CxVector()

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

Destructor.

Destroys the complex vector and releases allocated memory.

Member Function Documentation

◆ operator=() [1/3]

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

Copy assignment operator.

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

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

◆ operator=() [2/3]

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

Move assignment operator.

Moves resources from another complex vector to this complex vector.

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

◆ operator=() [3/3]

template<typename T_Scalar>
void cla3p::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() [1/2]

template<typename T_Scalar>
alias::VirtualStrided_vec< T_RScalar > cla3p::dns::CxVector< T_Scalar >::real ( )

Extract the real part (mutable).

Returns a strided view of the real parts of all complex elements. Modifications to the returned view will affect this vector.

Returns
A virtual strided vector view of the real components.

◆ imag() [1/2]

template<typename T_Scalar>
alias::VirtualStrided_vec< T_RScalar > cla3p::dns::CxVector< T_Scalar >::imag ( )

Extract the imaginary part (mutable).

Returns a strided view of the imaginary parts of all complex elements. Modifications to the returned view will affect this vector.

Returns
A virtual strided vector view of the imaginary components.

◆ real() [2/2]

template<typename T_Scalar>
alias::GuardedStrided_vec< T_RScalar > cla3p::dns::CxVector< T_Scalar >::real ( ) const

Extract the real part (const).

Returns a guarded strided view of the real parts of all complex elements.

Returns
A guarded strided vector view of the real components.

◆ imag() [2/2]

template<typename T_Scalar>
alias::GuardedStrided_vec< T_RScalar > cla3p::dns::CxVector< T_Scalar >::imag ( ) const

Extract the imaginary part (const).

Returns a guarded strided view of the imaginary parts of all complex elements.

Returns
A guarded strided vector view of the imaginary components.