MRPT  1.9.9
mrpt::math::CMatrixFixed< T, ROWS, COLS > Class Template Reference

Detailed Description

template<typename T, std::size_t ROWS, std::size_t COLS>
class mrpt::math::CMatrixFixed< T, ROWS, COLS >

A compile-time fixed-size numeric matrix container.

It uses a RowMajor element memory layout.

See also
CMatrixDynamic (for dynamic-size matrices)
Note
For a complete introduction to Matrices and vectors in MRPT, see: https://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes

Definition at line 33 of file CMatrixFixed.h.

#include <mrpt/math/CMatrixFixed.h>

Inheritance diagram for mrpt::math::CMatrixFixed< T, ROWS, COLS >:

Public Member Functions

CMatrixFixed< T, ROWS, COLS > & mbDerived ()
 
const CMatrixFixed< T, ROWS, COLS > & mbDerived () const
 
void setDiagonal (const std::size_t N, const T value)
 Resize to NxN, set all entries to zero, except the main diagonal which is set to value More...
 
void setDiagonal (const T value)
 Set all entries to zero, except the main diagonal which is set to value More...
 
void setDiagonal (const std::vector< T > &diags)
 Resizes to NxN, with N the length of the input vector, set all entries to zero, except the main diagonal which is set to values in the vector. More...
 
void setIdentity ()
 
void setIdentity (const std::size_t N)
 
void matProductOf_AB (const CMatrixFixed< T, ROWS, COLS > &A, const CMatrixFixed< T, ROWS, COLS > &B)
 this = A*B, with A & B of the same type of this. More...
 
CMatrixFixed< T, ROWS, COLS > & mvbDerived ()
 
const CMatrixFixed< T, ROWS, COLS > & mvbDerived () const
 
Constructors, assignment operators, initializers
 CMatrixFixed ()
 Default constructor, initializes all elements to zero. More...
 
 CMatrixFixed (TConstructorFlags_Matrices)
 Constructor which leaves the matrix uninitialized. More...
 
template<size_t N>
 CMatrixFixed (const T(&vals)[N])
 Initializes from a C array with RowMajor values. More...
 
 CMatrixFixed (const T *data)
 Initializes from a plain buffer with RowMajor values. More...
 
template<class Derived >
 CMatrixFixed (const Eigen::MatrixBase< Derived > &m)
 Convert from Eigen matrix. More...
 
template<typename _Lhs , typename _Rhs , int Option>
 CMatrixFixed (const Eigen::Product< _Lhs, _Rhs, Option > &p)
 Convert from Eigen product. More...
 
template<typename Op , typename Lhs , typename Rhs >
 CMatrixFixed (const Eigen::CwiseBinaryOp< Op, Lhs, Rhs > &p)
 Convert from Eigen binary op. More...
 
template<typename VectorType , int Size>
 CMatrixFixed (const Eigen::VectorBlock< VectorType, Size > &m)
 Convert from Eigen block. More...
 
 CMatrixFixed (const size_type rows, const size_type cols)
 Convenient ctor from size: in this class, it throws if size does not match compile-time size. More...
 
template<class MAT >
void setFromMatrixLike (const MAT &m)
 
template<class Derived >
CMatrixFixedoperator= (const Eigen::MatrixBase< Derived > &m)
 Assignment from an Eigen matrix. More...
 
template<typename VectorType , int Size>
CMatrixFixedoperator= (const Eigen::VectorBlock< VectorType, Size > &m)
 Assignment from an Eigen vector block. More...
 
template<typename U >
CMatrixFixedoperator= (const CMatrixDynamic< U > &m)
 Assignment from a Dynamic matrix. More...
 
template<typename VECTOR >
void loadFromArray (const VECTOR &vals)
 
void loadFromRawPointer (const T *data)
 Initializes from a plain buffer with RowMajor values. More...
 
void setSize (size_t row, size_t col, [[maybe_unused]] bool zeroNewElements=false)
 Throws if size does not match with the fixed matrix size. More...
 
void swap (CMatrixFixed &o)
 
CMatrixFixedderived ()
 
const CMatrixFixedderived () const
 
void conservativeResize (size_t row, size_t col)
 
void resize (size_t n)
 
void resize (const matrix_size_t &siz, [[maybe_unused]] bool zeroNewElements=false)
 Throws if size does not match with the fixed matrix size. More...
 
void resize (size_t row, size_t col)
 
constexpr size_type rows () const
 Number of rows in the matrix. More...
 
constexpr size_type cols () const
 Number of columns in the matrix. More...
 
constexpr matrix_size_t size () const
 Get a 2-vector with [NROWS NCOLS] (as in MATLAB command size(x)) More...
 
Matrix element access & modifiers
template<typename EIGEN_MATRIX = eigen_t, typename EIGEN_MAP = Eigen::Map< EIGEN_MATRIX, MRPT_MAX_STATIC_ALIGN_BYTES, Eigen::InnerStride<1>>>
EIGEN_MAP asEigen ()
 Get as an Eigen-compatible Eigen::Map object. More...
 
template<typename EIGEN_MATRIX = eigen_t, typename EIGEN_MAP = Eigen::Map< const EIGEN_MATRIX, MRPT_MAX_STATIC_ALIGN_BYTES, Eigen::InnerStride<1>>>
EIGEN_MAP asEigen () const
 
T & operator() (int row, int col)
 Access (row,col), without out-of-bounds check (except in Debug builds) More...
 
const T & operator() (int row, int col) const
 
T & operator() (int i)
 Access the i-th element, Row-Major order, without out-of-bounds check (except in Debug builds) More...
 
const T & operator() (int i) const
 
T & operator[] (int i)
 Access the [i-th] element (for 1xN or Nx1 matrices) More...
 
const T & operator[] (int i) const
 
CMatrixFixed< float, ROWS, COLS > cast_float () const
 
CMatrixFixed< double, ROWS, COLS > cast_double () const
 
CMatrixFixed< T, ROWS, 1 > llt_solve (const CMatrixFixed< T, ROWS, 1 > &b) const
 Solves the linear system Ax=b, returns x, with A this symmetric matrix. More...
 
CMatrixFixed< T, ROWS, 1 > lu_solve (const CMatrixFixed< T, ROWS, 1 > &b) const
 Solves the linear system Ax=b, returns x, with A this asymmetric matrix. More...
 
void sum_At (const CMatrixFixed< Scalar, ROWS, COLS > &A)
 this += AT More...
 
Operations that DO require `#include <Eigen/Dense>` in user code
auto col (int colIdx)
 
auto col (int colIdx) const
 
auto row (int rowIdx)
 
auto row (int rowIdx) const
 
void extractRow (int rowIdx, VECTOR_LIKE &v) const
 
VECTOR_LIKE extractRow (int rowIdx) const
 
void extractColumn (int colIdx, VECTOR_LIKE &v) const
 
VECTOR_LIKE extractColumn (int colIdx) const
 
Standalone operations (do NOT require `#include <Eigen/Dense>`)
det () const
 Determinant of matrix. More...
 
CMatrixFixed< T, ROWS, COLS > inverse () const
 Returns the inverse of a general matrix using LU. More...
 
CMatrixFixed< T, ROWS, COLS > inverse_LLt () const
 Returns the inverse of a symmetric matrix using LLt. More...
 
int rank (T threshold=0) const
 Finds the rank of the matrix via LU decomposition. More...
 
