imate
C++/CUDA Reference
Loading...
Searching...
No Matches
cMatrix< DataType > Class Template Referenceabstract

Base class for constant matrices. More...

#include <c_matrix.h>

Inheritance diagram for cMatrix< DataType >:
Collaboration diagram for cMatrix< DataType >:

Public Member Functions

 cMatrix ()
 Default constructor.
 
 cMatrix (const FlagType A_is_symmetric_)
 Constructor.
 
virtual ~cMatrix ()
 Destructor.
 
DataType get_eigenvalue (const DataType *known_parameters, const DataType known_eigenvalue, const DataType *inquiry_parameters) const
 This virtual function is implemented from its pure virtual function of the base class. In this class, this functio has no use and was only implemented so that this class be able to be instantiated (due to the pure virtual function).
 
virtual FlagType is_identity_matrix () const =0
 
virtual void set_symmetry (const FlagType symmetric)
 Specify whether the matrix is symmetic or non-symmetric.
 
virtual void dot_plus (const DataType *vector, const DataType alpha, DataType *product)=0
 
virtual void transpose_dot_plus (const DataType *vector, const DataType alpha, DataType *product)=0
 
- Public Member Functions inherited from cLinearOperator< DataType >
 cLinearOperator ()
 Default constructor.
 
virtual ~cLinearOperator ()
 Destructor.
 
void set_parameters (DataType *parameters_)
 Sets the scalar parameter this->parameters. Parameter is initialized to NULL. However, before calling dot or transpose_dot functions, the parameters must be set.
 
virtual void dot (const DataType *vector, DataType *product)=0
 
virtual void transpose_dot (const DataType *vector, DataType *product)=0
 
- Public Member Functions inherited from cLinearOperatorBase
 cLinearOperatorBase ()
 Default constructor.
 
 cLinearOperatorBase (const LongIndexType num_rows_, const LongIndexType num_columns_)
 Constructor with setting num_rows and num_columns.
 
virtual ~cLinearOperatorBase ()
 Destructor.
 
LongIndexType get_num_rows () const
 Returns the number of rows of the matrix.
 
LongIndexType get_num_columns () const
 Returns the number of columns of the matrix.
 
IndexType get_num_parameters () const
 Returns the number of parameters of the linear operator.
 
FlagType is_eigenvalue_relation_known () const
 Returns a flag that determines whether a relation between the parameters of the operator and its eigenvalue(s) is known.
 

Protected Attributes

FlagType A_is_symmetric
 
- Protected Attributes inherited from cLinearOperator< DataType >
DataType * parameters
 
- Protected Attributes inherited from cLinearOperatorBase
const LongIndexType num_rows
 
const LongIndexType num_columns
 
FlagType eigenvalue_relation_known
 
IndexType num_parameters
 

Detailed Description

template<typename DataType>
class cMatrix< DataType >

Base class for constant matrices.

The prefix c in this class's name (and its derivatves), stands for the cpp code, intrast to the cu prefix, which stands for the cuda code. Most derived classes have a cuda counterpart.

See also
cLinearOperator, cAffineMatrixFunction, cDenseMatrix, cCSRMatrix, cCSCMatrix, cuMatrix

Definition at line 44 of file c_matrix.h.

Constructor & Destructor Documentation

◆ cMatrix() [1/2]

template<typename DataType >
cMatrix< DataType >::cMatrix ( )

Default constructor.

Definition at line 28 of file c_matrix.cpp.

28 :
29
30 // Initializer list
32{
33}
FlagType A_is_symmetric
Definition c_matrix.h:77

◆ cMatrix() [2/2]

template<typename DataType >
cMatrix< DataType >::cMatrix ( const FlagType  A_is_symmetric_)
explicit

Constructor.

Parameters
[in]A_is_symmetric_If 1, it is assumed that the matrix is symmetric, otherwise set to 0.

Definition at line 47 of file c_matrix.cpp.

47 :
48
49 // Initializer list
50 A_is_symmetric(A_is_symmetric_)
51{
52}

◆ ~cMatrix()

template<typename DataType >
cMatrix< DataType >::~cMatrix ( )
virtual

Destructor.

Definition at line 63 of file c_matrix.cpp.

64{
65}

Member Function Documentation

◆ dot_plus()

template<typename DataType >
virtual void cMatrix< DataType >::dot_plus ( const DataType *  vector,
const DataType  alpha,
DataType *  product 
)
pure virtual

◆ get_eigenvalue()

template<typename DataType >
DataType cMatrix< DataType >::get_eigenvalue ( const DataType *  known_parameters,
const DataType  known_eigenvalue,
const DataType *  inquiry_parameters 
) const
virtual

This virtual function is implemented from its pure virtual function of the base class. In this class, this functio has no use and was only implemented so that this class be able to be instantiated (due to the pure virtual function).

Parameters
[in]known_parametersA set of parameters of the operator where the corresponding eigenvalue of the parameter is known for.
[in]known_eigenvalueThe known eigenvalue of the operator for the known parameters.
[in]inquiry_parametersA set of inquiry parameters of the operator where the corresponding eigenvalue of the operator is sought.
Returns
The eigenvalue of the operator corresponding the inquiry parameters.

Implements cLinearOperator< DataType >.

Definition at line 116 of file c_matrix.cpp.

120{
121 assert((false) && "This function should not be called within this class");
122
123 // Void unused variables to avoid compiler warnings (-Wno-unused-parameter)
124 (void) known_parameters;
125 (void) known_eigenvalue;
126 (void) inquiry_parameters;
127
128 return 0;
129}

◆ is_identity_matrix()

template<typename DataType >
virtual FlagType cMatrix< DataType >::is_identity_matrix ( ) const
pure virtual

◆ set_symmetry()

template<typename DataType >
void cMatrix< DataType >::set_symmetry ( const FlagType  symmetric)
virtual

Specify whether the matrix is symmetic or non-symmetric.

This function overwrites the symmetry status that has been set by the constructor.

Parameters
[in]symmetricBoolean. If set to 1, the matrix is assumed to be symmetric. Otherwiese non-symmetric.

Implements cLinearOperatorBase.

Definition at line 82 of file c_matrix.cpp.

83{
84 if (symmetric == 1)
85 {
86 this->A_is_symmetric = 1;
87 }
88 else
89 {
90 this->A_is_symmetric = 0;
91 }
92}

◆ transpose_dot_plus()

template<typename DataType >
virtual void cMatrix< DataType >::transpose_dot_plus ( const DataType *  vector,
const DataType  alpha,
DataType *  product 
)
pure virtual

Member Data Documentation

◆ A_is_symmetric

template<typename DataType >
FlagType cMatrix< DataType >::A_is_symmetric
protected

Definition at line 77 of file c_matrix.h.


The documentation for this class was generated from the following files: