18#include "../_c_basic_algebra/c_vector_operations.h"
28template <
typename DataType>
44template <
typename DataType>
91template <
typename DataType>
93 const DataType* known_parameters,
94 const DataType known_eigenvalue,
95 const DataType* inquiry_parameters)
const
97 assert((this->eigenvalue_relation_known == 1) && \
98 "An eigenvalue relation is not known. This function should be "
99 "called only when the matrix B is a scalar multiple of the "
103 DataType inquiry_eigenvalue = \
104 known_eigenvalue - known_parameters[0] + inquiry_parameters[0];
106 return inquiry_eigenvalue;
129template <
typename DataType>
131 const DataType* input_vector,
133 const DataType scale,
134 DataType* output_vector)
const
138 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.
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...
cAffineMatrixFunction()
Constructor.
static void subtract_scaled_vector(const DataType *RESTRICT input_vector, const LongIndexType vector_size, const DataType scale, DataType *RESTRICT output_vector)
Subtracts the scaled input vector from the output vector.