bool chol (CMatrixFixed< T, ROWS, COLS > &U) const
 Cholesky M=UT * U decomposition for symmetric matrix (upper-half of the matrix is actually ignored. More...
 
bool eig (CMatrixFixed< T, ROWS, COLS > &eVecs, std::vector< T > &eVals, bool sorted=true) const
 Computes the eigenvectors and eigenvalues for a square, general matrix. More...
 
bool eig_symmetric (CMatrixFixed< T, ROWS, COLS > &eVecs, std::vector< T > &eVals, bool sorted=true) const
 Read: eig() More...
 
maximumDiagonal () const
 Returns the maximum value in the diagonal. More...
 
minimumDiagonal () const
 Returns the minimum value in the diagonal. More...
 
trace () const
 Returns the trace of the matrix (not necessarily square). More...
 
void unsafeRemoveColumns (const std::vector< std::size_t > &idxs)
 Removes columns of the matrix. More...
 
void removeColumns (const std::vector< std::size_t > &idxsToRemove)
 Removes columns of the matrix. More...
 
void unsafeRemoveRows (const std::vector< std::size_t > &idxs)
 Removes rows of the matrix. More...
 
void removeRows (const std::vector< std::size_t > &idxsToRemove)
 Removes rows of the matrix. More...
 
void insertMatrix (const int row_start, const int col_start, const OTHERMATVEC &submat)
 Copies the given input submatrix/vector into this matrix/vector, starting at the given top-left coordinates. More...
 
void insertMatrixTransposed (const int row_start, const int col_start, const OTHERMATVEC &submat)
 Like insertMatrix(), but inserts ‘submat’` (transposed) More...
 
CMatrixFixed< T, BLOCK_ROWS, BLOCK_COLS > blockCopy (int start_row=0, int start_col=0) const
 const blockCopy(): Returns a copy of the given block More...
 
CMatrixDynamic< T > blockCopy (int start_row, int start_col, int BLOCK_ROWS, int BLOCK_COLS) const
 const blockCopy(): Returns a copy of the given block (non templated version, dynamic sizes) More...
 
CMatrixFixed< T, BLOCK_ROWS, BLOCK_COLS > extractMatrix (const int start_row=0, const int start_col=0) const
 
CMatrixDynamic< T > extractMatrix (const int BLOCK_ROWS, const int BLOCK_COLS, const int start_row, const int start_col) const
 
void matProductOf_AAt (const MAT_A &A)
 this = A * AT More...
 
void matProductOf_AtA (const MAT_A &A)
 this = AT * A More...
 
Operations that DO require `#include <Eigen/Dense>` in user code
auto block (int start_row, int start_col)
 non-const block(): Returns an Eigen::Block reference to the block More...
 
auto block (int start_row, int start_col, int BLOCK_ROWS, int BLOCK_COLS)
 
auto block (int start_row, int start_col, int BLOCK_ROWS, int BLOCK_COLS) const
 
auto transpose ()
 
auto transpose () const
 
auto array ()
 
auto array () const
 
auto operator- () const
 
auto operator- (const MatrixVectorBase< S2, D2 > &m2) const
 
auto operator+ (const MatrixVectorBase< S2, D2 > &m2) const
 
void operator+= (const MatrixVectorBase< S2, D2 > &m2)
 
void operator-= (const MatrixVectorBase< S2, D2 > &m2)
 
auto operator* (const MatrixVectorBase< S2, D2 > &m2) const
 
auto operator* (const T s) const
 
CMatrixFixed< T, N, 1 > tail () const
 
CMatrixFixed< T, N, 1 > head () const
 
Standalone operations (do NOT require `#include <Eigen/Dense>`)
CMatrixFixed< T, ROWS, COLS > operator- (const CMatrixFixed< T, ROWS, COLS > &m2) const
 
CMatrixFixed< T, ROWS, COLS > operator+ (const CMatrixFixed< T, ROWS, COLS > &m2) const
 
void operator+= (T s)
 
void operator+= (const CMatrixFixed< T, ROWS, COLS > &m2)
 
void operator-= (T s)
 
void operator-= (const CMatrixFixed< T, ROWS, COLS > &m2)
 
CMatrixDynamic< T > operator* (const CMatrixDynamic< T > &v)
 
CMatrixFixed< T, ROWS, COLS > operator* (const CMatrixFixed< T, ROWS, COLS > &m2) const
 
T & coeffRef (int r, int c)
 
const T & coeff (int r, int c) const
 
minCoeff () const
 Minimum value in the matrix/vector. More...
 
minCoeff (std::size_t &outIndexOfMin) const
 
minCoeff (std::size_t &rowIdx, std::size_t &colIdx) const
 
maxCoeff () const
 Maximum value in the matrix/vector. More...
 
maxCoeff (std::size_t &outIndexOfMax) const
 
maxCoeff (std::size_t &rowIdx, std::size_t &colIdx) const
 
bool isSquare () const
 returns true if matrix is NxN More...
 
bool empty () const
 returns true if matrix/vector has size=0 More...
 
norm_inf () const
 Compute the norm-infinite of a vector ($f[ ||{v}||_ $f]), ie the maximum absolute value of the elements. More...
 
norm () const
 Compute the L2 norm of a vector/array/matrix (the Euclidean distance to the origin, taking all the elements as a single vector). More...
 
void operator*= (T s)
 
dot (const CVectorDynamic< T > &v) const
 dot product of this \cdot v More...
 
dot (const MatrixVectorBase< T, CMatrixFixed< T, ROWS, COLS > > &v) const
 
void matProductOf_Ab (const CMatrixDynamic< T > &A, const CVectorDynamic< T > &b)
 this = A * b , with A and b a dynamic matrix & vector More...
 
void matProductOf_Atb (const CMatrixDynamic< T > &A, const CVectorDynamic< T > &b)
 this = AT * b , with A and b a dynamic matrix & vector More...
 
sum () const
 Sum of all elements in matrix/vector. More...
 
sum_abs () const
 Sum of the absolute value of all elements in matrix/vector. More...
 
std::string asString () const
 Returns a string representation of the vector/matrix, using Eigen's default settings. More...
 
bool fromMatlabStringFormat (const std::string &s, mrpt::optional_ref< std::ostream > dump_errors_here=std::nullopt)
 Reads a matrix from a string in Matlab-like format, for example: "[1 0 2; 0 4 -1]" The string must start with '[' and end with ']'. More...
 
std::string inMatlabFormat (const std::size_t decimal_digits=6) const
 Exports the matrix as a string compatible with Matlab/Octave. More...
 
void saveToTextFile (const std::string &file, mrpt::math::TMatrixTextFileFormat fileFormat=mrpt::math::MATRIX_FORMAT_ENG, bool appendMRPTHeader=false, const std::string &userHeader=std::string()) const
 Saves the vector/matrix to a file compatible with MATLAB/Octave text format. More...
 
void loadFromTextFile (std::istream &f)
 Loads a vector/matrix from a text file, compatible with MATLAB text format. More...
 
void loadFromTextFile (const std::string &file)
 
bool operator== (const OTHERMATVEC &o) const
 
bool operator!= (const OTHERMATVEC &o) const
 

Static Public Member Functions

static CMatrixFixed< T, ROWS, COLS > Identity ()
 
static CMatrixFixed< T, ROWS, COLS > Identity (const std::size_t N)
 

Private Types

using vec_t = std::array< T, ROWS *COLS >
 RowMajor matrix data. More...
 

Private Attributes

vec_t m_data
 

Matrix type definitions

using value_type = T
 The type of the matrix elements. More...
 
using Scalar = T
 
using Index = int
 
using reference = T &
 
using const_reference = const T &
 
using size_type = int
 
using difference_type = std::ptrdiff_t
 
using eigen_t = Eigen::Matrix< T, ROWS, COLS, StorageOrder, ROWS, COLS >
 
static constexpr int RowsAtCompileTime = ROWS
 
static constexpr int ColsAtCompileTime = COLS
 
static constexpr int SizeAtCompileTime = ROWS * COLS
 
static constexpr int is_mrpt_type = 1
 
static constexpr int StorageOrder
 

Iterators interface

using iterator = typename vec_t::iterator
 
using const_iterator = typename vec_t::const_iterator
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 

Initialization methods

void fill (const T &val)
 
void setConstant (const T value)
 
void setConstant (size_t nrows, size_t ncols, const T value)
 
void setConstant (size_t nrows, const T value)
 
void assign (const std::size_t N, const T value)
 
void setZero ()
 
void setZero (size_t nrows, size_t ncols)
 
void setZero (size_t nrows)
 
static CMatrixFixed< T, ROWS, COLS > Constant (const T value)
 
static CMatrixFixed< T, ROWS, COLS > Constant (size_t nrows, size_t ncols, const T value)
 
static CMatrixFixed< T, ROWS, COLS > Zero ()
 
static CMatrixFixed< T, ROWS, COLS > Zero (size_t nrows, size_t ncols)
 

Member Typedef Documentation

◆ const_iterator

template<typename T, std::size_t ROWS, std::size_t COLS>
using mrpt::math::CMatrixFixed< T, ROWS, COLS >::const_iterator = typename vec_t::const_iterator

Definition at line 63 of file CMatrixFixed.h.

◆ const_reference

template<typename T, std::size_t ROWS, std::size_t COLS>
using mrpt::math::CMatrixFixed< T, ROWS, COLS >::const_reference = const T&

Definition at line 48 of file CMatrixFixed.h.

◆ difference_type

template<typename T, std::size_t ROWS, std::size_t COLS>
using mrpt::math::CMatrixFixed< T, ROWS, COLS >::difference_type = std::ptrdiff_t

Definition at line 50 of file CMatrixFixed.h.

◆ eigen_t

template<typename T, std::size_t ROWS, std::size_t COLS>
using mrpt::math::CMatrixFixed< T, ROWS, COLS >::eigen_t = Eigen::Matrix<T, ROWS, COLS, StorageOrder, ROWS, COLS>

Definition at line 57 of file CMatrixFixed.h.

◆ Index

template<typename T, std::size_t ROWS, std::size_t COLS>
using mrpt::math::CMatrixFixed< T, ROWS, COLS >::Index = int

Definition at line 46 of file CMatrixFixed.h.

◆ iterator

template<typename T, std::size_t ROWS, std::size_t COLS>
using mrpt::math::CMatrixFixed< T, ROWS, COLS >::iterator = typename vec_t::iterator

Definition at line 62 of file CMatrixFixed.h.

◆ reference

template<typename T, std::size_t ROWS, std::size_t COLS>
using mrpt::math::CMatrixFixed< T, ROWS, COLS >::reference = T&

Definition at line 47 of file CMatrixFixed.h.

◆ Scalar

template<typename T, std::size_t ROWS, std::size_t COLS>
using mrpt::math::CMatrixFixed< T, ROWS, COLS >::Scalar = T

Definition at line 45 of file CMatrixFixed.h.

◆ size_type

template<typename T, std::size_t ROWS, std::size_t COLS>
using mrpt::math::CMatrixFixed< T, ROWS, COLS >::size_type = int

Definition at line 49 of file CMatrixFixed.h.

◆ value_type

template<typename T, std::size_t ROWS, std::size_t COLS>
using mrpt::math::CMatrixFixed< T, ROWS, COLS >::value_type = T

The type of the matrix elements.

Definition at line 44 of file CMatrixFixed.h.

◆ vec_t

template<typename T, std::size_t ROWS, std::size_t COLS>
using mrpt::math::CMatrixFixed< T, ROWS, COLS >::vec_t = std::array<T, ROWS * COLS>
private

RowMajor matrix data.

Definition at line 37 of file CMatrixFixed.h.

Constructor & Destructor Documentation

◆ CMatrixFixed() [1/9]

template<typename T, std::size_t ROWS, std::size_t COLS>
mrpt::math::CMatrixFixed< T, ROWS, COLS >::CMatrixFixed ( )
inline

Default constructor, initializes all elements to zero.

Definition at line 76 of file CMatrixFixed.h.

◆ CMatrixFixed() [2/9]

template<typename T, std::size_t ROWS, std::size_t COLS>
mrpt::math::CMatrixFixed< T, ROWS, COLS >::CMatrixFixed ( TConstructorFlags_Matrices  )
inline

Constructor which leaves the matrix uninitialized.

Example of usage: CMatrixFixed<double,3,2> M(mrpt::math::UNINITIALIZED_MATRIX);

Definition at line 82 of file CMatrixFixed.h.

◆ CMatrixFixed() [3/9]

template<typename T, std::size_t ROWS, std::size_t COLS>
template<size_t N>
mrpt::math::CMatrixFixed< T, ROWS, COLS >::CMatrixFixed ( const T(&)  vals[N])
inlineexplicit

Initializes from a C array with RowMajor values.

Definition at line 86 of file CMatrixFixed.h.

◆ CMatrixFixed() [4/9]

template<typename T, std::size_t ROWS, std::size_t COLS>
mrpt::math::CMatrixFixed< T, ROWS, COLS >::CMatrixFixed ( const T *  data)
inlineexplicit

Initializes from a plain buffer with RowMajor values.

Definition at line 92 of file CMatrixFixed.h.

◆ CMatrixFixed() [5/9]

template<typename T, std::size_t ROWS, std::size_t COLS>
template<class Derived >
mrpt::math::CMatrixFixed< T, ROWS, COLS >::CMatrixFixed ( const Eigen::MatrixBase< Derived > &  m)
inlineexplicit

Convert from Eigen matrix.

Definition at line 96 of file CMatrixFixed.h.

◆ CMatrixFixed() [6/9]

template<typename T, std::size_t ROWS, std::size_t COLS>
template<typename _Lhs , typename _Rhs , int Option>
mrpt::math::CMatrixFixed< T, ROWS, COLS >::CMatrixFixed ( const Eigen::Product< _Lhs, _Rhs, Option > &  p)
inlineexplicit

Convert from Eigen product.

Definition at line 102 of file CMatrixFixed.h.

◆ CMatrixFixed() [7/9]

template<typename T, std::size_t ROWS, std::size_t COLS>
template<typename Op , typename Lhs , typename Rhs >
mrpt::math::CMatrixFixed< T, ROWS, COLS >::CMatrixFixed ( const Eigen::CwiseBinaryOp< Op, Lhs, Rhs > &  p)
inlineexplicit

Convert from Eigen binary op.

Definition at line 108 of file CMatrixFixed.h.

◆ CMatrixFixed() [8/9]

template<typename T, std::size_t ROWS, std::size_t COLS>
template<typename VectorType , int Size>
mrpt::math::CMatrixFixed< T, ROWS, COLS >::CMatrixFixed ( const Eigen::VectorBlock< VectorType, Size > &  m)
inlineexplicit

Convert from Eigen block.

Definition at line 115 of file CMatrixFixed.h.

◆ CMatrixFixed() [9/9]

template<typename T, std::size_t ROWS, std::size_t COLS>
mrpt::math::CMatrixFixed< T, ROWS, COLS >::CMatrixFixed ( const size_type  rows,
const size_type  cols 
)
inline

Convenient ctor from size: in this class, it throws if size does not match compile-time size.

It is provided for the sake of offering a uniform API with CMatrixDynamic.

Definition at line 123 of file CMatrixFixed.h.

Member Function Documentation

◆ array() [1/2]

auto mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::array ( )
inlineinherited

◆ array() [2/2]

auto mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::array ( ) const
inlineinherited

◆ asEigen() [1/2]

template<typename T, std::size_t ROWS, std::size_t COLS>
template<typename EIGEN_MATRIX = eigen_t, typename EIGEN_MAP = Eigen::Map< EIGEN_MATRIX, MRPT_MAX_STATIC_ALIGN_BYTES, Eigen::InnerStride<1>>>
EIGEN_MAP mrpt::math::CMatrixFixed< T, ROWS, COLS >::asEigen ( )
inline

Get as an Eigen-compatible Eigen::Map object.

Definition at line 251 of file CMatrixFixed.h.

Referenced by mrpt::poses::CPoint2DPDFGaussian::bayesianFusion(), mrpt::poses::CPointPDFGaussian::bayesianFusion(), mrpt::poses::CPosePDFGaussian::bayesianFusion(), mrpt::poses::CPointPDFSOG::bayesianFusion(), mrpt::poses::CPosePDFSOG::bayesianFusion(), mrpt::poses::CPoint2DPDFGaussian::changeCoordinatesReference(), mrpt::poses::CPointPDFGaussian::changeCoordinatesReference(), Pose3DTests::check_jacob_expe_e_at_0(), mrpt::poses::CPose3DQuat::composePoint(), mrpt::math::TPose3D::composePose(), mrpt::poses::CPose3DPDFGaussian::copyFrom(), mrpt::img::CCanvas::ellipseGaussian(), mrpt::vision::CDifodo::filterLevelSolution(), SE_traits_tests< POSE_TYPE >::func_numeric_DinvP1InvP2(), mrpt::poses::CPose3D::getHomogeneousMatrix(), mrpt::slam::CICP::ICP_Method_LM(), mrpt::maps::CBeaconMap::internal_computeObservationLikelihood(), mrpt::maps::CBeaconMap::internal_insertObservation(), mrpt::poses::CPosePDFGaussian::inverse(), mrpt::poses::CPosePDFGaussianInf::inverse(), mrpt::poses::CPosePDFGaussian::inverseComposition(), mrpt::poses::CPose3DPDF::jacobiansPoseComposition(), mrpt::poses::CPoint2DPDFGaussian::mahalanobisDistanceTo(), mrpt::poses::CPosePDFGaussian::mahalanobisDistanceTo(), mrpt::poses::CPosePDFGaussianInf::mahalanobisDistanceTo(), mrpt::poses::CPoint2DPDFGaussian::mahalanobisDistanceToPoint(), mrpt::poses::CPosePDFSOG::mergeModes(), mrpt::math::operator-(), mrpt::vision::CDifodo::poseUpdate(), mrpt::obs::CActionRobotMovement2D::prepareFastDrawSingleSample_modelGaussian(), mrpt::poses::CPoint2DPDFGaussian::productIntegralWith(), mrpt::poses::CPointPDFGaussian::productIntegralWith(), mrpt::poses::CPointPDFGaussian::productIntegralWith2D(), mrpt::vision::recompute_errors_and_Jacobians(), mrpt::poses::CPosePDFGaussian::rotateCov(), mrpt::poses::CPosePDFGaussianInf::rotateCov(), mrpt::bayes::CKalmanFilterCapable< 7, 3, 3, 7 >::runOneKalmanIteration(), mrpt::maps::CLandmarksMap::saveToMATLABScript2D(), mrpt::poses::CPoseRandomSampler::setPosePDF(), TEST(), Pose3DQuatTests::test_composePointJacob(), Pose3DTests::test_composePointJacob(), Pose3DTests::test_composePointJacob_se3(), Pose3DQuatTests::test_invComposePointJacob(), Pose3DTests::test_invComposePointJacob(), Pose3DTests::test_invComposePointJacob_se3(), Pose3DQuatTests::test_normalizeJacob(), and Pose3DQuatTests::test_sphericalCoords().

Here is the caller graph for this function:

◆ asEigen() [2/2]

template<typename T, std::size_t ROWS, std::size_t COLS>
template<typename EIGEN_MATRIX = eigen_t, typename EIGEN_MAP = Eigen::Map< const EIGEN_MATRIX, MRPT_MAX_STATIC_ALIGN_BYTES, Eigen::InnerStride<1>>>
EIGEN_MAP mrpt::math::CMatrixFixed< T, ROWS, COLS >::asEigen ( ) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 266 of file CMatrixFixed.h.

◆ assign()

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::assign ( const std::size_t  N,
const T  value 
)
inlineinherited

◆ asString()

std::string mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::asString ( ) const
inherited

Returns a string representation of the vector/matrix, using Eigen's default settings.

Definition at line 335 of file MatrixVectorBase_impl.h.

Referenced by TEST().

◆ begin() [1/2]

template<typename T, std::size_t ROWS, std::size_t COLS>
iterator mrpt::math::CMatrixFixed< T, ROWS, COLS >::begin ( )
inline

Definition at line 64 of file CMatrixFixed.h.

◆ begin() [2/2]

template<typename T, std::size_t ROWS, std::size_t COLS>
const_iterator mrpt::math::CMatrixFixed< T, ROWS, COLS >::begin ( ) const
inline

Definition at line 66 of file CMatrixFixed.h.

◆ block() [1/3]

auto mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::block ( int  start_row,
int  start_col 
)
inlineinherited

non-const block(): Returns an Eigen::Block reference to the block

Definition at line 138 of file MatrixVectorBase.h.

References mrpt::math::MatrixVectorBase< Scalar, Derived >::mvbDerived().

Referenced by jacob_deps_D_p_deps().

◆ block() [2/3]

auto mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::block ( int  start_row,
int  start_col,
int  BLOCK_ROWS,
int  BLOCK_COLS 
)
inlineinherited

◆ block() [3/3]

auto mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::block ( int  start_row,
int  start_col,
int  BLOCK_ROWS,
int  BLOCK_COLS 
) const
inlineinherited

◆ blockCopy() [1/2]

CMatrixFixed<T , BLOCK_ROWS, BLOCK_COLS> mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::blockCopy ( int  start_row = 0,
int  start_col = 0 
) const
inlineinherited

const blockCopy(): Returns a copy of the given block

Definition at line 233 of file MatrixBase.h.

◆ blockCopy() [2/2]

CMatrixDynamic<T > mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::blockCopy ( int  start_row,
int  start_col,
int  BLOCK_ROWS,
int  BLOCK_COLS 
) const
inlineinherited

const blockCopy(): Returns a copy of the given block (non templated version, dynamic sizes)

Definition at line 240 of file MatrixBase.h.

References mrpt::math::MatrixBase< Scalar, Derived >::extractMatrix().

◆ cast_double()

template<typename T , std::size_t ROWS, std::size_t COLS>
CMatrixFixed< double, ROWS, COLS > mrpt::math::CMatrixFixed< T, ROWS, COLS >::cast_double ( ) const

Definition at line 25 of file CMatrixFixed_impl.h.

Referenced by mrpt::slam::CICP::ICP_Method_LM(), mrpt::poses::CPointPDFGaussian::serializeFrom(), mrpt::poses::CPosePDFGaussian::serializeFrom(), and mrpt::poses::CPosePDFSOG::serializeFrom().

Here is the caller graph for this function:

◆ cast_float()

template<typename T , std::size_t ROWS, std::size_t COLS>
CMatrixFixed< float, ROWS, COLS > mrpt::math::CMatrixFixed< T, ROWS, COLS >::cast_float ( ) const

Definition at line 17 of file CMatrixFixed_impl.h.

Referenced by mrpt::vision::CDifodo::computeWeights(), mrpt::vision::CDifodo::filterLevelSolution(), mrpt::vision::CDifodo::poseUpdate(), and mrpt::obs::detail::project3DPointsFromDepthImageInto().

Here is the caller graph for this function:

◆ cbegin()

template<typename T, std::size_t ROWS, std::size_t COLS>
const_iterator mrpt::math::CMatrixFixed< T, ROWS, COLS >::cbegin ( ) const
inline

Definition at line 68 of file CMatrixFixed.h.

◆ cend()

template<typename T, std::size_t ROWS, std::size_t COLS>
const_iterator mrpt::math::CMatrixFixed< T, ROWS, COLS >::cend ( ) const
inline

Definition at line 69 of file CMatrixFixed.h.

◆ chol()

bool mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::chol ( CMatrixFixed< T, ROWS, COLS > &  U) const
inherited

Cholesky M=UT * U decomposition for symmetric matrix (upper-half of the matrix is actually ignored.

Returns
false if Cholesky fails

Definition at line 165 of file MatrixBase_impl.h.

◆ coeff()

const T & mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::coeff ( int  r,
int  c 
) const
inlineinherited

◆ coeffRef()

T & mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::coeffRef ( int  r,
int  c 
)
inlineinherited

◆ col() [1/2]

◆ col() [2/2]

auto mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::col ( int  colIdx) const
inlineinherited

◆ cols()

template<typename T, std::size_t ROWS, std::size_t COLS>
constexpr size_type mrpt::math::CMatrixFixed< T, ROWS, COLS >::cols ( ) const
inline

◆ conservativeResize()

template<typename T, std::size_t ROWS, std::size_t COLS>
void mrpt::math::CMatrixFixed< T, ROWS, COLS >::conservativeResize ( size_t  row,
size_t  col 
)
inline

Definition at line 202 of file CMatrixFixed.h.

◆ Constant() [1/2]

static CMatrixFixed< T, ROWS, COLS > mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::Constant ( const T  value)
inlinestaticinherited

Definition at line 89 of file MatrixVectorBase.h.

References ASSERTMSG_.

◆ Constant() [2/2]

static CMatrixFixed< T, ROWS, COLS > mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::Constant ( size_t  nrows,
size_t  ncols,
const T  value 
)
inlinestaticinherited

Definition at line 99 of file MatrixVectorBase.h.

◆ derived() [1/2]

template<typename T, std::size_t ROWS, std::size_t COLS>
CMatrixFixed& mrpt::math::CMatrixFixed< T, ROWS, COLS >::derived ( )
inline

Definition at line 200 of file CMatrixFixed.h.

◆ derived() [2/2]

template<typename T, std::size_t ROWS, std::size_t COLS>
const CMatrixFixed& mrpt::math::CMatrixFixed< T, ROWS, COLS >::derived ( ) const
inline

Definition at line 201 of file CMatrixFixed.h.

◆ det()

T mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::det ( ) const
inherited

Determinant of matrix.

Definition at line 76 of file MatrixBase_impl.h.

Referenced by mrpt::math::productIntegralTwoGaussians().

◆ dot() [1/2]

T mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::dot ( const CVectorDynamic< T > &  v) const
inherited

dot product of this \cdot v

Definition at line 509 of file MatrixVectorBase_impl.h.

References ASSERTMSG_.

◆ dot() [2/2]

T mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::dot ( const MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > > &  v) const
inherited

Definition at line 522 of file MatrixVectorBase_impl.h.

References ASSERTMSG_.

◆ eig()

bool mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::eig ( CMatrixFixed< T, ROWS, COLS > &  eVecs,
std::vector< T > &  eVals,
bool  sorted = true 
) const
inherited

Computes the eigenvectors and eigenvalues for a square, general matrix.

Use eig_symmetric() for symmetric matrices for better accuracy and performance. Eigenvectors are the columns of the returned matrix, and their order matches that of returned eigenvalues.

Parameters
[in]sortedIf true, eigenvalues (and eigenvectors) will be sorted in ascending order.
[out]eVecsThe container where eigenvectors will be stored.
[out]eValsThe container where eigenvalues will be stored.
Returns
false if eigenvalues could not be determined.

Definition at line 107 of file MatrixBase_impl.h.

References ASSERT_EQUAL_, and mrpt::math::detail::sortEigResults().

Referenced by mrpt::img::CCanvas::ellipseGaussian().

◆ eig_symmetric()

bool mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::eig_symmetric ( CMatrixFixed< T, ROWS, COLS > &  eVecs,
std::vector< T > &  eVals,
bool  sorted = true 
) const
inherited

Read: eig()

Note
This only uses the lower-triangular part of the matrix

Definition at line 131 of file MatrixBase_impl.h.

References ASSERT_EQUAL_, and mrpt::math::detail::sortEigResults().

◆ empty()

bool mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::empty ( ) const
inlineinherited

returns true if matrix/vector has size=0

Definition at line 260 of file MatrixVectorBase.h.

References mrpt::math::MatrixVectorBase< Scalar, Derived >::mvbDerived().

◆ end() [1/2]

template<typename T, std::size_t ROWS, std::size_t COLS>
iterator mrpt::math::CMatrixFixed< T, ROWS, COLS >::end ( )
inline

Definition at line 65 of file CMatrixFixed.h.

◆ end() [2/2]

template<typename T, std::size_t ROWS, std::size_t COLS>
const_iterator mrpt::math::CMatrixFixed< T, ROWS, COLS >::end ( ) const
inline

Definition at line 67 of file CMatrixFixed.h.

◆ extractColumn() [1/2]

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::extractColumn ( int  colIdx,
VECTOR_LIKE &  v 
) const
inlineinherited

◆ extractColumn() [2/2]

VECTOR_LIKE mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::extractColumn ( int  colIdx) const
inlineinherited

◆ extractMatrix() [1/2]

CMatrixFixed<T , BLOCK_ROWS, BLOCK_COLS> mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::extractMatrix ( const int  start_row = 0,
const int  start_col = 0 
) const
inlineinherited

◆ extractMatrix() [2/2]

CMatrixDynamic<T > mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::extractMatrix ( const int  BLOCK_ROWS,
const int  BLOCK_COLS,
const int  start_row,
const int  start_col 
) const
inlineinherited

◆ extractRow() [1/2]

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::extractRow ( int  rowIdx,
VECTOR_LIKE &  v 
) const
inlineinherited

◆ extractRow() [2/2]

VECTOR_LIKE mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::extractRow ( int  rowIdx) const
inlineinherited

◆ fill()

◆ fromMatlabStringFormat()

bool mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::fromMatlabStringFormat ( const std::string s,
mrpt::optional_ref< std::ostream >  dump_errors_here = std::nullopt 
)
inherited

Reads a matrix from a string in Matlab-like format, for example: "[1 0 2; 0 4 -1]" The string must start with '[' and end with ']'.

Rows are separated by semicolons ';' and columns in each row by one or more whitespaces ' ', tabs '' or commas ','.

This format is also used for CConfigFile::read_matrix.

Returns
true on success. false if the string is malformed, and then the matrix will be resized to 0x0.
See also
inMatlabFormat, CConfigFile::read_matrix

Definition at line 24 of file MatrixVectorBase_impl.h.

References val.

Referenced by TEST().

◆ head()

CMatrixFixed<T , N, 1> mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::head ( ) const
inlineinherited

◆ Identity() [1/2]

static CMatrixFixed< T, ROWS, COLS > mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::Identity ( )
inlinestaticinherited

Definition at line 64 of file MatrixBase.h.

References ASSERTMSG_.

◆ Identity() [2/2]

static CMatrixFixed< T, ROWS, COLS > mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::Identity ( const std::size_t  N)
inlinestaticinherited

Definition at line 74 of file MatrixBase.h.

◆ inMatlabFormat()

std::string mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::inMatlabFormat ( const std::size_t  decimal_digits = 6) const
inherited

Exports the matrix as a string compatible with Matlab/Octave.

See also
fromMatlabStringFormat()

Definition at line 139 of file MatrixVectorBase_impl.h.

◆ insertMatrix()

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::insertMatrix ( const int  row_start,
const int  col_start,
const OTHERMATVEC &  submat 
)
inlineinherited

◆ insertMatrixTransposed()

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::insertMatrixTransposed ( const int  row_start,
const int  col_start,
const OTHERMATVEC &  submat 
)
inlineinherited

Like insertMatrix(), but inserts ‘submat’` (transposed)

Definition at line 221 of file MatrixBase.h.

References ASSERT_BELOWEQ_, and mrpt::math::MatrixBase< Scalar, Derived >::mbDerived().

◆ inverse()

CMatrixFixed< T, ROWS, COLS > mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::inverse ( ) const
inherited

Returns the inverse of a general matrix using LU.

Definition at line 183 of file MatrixBase_impl.h.

References ASSERT_EQUAL_, and mrpt::math::UNINITIALIZED_MATRIX.

◆ inverse_LLt()

CMatrixFixed< T, ROWS, COLS > mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::inverse_LLt ( ) const
inherited

Returns the inverse of a symmetric matrix using LLt.

Definition at line 195 of file MatrixBase_impl.h.

References ASSERT_EQUAL_, and mrpt::math::UNINITIALIZED_MATRIX.

Referenced by mrpt::slam::CICP::ICP_Method_LM().

◆ isSquare()

bool mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::isSquare ( ) const
inlineinherited

returns true if matrix is NxN

Definition at line 257 of file MatrixVectorBase.h.

References mrpt::math::MatrixVectorBase< Scalar, Derived >::mvbDerived().

◆ llt_solve()

template<typename T, std::size_t ROWS, std::size_t COLS>
CMatrixFixed< T, ROWS, 1 > mrpt::math::CMatrixFixed< T, ROWS, COLS >::llt_solve ( const CMatrixFixed< T, ROWS, 1 > &  b) const

Solves the linear system Ax=b, returns x, with A this symmetric matrix.

See also
lu_solve()

Definition at line 34 of file CMatrixFixed_impl.h.

◆ loadFromArray()

template<typename T, std::size_t ROWS, std::size_t COLS>
template<typename VECTOR >
void mrpt::math::CMatrixFixed< T, ROWS, COLS >::loadFromArray ( const VECTOR &  vals)
inline

◆ loadFromRawPointer()

template<typename T, std::size_t ROWS, std::size_t COLS>
void mrpt::math::CMatrixFixed< T, ROWS, COLS >::loadFromRawPointer ( const T *  data)
inline

Initializes from a plain buffer with RowMajor values.

Unsafe, prefer loadFromArray() wherever possible, to ensure buffer length checks.

Definition at line 183 of file CMatrixFixed.h.

Referenced by mrpt::math::CMatrixFixed< double, ObsDim, PointDof >::CMatrixFixed().

Here is the caller graph for this function:

◆ loadFromTextFile() [1/2]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::loadFromTextFile ( std::istream &  f)
inherited

Loads a vector/matrix from a text file, compatible with MATLAB text format.

Lines starting with '' or '#' are interpreted as comments and ignored.

Exceptions
std::runtime_errorOn format error.
See also
saveToTextFile, fromMatlabStringFormat

Definition at line 236 of file MatrixVectorBase_impl.h.

◆ loadFromTextFile() [2/2]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::loadFromTextFile ( const std::string file)
inherited

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 324 of file MatrixVectorBase_impl.h.

◆ lu_solve()

template<typename T, std::size_t ROWS, std::size_t COLS>
CMatrixFixed< T, ROWS, 1 > mrpt::math::CMatrixFixed< T, ROWS, COLS >::lu_solve ( const CMatrixFixed< T, ROWS, 1 > &  b) const

Solves the linear system Ax=b, returns x, with A this asymmetric matrix.

See also
llt_solve()

Definition at line 49 of file CMatrixFixed_impl.h.

Referenced by mrpt::nav::CPTG_Holo_Blend::inverseMap_WS2TP().

Here is the caller graph for this function:

◆ matProductOf_AAt()

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::matProductOf_AAt ( const MAT_A &  A)
inlineinherited

this = A * AT

Definition at line 276 of file MatrixBase.h.

References mrpt::math::MatrixBase< Scalar, Derived >::mbDerived().

◆ matProductOf_AB()

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::matProductOf_AB ( const CMatrixFixed< T, ROWS, COLS > &  A,
const CMatrixFixed< T, ROWS, COLS > &  B 
)
inherited

this = A*B, with A & B of the same type of this.

For products of different matrix types, use the regular * operator (which requires the <Eigen/Dense> header)

Definition at line 175 of file MatrixBase_impl.h.

◆ matProductOf_Ab()

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::matProductOf_Ab ( const CMatrixDynamic< T > &  A,
const CVectorDynamic< T > &  b 
)
inherited

this = A * b , with A and b a dynamic matrix & vector

Definition at line 483 of file MatrixVectorBase_impl.h.

◆ matProductOf_AtA()

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::matProductOf_AtA ( const MAT_A &  A)
inlineinherited

this = AT * A

Definition at line 295 of file MatrixBase.h.

References mrpt::math::MatrixBase< Scalar, Derived >::mbDerived().

◆ matProductOf_Atb()

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::matProductOf_Atb ( const CMatrixDynamic< T > &  A,
const CVectorDynamic< T > &  b 
)
inherited

this = AT * b , with A and b a dynamic matrix & vector

Definition at line 490 of file MatrixVectorBase_impl.h.

◆ maxCoeff() [1/3]

T mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::maxCoeff ( ) const
inherited

Maximum value in the matrix/vector.

Definition at line 361 of file MatrixVectorBase_impl.h.

◆ maxCoeff() [2/3]

T mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::maxCoeff ( std::size_t &  outIndexOfMax) const
inherited

Definition at line 382 of file MatrixVectorBase_impl.h.

◆ maxCoeff() [3/3]

T mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::maxCoeff ( std::size_t &  rowIdx,
std::size_t &  colIdx 
) const
inherited

Definition at line 407 of file MatrixVectorBase_impl.h.

◆ maximumDiagonal()

T mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::maximumDiagonal ( ) const
inherited

Returns the maximum value in the diagonal.

Definition at line 207 of file MatrixBase_impl.h.

◆ mbDerived() [1/2]

CMatrixFixed< T, ROWS, COLS > & mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::mbDerived ( )
inlineinherited

Definition at line 26 of file MatrixBase.h.

◆ mbDerived() [2/2]

const CMatrixFixed< T, ROWS, COLS > & mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::mbDerived ( ) const
inlineinherited

Definition at line 27 of file MatrixBase.h.

◆ minCoeff() [1/3]

T mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::minCoeff ( ) const
inherited

Minimum value in the matrix/vector.

Definition at line 355 of file MatrixVectorBase_impl.h.

◆ minCoeff() [2/3]

T mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::minCoeff ( std::size_t &  outIndexOfMin) const
inherited

Definition at line 367 of file MatrixVectorBase_impl.h.

◆ minCoeff() [3/3]

T mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::minCoeff ( std::size_t &  rowIdx,
std::size_t &  colIdx 
) const
inherited

Definition at line 396 of file MatrixVectorBase_impl.h.

◆ minimumDiagonal()

T mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::minimumDiagonal ( ) const
inherited

Returns the minimum value in the diagonal.

Definition at line 213 of file MatrixBase_impl.h.

◆ mvbDerived() [1/2]

CMatrixFixed< T, ROWS, COLS > & mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::mvbDerived ( )
inlineinherited

Definition at line 59 of file MatrixVectorBase.h.

◆ mvbDerived() [2/2]

const CMatrixFixed< T, ROWS, COLS > & mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::mvbDerived ( ) const
inlineinherited

Definition at line 60 of file MatrixVectorBase.h.

◆ norm()

T mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::norm ( ) const
inherited

Compute the L2 norm of a vector/array/matrix (the Euclidean distance to the origin, taking all the elements as a single vector).

See also
norm

Definition at line 503 of file MatrixVectorBase_impl.h.

Referenced by mrpt::nav::CPTG_Holo_Blend::inverseMap_WS2TP().

◆ norm_inf()

T mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::norm_inf ( ) const
inherited

Compute the norm-infinite of a vector ($f[ ||{v}||_ $f]), ie the maximum absolute value of the elements.

Definition at line 497 of file MatrixVectorBase_impl.h.

◆ operator!=()

bool mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator!= ( const OTHERMATVEC &  o) const
inlineinherited

Definition at line 432 of file MatrixVectorBase.h.

◆ operator()() [1/4]

template<typename T, std::size_t ROWS, std::size_t COLS>
T& mrpt::math::CMatrixFixed< T, ROWS, COLS >::operator() ( int  row,
int  col 
)
inline

Access (row,col), without out-of-bounds check (except in Debug builds)

Definition at line 277 of file CMatrixFixed.h.

◆ operator()() [2/4]

template<typename T, std::size_t ROWS, std::size_t COLS>
const T& mrpt::math::CMatrixFixed< T, ROWS, COLS >::operator() ( int  row,
int  col 
) const
inline

Definition at line 283 of file CMatrixFixed.h.

◆ operator()() [3/4]

template<typename T, std::size_t ROWS, std::size_t COLS>
T& mrpt::math::CMatrixFixed< T, ROWS, COLS >::operator() ( int  i)
inline

Access the i-th element, Row-Major order, without out-of-bounds check (except in Debug builds)

Definition at line 293 of file CMatrixFixed.h.

◆ operator()() [4/4]

template<typename T, std::size_t ROWS, std::size_t COLS>
const T& mrpt::math::CMatrixFixed< T, ROWS, COLS >::operator() ( int  i) const
inline

Definition at line 298 of file CMatrixFixed.h.

◆ operator*() [1/4]

auto mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator* ( const MatrixVectorBase< S2, D2 > &  m2) const
inlineinherited

◆ operator*() [2/4]

auto mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator* ( const T  s) const
inlineinherited

◆ operator*() [3/4]

CMatrixDynamic< T > mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator* ( const CMatrixDynamic< T > &  v)
inherited

Definition at line 436 of file MatrixVectorBase_impl.h.

◆ operator*() [4/4]

CMatrixFixed< T, ROWS, COLS > mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator* ( const CMatrixFixed< T, ROWS, COLS > &  m2) const
inherited

Definition at line 468 of file MatrixVectorBase_impl.h.

References ASSERTMSG_.

◆ operator*=()

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator*= ( s)
inherited

Definition at line 430 of file MatrixVectorBase_impl.h.

◆ operator+() [1/2]

auto mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator+ ( const MatrixVectorBase< S2, D2 > &  m2) const
inlineinherited

◆ operator+() [2/2]

CMatrixFixed< T, ROWS, COLS > mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator+ ( const CMatrixFixed< T, ROWS, COLS > &  m2) const
inlineinherited

◆ operator+=() [1/3]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator+= ( const MatrixVectorBase< S2, D2 > &  m2)
inlineinherited

◆ operator+=() [2/3]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator+= ( s)
inherited

Definition at line 418 of file MatrixVectorBase_impl.h.

◆ operator+=() [3/3]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator+= ( const CMatrixFixed< T, ROWS, COLS > &  m2)
inlineinherited

◆ operator-() [1/3]

auto mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator- ( ) const
inlineinherited

◆ operator-() [2/3]

auto mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator- ( const MatrixVectorBase< S2, D2 > &  m2) const
inlineinherited

◆ operator-() [3/3]

CMatrixFixed< T, ROWS, COLS > mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator- ( const CMatrixFixed< T, ROWS, COLS > &  m2) const
inlineinherited

◆ operator-=() [1/3]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator-= ( const MatrixVectorBase< S2, D2 > &  m2)
inlineinherited

◆ operator-=() [2/3]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator-= ( s)
inherited

Definition at line 424 of file MatrixVectorBase_impl.h.

◆ operator-=() [3/3]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator-= ( const CMatrixFixed< T, ROWS, COLS > &  m2)
inlineinherited

◆ operator=() [1/3]

template<typename T, std::size_t ROWS, std::size_t COLS>
template<class Derived >
CMatrixFixed& mrpt::math::CMatrixFixed< T, ROWS, COLS >::operator= ( const Eigen::MatrixBase< Derived > &  m)
inline

Assignment from an Eigen matrix.

Definition at line 143 of file CMatrixFixed.h.

◆ operator=() [2/3]

template<typename T, std::size_t ROWS, std::size_t COLS>
template<typename VectorType , int Size>
CMatrixFixed& mrpt::math::CMatrixFixed< T, ROWS, COLS >::operator= ( const Eigen::VectorBlock< VectorType, Size > &  m)
inline

Assignment from an Eigen vector block.

Definition at line 152 of file CMatrixFixed.h.

◆ operator=() [3/3]

template<typename T, std::size_t ROWS, std::size_t COLS>
template<typename U >
CMatrixFixed& mrpt::math::CMatrixFixed< T, ROWS, COLS >::operator= ( const CMatrixDynamic< U > &  m)
inline

Assignment from a Dynamic matrix.

Definition at line 162 of file CMatrixFixed.h.

◆ operator==()

bool mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::operator== ( const OTHERMATVEC &  o) const
inlineinherited

◆ operator[]() [1/2]

template<typename T, std::size_t ROWS, std::size_t COLS>
T& mrpt::math::CMatrixFixed< T, ROWS, COLS >::operator[] ( int  i)
inline

Access the [i-th] element (for 1xN or Nx1 matrices)

Definition at line 305 of file CMatrixFixed.h.

◆ operator[]() [2/2]

template<typename T, std::size_t ROWS, std::size_t COLS>
const T& mrpt::math::CMatrixFixed< T, ROWS, COLS >::operator[] ( int  i) const
inline

Definition at line 311 of file CMatrixFixed.h.

◆ rank()

int mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::rank ( threshold = 0) const
inherited

Finds the rank of the matrix via LU decomposition.

Uses Eigen's default threshold unless threshold>0.

Definition at line 156 of file MatrixBase_impl.h.

◆ removeColumns()

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::removeColumns ( const std::vector< std::size_t > &  idxsToRemove)
inherited

Removes columns of the matrix.

Indices may be unsorted and duplicated

Definition at line 38 of file MatrixBase_impl.h.

◆ removeRows()

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::removeRows ( const std::vector< std::size_t > &  idxsToRemove)
inherited

Removes rows of the matrix.

Indices may be unsorted and duplicated

Definition at line 65 of file MatrixBase_impl.h.

◆ resize() [1/3]

template<typename T, std::size_t ROWS, std::size_t COLS>
void mrpt::math::CMatrixFixed< T, ROWS, COLS >::resize ( size_t  n)
inline

Definition at line 204 of file CMatrixFixed.h.

Referenced by mrpt::math::CMatrixFixed< double, ObsDim, PointDof >::resize().

Here is the caller graph for this function:

◆ resize() [2/3]

template<typename T, std::size_t ROWS, std::size_t COLS>
void mrpt::math::CMatrixFixed< T, ROWS, COLS >::resize ( const matrix_size_t siz,
[[maybe_unused] ] bool  zeroNewElements = false 
)
inline

Throws if size does not match with the fixed matrix size.

Definition at line 215 of file CMatrixFixed.h.

◆ resize() [3/3]

template<typename T, std::size_t ROWS, std::size_t COLS>
void mrpt::math::CMatrixFixed< T, ROWS, COLS >::resize ( size_t  row,
size_t  col 
)
inline

Definition at line 220 of file CMatrixFixed.h.

◆ row() [1/2]

auto mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::row ( int  rowIdx)
inlineinherited

◆ row() [2/2]

auto mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::row ( int  rowIdx) const
inlineinherited

◆ rows()

◆ saveToTextFile()

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::saveToTextFile ( const std::string file,
mrpt::math::TMatrixTextFileFormat  fileFormat = mrpt::math::MATRIX_FORMAT_ENG,
bool  appendMRPTHeader = false,
const std::string userHeader = std::string() 
) const
inherited

Saves the vector/matrix to a file compatible with MATLAB/Octave text format.

Parameters
fileThe target filename.
fileFormatSee TMatrixTextFileFormat. The format of the numbers in the text file.
appendMRPTHeaderInsert this header to the file "% File generated by MRPT. Load with MATLAB with: VAR=load(FILENAME);"
userHeaderAdditional text to be written at the head of the file. Typically MALAB comments "% This file blah blah". Final end-of-line is not needed.
See also
loadFromTextFile, CMatrixDynamic::inMatlabFormat, SAVE_MATRIX

Definition at line 157 of file MatrixVectorBase_impl.h.

References mrpt::system::os::fclose(), mrpt::system::os::fopen(), mrpt::system::os::fprintf(), mrpt::math::MATRIX_FORMAT_ENG, mrpt::math::MATRIX_FORMAT_FIXED, and mrpt::math::MATRIX_FORMAT_INT.

◆ setConstant() [1/3]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::setConstant ( const T  value)
inlineinherited

◆ setConstant() [2/3]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::setConstant ( size_t  nrows,
size_t  ncols,
const T  value 
)
inlineinherited

◆ setConstant() [3/3]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::setConstant ( size_t  nrows,
const T  value 
)
inlineinherited

◆ setDiagonal() [1/3]

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::setDiagonal ( const std::size_t  N,
const T  value 
)
inlineinherited

Resize to NxN, set all entries to zero, except the main diagonal which is set to value

Definition at line 34 of file MatrixBase.h.

References mrpt::math::MatrixBase< Scalar, Derived >::mbDerived().

Referenced by mrpt::img::CCanvas::ellipseGaussian().

◆ setDiagonal() [2/3]

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::setDiagonal ( const T  value)
inlineinherited

Set all entries to zero, except the main diagonal which is set to value

Definition at line 43 of file MatrixBase.h.

References ASSERT_EQUAL_, mrpt::math::MatrixBase< Scalar, Derived >::mbDerived(), and mrpt::math::MatrixBase< Scalar, Derived >::setDiagonal().

◆ setDiagonal() [3/3]

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::setDiagonal ( const std::vector< T > &  diags)
inlineinherited

Resizes to NxN, with N the length of the input vector, set all entries to zero, except the main diagonal which is set to values in the vector.

Definition at line 51 of file MatrixBase.h.

References mrpt::math::MatrixBase< Scalar, Derived >::mbDerived().

◆ setFromMatrixLike()

template<typename T, std::size_t ROWS, std::size_t COLS>
template<class MAT >
void mrpt::math::CMatrixFixed< T, ROWS, COLS >::setFromMatrixLike ( const MAT &  m)
inline

Definition at line 132 of file CMatrixFixed.h.

Referenced by mrpt::vision::CDifodo::computeWeights(), and mrpt::math::CMatrixFixed< double, ObsDim, PointDof >::operator=().

Here is the caller graph for this function:

◆ setIdentity() [1/2]

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::setIdentity ( )
inlineinherited

◆ setIdentity() [2/2]

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::setIdentity ( const std::size_t  N)
inlineinherited

◆ setSize()

template<typename T, std::size_t ROWS, std::size_t COLS>
void mrpt::math::CMatrixFixed< T, ROWS, COLS >::setSize ( size_t  row,
size_t  col,
[[maybe_unused] ] bool  zeroNewElements = false 
)
inline

Throws if size does not match with the fixed matrix size.

Definition at line 190 of file CMatrixFixed.h.

Referenced by mrpt::math::CMatrixFixed< double, ObsDim, PointDof >::conservativeResize(), and mrpt::math::CMatrixFixed< double, ObsDim, PointDof >::setFromMatrixLike().

Here is the caller graph for this function:

◆ setZero() [1/3]

◆ setZero() [2/3]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::setZero ( size_t  nrows,
size_t  ncols 
)
inlineinherited

◆ setZero() [3/3]

void mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::setZero ( size_t  nrows)
inlineinherited

◆ size()

template<typename T, std::size_t ROWS, std::size_t COLS>
constexpr matrix_size_t mrpt::math::CMatrixFixed< T, ROWS, COLS >::size ( ) const
inline

Get a 2-vector with [NROWS NCOLS] (as in MATLAB command size(x))

Definition at line 233 of file CMatrixFixed.h.

Referenced by mrpt::maps::COccupancyGridMap2D::internal_insertObservation().

Here is the caller graph for this function:

◆ sum()

T mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::sum ( ) const
inherited

Sum of all elements in matrix/vector.

Definition at line 343 of file MatrixVectorBase_impl.h.

◆ sum_abs()

T mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::sum_abs ( ) const
inherited

Sum of the absolute value of all elements in matrix/vector.

Definition at line 349 of file MatrixVectorBase_impl.h.

◆ sum_At()

template<typename T, std::size_t ROWS, std::size_t COLS>
void mrpt::math::CMatrixFixed< T, ROWS, COLS >::sum_At ( const CMatrixFixed< Scalar, ROWS, COLS > &  A)
inline

this += AT

Definition at line 330 of file CMatrixFixed.h.

◆ swap()

template<typename T, std::size_t ROWS, std::size_t COLS>
void mrpt::math::CMatrixFixed< T, ROWS, COLS >::swap ( CMatrixFixed< T, ROWS, COLS > &  o)
inline

Definition at line 197 of file CMatrixFixed.h.

Referenced by mrpt::poses::CPose3DQuat::swap().

Here is the caller graph for this function:

◆ tail()

CMatrixFixed<T , N, 1> mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::tail ( ) const
inlineinherited

◆ trace()

T mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::trace ( ) const
inherited

Returns the trace of the matrix (not necessarily square).

Definition at line 219 of file MatrixBase_impl.h.

◆ transpose() [1/2]

◆ transpose() [2/2]

auto mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::transpose ( ) const
inlineinherited

◆ unsafeRemoveColumns()

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::unsafeRemoveColumns ( const std::vector< std::size_t > &  idxs)
inherited

Removes columns of the matrix.

This "unsafe" version assumes indices sorted in ascending order.

Definition at line 22 of file MatrixBase_impl.h.

◆ unsafeRemoveRows()

void mrpt::math::MatrixBase< T , CMatrixFixed< T, ROWS, COLS > >::unsafeRemoveRows ( const std::vector< std::size_t > &  idxs)
inherited

Removes rows of the matrix.

This "unsafe" version assumes indices sorted in ascending order.

Definition at line 49 of file MatrixBase_impl.h.

◆ Zero() [1/2]

static CMatrixFixed< T, ROWS, COLS > mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::Zero ( )
inlinestaticinherited

◆ Zero() [2/2]

static CMatrixFixed< T, ROWS, COLS > mrpt::math::MatrixVectorBase< T , CMatrixFixed< T, ROWS, COLS > >::Zero ( size_t  nrows,
size_t  ncols 
)
inlinestaticinherited

Member Data Documentation

◆ ColsAtCompileTime

template<typename T, std::size_t ROWS, std::size_t COLS>
constexpr int mrpt::math::CMatrixFixed< T, ROWS, COLS >::ColsAtCompileTime = COLS
static

Definition at line 52 of file CMatrixFixed.h.

◆ is_mrpt_type

template<typename T, std::size_t ROWS, std::size_t COLS>
constexpr int mrpt::math::CMatrixFixed< T, ROWS, COLS >::is_mrpt_type = 1
static

Definition at line 54 of file CMatrixFixed.h.

◆ m_data

◆ RowsAtCompileTime

template<typename T, std::size_t ROWS, std::size_t COLS>
constexpr int mrpt::math::CMatrixFixed< T, ROWS, COLS >::RowsAtCompileTime = ROWS
static

Definition at line 51 of file CMatrixFixed.h.

◆ SizeAtCompileTime

template<typename T, std::size_t ROWS, std::size_t COLS>
constexpr int mrpt::math::CMatrixFixed< T, ROWS, COLS >::SizeAtCompileTime = ROWS * COLS
static

Definition at line 53 of file CMatrixFixed.h.

◆ StorageOrder

template<typename T, std::size_t ROWS, std::size_t COLS>
constexpr int mrpt::math::CMatrixFixed< T, ROWS, COLS >::StorageOrder
static
Initial value:
=
(ROWS != 1 && COLS == 1) ? 0 : 1

Definition at line 55 of file CMatrixFixed.h.




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 034c2ee2a Tue Aug 20 02:15:02 2019 +0200 at mar ago 20 02:20:10 CEST 2019