Class ProjectionMatrix
Defined in File ProjectionEvaluator.h
Class Documentation
-
class ProjectionMatrix
A projection matrix — it allows multiplication of real vectors by a specified matrix. The matrix can also be randomly generated.
Public Types
-
using Matrix = Eigen::MatrixXd
Datatype for projection matrices.
Public Functions
-
void computeRandom(unsigned int from, unsigned int to, const std::vector<double> &scale)
Wrapper for ComputeRandom(from, to, scale)
-
void computeRandom(unsigned int from, unsigned int to)
Wrapper for ComputeRandom(from, to)
-
void project(const double *from, Eigen::Ref<Eigen::VectorXd> to) const
Multiply the vector from by the contained projection matrix to obtain the vector to.
-
void print(std::ostream &out = std::cout) const
Print the contained projection matrix to a stram.
Public Static Functions
-
static Matrix ComputeRandom(unsigned int from, unsigned int to, const std::vector<double> &scale)
Compute a random projection matrix with from columns and to rows. A vector with from elements can be multiplied by this matrix in order to produce a vector with to elements.
If the scale argument is specified, the columns of the matrix are divided by the corresponding scaling argument: all elements (rows) in column[i] are divided by scale[i]. This is useful to specify if scaling of the elements of the state is to be applied before projection. If the scale for a column is 0, the column itself is set to 0.
Each element is sampled with a Gaussian distribution with mean 0 and variance 1 and the matrix rows are made orthonormal.
-
static Matrix ComputeRandom(unsigned int from, unsigned int to)
Compute a random projection matrix with from columns and to rows. A vector with from elements can be multiplied by this matrix in order to produce a vector with to elements. This uses the function above called with an empty scale vector.
Each element is sampled with a Gaussian distribution with mean 0 and variance 1 and the matrix rows are made orthonormal.
-
using Matrix = Eigen::MatrixXd