gtsam  3.2.1
gtsam
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Matrix.h File Reference

typedef and functions to augment Eigen's MatrixXd More...

Go to the source code of this file.

Namespaces

 gtsam
 Global functions in a separate testing namespace.
 

Typedefs

typedef Eigen::MatrixXd gtsam::Matrix
 
typedef Eigen::Matrix< double,
Eigen::Dynamic, Eigen::Dynamic,
Eigen::RowMajor > 
gtsam::MatrixRowMajor
 
typedef Eigen::Matrix3d gtsam::Matrix3
 
typedef Eigen::Matrix4d gtsam::Matrix4
 
typedef Eigen::Matrix< double, 6, 6 > gtsam::Matrix6
 
typedef Eigen::Block< Matrix > gtsam::SubMatrix
 
typedef Eigen::Block< const
Matrix > 
gtsam::ConstSubMatrix
 

Functions

Matrix gtsam::zeros (size_t m, size_t n)
 Creates an zeros matrix, with matlab-like syntax. More...
 
Matrix gtsam::ones (size_t m, size_t n)
 Creates an ones matrix, with matlab-like syntax.
 
Matrix gtsam::eye (size_t m, size_t n)
 Creates an identity matrix, with matlab-like syntax. More...
 
Matrix gtsam::eye (size_t m)
 Creates a square identity matrix, with matlab-like syntax. More...
 
Matrix gtsam::diag (const Vector &v)
 
template<class MATRIX >
bool gtsam::equal_with_abs_tol (const Eigen::DenseBase< MATRIX > &A, const Eigen::DenseBase< MATRIX > &B, double tol=1e-9)
 equals with an tolerance
 
bool gtsam::operator== (const Matrix &A, const Matrix &B)
 equality is just equal_with_abs_tol 1e-9 More...
 
bool gtsam::operator!= (const Matrix &A, const Matrix &B)
 inequality
 
bool gtsam::assert_equal (const Matrix &A, const Matrix &B, double tol=1e-9)
 equals with an tolerance, prints out message if unequal More...
 
bool gtsam::assert_inequal (const Matrix &A, const Matrix &B, double tol=1e-9)
 inequals with an tolerance, prints out message if within tolerance More...
 
bool gtsam::assert_equal (const std::list< Matrix > &As, const std::list< Matrix > &Bs, double tol=1e-9)
 equals with an tolerance, prints out message if unequal
 
bool gtsam::linear_independent (const Matrix &A, const Matrix &B, double tol=1e-9)
 check whether the rows of two matrices are linear independent
 
bool gtsam::linear_dependent (const Matrix &A, const Matrix &B, double tol=1e-9)
 check whether the rows of two matrices are linear dependent More...
 
void gtsam::multiplyAdd (double alpha, const Matrix &A, const Vector &x, Vector &e)
 BLAS Level-2 style e <- e + alpha*A*x.
 
void gtsam::multiplyAdd (const Matrix &A, const Vector &x, Vector &e)
 BLAS Level-2 style e <- e + A*x.
 
Vector gtsam::operator^ (const Matrix &A, const Vector &v)
 overload ^ for trans(A)*v We transpose the vectors for speed.
 
void gtsam::transposeMultiplyAdd (double alpha, const Matrix &A, const Vector &e, Vector &x)
 BLAS Level-2 style x <- x + alpha*A'*e.
 
void gtsam::transposeMultiplyAdd (const Matrix &A, const Vector &e, Vector &x)
 BLAS Level-2 style x <- x + A'*e.
 
void gtsam::transposeMultiplyAdd (double alpha, const Matrix &A, const Vector &e, SubVector x)
 BLAS Level-2 style x <- x + alpha*A'*e.
 
template<class MATRIX >
MATRIX gtsam::prod (const MATRIX &A, const MATRIX &B)
 products using old-style format to improve compatibility
 
void gtsam::print (const Matrix &A, const std::string &s="", std::ostream &stream=std::cout)
 print a matrix More...
 
void gtsam::save (const Matrix &A, const std::string &s, const std::string &filename)
 save a matrix to file, which can be loaded by matlab More...
 
istream & gtsam::operator>> (std::istream &inputStream, Matrix &destinationMatrix)
 Read a matrix from an input stream, such as a file. More...
 
template<class MATRIX >
Eigen::Block< const MATRIX > gtsam::sub (const MATRIX &A, size_t i1, size_t i2, size_t j1, size_t j2)
 extract submatrix, slice semantics, i.e. More...
 
template<typename Derived1 , typename Derived2 >
void gtsam::insertSub (Eigen::MatrixBase< Derived1 > &fullMatrix, const Eigen::MatrixBase< Derived2 > &subMatrix, size_t i, size_t j)
 insert a submatrix IN PLACE at a specified location in a larger matrix NOTE: there is no size checking More...
 
Matrix gtsam::diag (const std::vector< Matrix > &Hs)
 Create a matrix with submatrices along its diagonal.
 
template<class MATRIX >
const MATRIX::ConstColXpr gtsam::column (const MATRIX &A, size_t j)
 Extracts a column view from a matrix that avoids a copy. More...
 
template<class MATRIX >
const MATRIX::ConstRowXpr gtsam::row (const MATRIX &A, size_t j)
 Extracts a row view from a matrix that avoids a copy. More...
 
