18 #include "../_c_basic_algebra/c_vector_operations.h"
28 template <
typename DataType>
50 template <
typename DataType>
97 template <
typename DataType>
99 const DataType* known_parameters,
100 const DataType known_eigenvalue,
101 const DataType* inquiry_parameters)
const
103 assert((this->eigenvalue_relation_known == 1) && \
104 "An eigenvalue relation is not known. This function should be "
105 "called only when the matrix B is a scalar multiple of the "
109 DataType inquiry_eigenvalue = \
110 known_eigenvalue - known_parameters[0] + inquiry_parameters[0];
112 return inquiry_eigenvalue;
135 template <
typename DataType>
137 const DataType* input_vector,
139 const DataType scale,
140 DataType* output_vector)
const
144 input_vector, vector_size, -scale, output_vector);
Base class for affine matrix functions of one parameter.
void _add_scaled_vector(const DataType *input_vector, const LongIndexType vector_size, const DataType scale, DataType *output_vector) const
Performs the operation , where is an input vector scaled by and it the output vector.
virtual ~cAffineMatrixFunction()
Virtual destructor.
cAffineMatrixFunction(const LongIndexType num_rows_, const LongIndexType num_columns_)
Constructor.
DataType get_eigenvalue(const DataType *known_parameters, const DataType known_eigenvalue, const DataType *inquiry_parameters) const
This function defines an analytic relationship between a given set of parameters and the correspondin...
Base class for linear operators. This class serves as interface for all derived classes.
static void subtract_scaled_vector(const DataType *input_vector, const LongIndexType vector_size, const DataType scale, DataType *output_vector)
Subtracts the scaled input vector from the output vector.