void gtsam::insertColumn (Matrix &A, const Vector &col, size_t j)
 inserts a column into a matrix IN PLACE NOTE: there is no size checking Alternate form allows for vectors smaller than the whole column to be inserted More...
 
void gtsam::insertColumn (Matrix &A, const Vector &col, size_t i, size_t j)
 
Vector gtsam::columnNormSquare (const Matrix &A)
 
template<class MATRIX >
void gtsam::zeroBelowDiagonal (MATRIX &A, size_t cols=0)
 Zeros all of the elements below the diagonal of a matrix, in place. More...
 
Matrix gtsam::trans (const Matrix &A)
 static transpose function, just calls Eigen transpose member function
 
void gtsam::solve (Matrix &A, Matrix &B)
 solve AX=B via in-place Lu factorization and backsubstitution After calling, A contains LU, B the solved RHS vectors
 
Matrix gtsam::inverse (const Matrix &A)
 invert A
 
pair< Matrix, Matrix > gtsam::qr (const Matrix &A)
 Householder QR factorization, Golub & Van Loan p 224, explicit version. More...
 
template<class MATRIX >
void gtsam::inplace_QR (MATRIX &A)
 QR factorization using Eigen's internal block QR algorithm. More...
 
list< boost::tuple< Vector,
double, double > > 
gtsam::weighted_eliminate (Matrix &A, Vector &b, const Vector &sigmas)
 Imperative algorithm for in-place full elimination with weights and constraint handling. More...
 
void gtsam::householder_ (Matrix &A, size_t k, bool copy_vectors)
 Imperative version of Householder QR factorization, Golub & Van Loan p 224 version with Householder vectors below diagonal, as in GVL. More...
 
void gtsam::householder (Matrix &A, size_t k)
 Householder tranformation, zeros below diagonal. More...
 
Vector gtsam::backSubstituteUpper (const Matrix &U, const Vector &b, bool unit=false)
 backSubstitute U*x=b More...
 
Vector gtsam::backSubstituteUpper (const Vector &b, const Matrix &U, bool unit=false)
 backSubstitute x'*U=b' More...
 
Vector gtsam::backSubstituteLower (const Matrix &L, const Vector &b, bool unit=false)
 backSubstitute L*x=b More...
 
Matrix gtsam::stack (size_t nrMatrices,...)
 create a matrix by stacking other matrices Given a set of matrices: A1, A2, A3... More...
 
Matrix gtsam::stack (const std::vector< Matrix > &blocks)
 
Matrix gtsam::collect (const std::vector< const Matrix * > &matrices, size_t m=0, size_t n=0)
 create a matrix by concatenating Given a set of matrices: A1, A2, A3... More...
 
Matrix gtsam::collect (size_t nrMatrices,...)
 
void gtsam::vector_scale_inplace (const Vector &v, Matrix &A, bool inf_mask=false)
 scales a matrix row or column by the values in a vector Arguments (Matrix, Vector) scales the columns, (Vector, Matrix) scales the rows More...
 
Matrix gtsam::vector_scale (const Vector &v, const Matrix &A, bool inf_mask)
 
Matrix gtsam::vector_scale (const Matrix &A, const Vector &v, bool inf_mask)
 
Matrix3 gtsam::skewSymmetric (double wx, double wy, double wz)
 skew symmetric matrix returns this: 0 -wz wy wz 0 -wx -wy wx 0 More...
 
template<class Derived >
Matrix3 gtsam::skewSymmetric (const Eigen::MatrixBase< Derived > &w)
 
Matrix gtsam::inverse_square_root (const Matrix &A)
 Use Cholesky to calculate inverse square root of a matrix.
 
Matrix gtsam::LLt (const Matrix &A)
 Calculate the LL^t decomposition of a S.P.D matrix.
 
Matrix gtsam::RtR (const Matrix &A)
 Calculate the R^tR decomposition of a S.P.D matrix.
 
Matrix gtsam::cholesky_inverse (const Matrix &A)
 Return the inverse of a S.P.D. More...
 
void gtsam::svd (const Matrix &A, Matrix &U, Vector &S, Matrix &V)
 SVD computes economy SVD A=U*S*V'. More...
 
boost::tuple< int, double, Vector > gtsam::DLT (const Matrix &A, double rank_tol=1e-9)
 Direct linear transform algorithm that calls svd to find a vector v that minimizes the algebraic error A*v. More...
 
Matrix gtsam::expm (const Matrix &A, size_t K=7)
 Numerical exponential map, naive approach, not industrial strength !!! More...
 
Matrix gtsam::Cayley (const Matrix &A)
 Cayley transform.
 
template<int N>
Eigen::Matrix< double, N, N > gtsam::CayleyFixed (const Eigen::Matrix< double, N, N > &A)
 Implementation of Cayley transform using fixed size matrices to let Eigen do more optimization.
 
std::string gtsam::formatMatrixIndented (const std::string &label, const Matrix &matrix, bool makeVectorHorizontal)
 
template<class Archive >
void boost::serialization::save (Archive &ar, const gtsam::Matrix &m, unsigned int version)
 
template<class Archive >
void boost::serialization::load (Archive &ar, gtsam::Matrix &m, unsigned int version)
 

Detailed Description

typedef and functions to augment Eigen's MatrixXd

Author
Christian Potthast
Kai Ni
Frank Dellaert
Alex Cunningham