gtsam
Loading...
Searching...
No Matches
Matrix.h File Reference

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

Go to the source code of this file.

Classes

struct  gtsam::MultiplyWithInverse< N >
 Functor that implements multiplication of a vector b with the inverse of a matrix A. More...
struct  gtsam::MultiplyWithInverseFunction< T, N >
 Functor that implements multiplication with the inverse of a matrix, itself the result of a function f. More...

Namespaces

namespace  gtsam
 Global functions in a separate testing namespace.

Macros

#define GTSAM_MAKE_MATRIX_DEFS(N)

Typedefs

typedef Eigen::MatrixXd gtsam::Matrix
typedef Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > gtsam::MatrixRowMajor
using gtsam::ConstMatrixView
 Dynamic-stride const Matrix view for accepting NumPy arrays without copies.
typedef Eigen::Block< Matrix > gtsam::SubMatrix
typedef Eigen::Block< const Matrix > gtsam::ConstSubMatrix

Functions

const Eigen::IOFormat & gtsam::matlabFormat ()
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 a tolerance
bool gtsam::operator== (const Matrix &A, const Matrix &B)
 equality is just equal_with_abs_tol 1e-9
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
bool gtsam::assert_inequal (const Matrix &A, const Matrix &B, double tol=1e-9)
 inequals with an tolerance, prints out message if within tolerance
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
void gtsam::print (const Matrix &A, const std::string &s, std::ostream &stream)
 print without optional string, must specify cout yourself
void gtsam::print (const Matrix &A, const std::string &s="")
 print with optional string to cout
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
istream & gtsam::operator>> (std::istream &inputStream, Matrix &destinationMatrix)
 Read a matrix from an input stream, such as a file.
Matrix gtsam::diag (const std::vector< Matrix > &Hs)
 Create a matrix with submatrices along its diagonal.
pair< Matrix, Matrix > gtsam::qr (const Matrix &A)
 Householder QR factorization, Golub & Van Loan p 224, explicit version.
void gtsam::inplace_QR (Matrix &A)
 QR factorization using Eigen's internal block QR algorithm.
list< std::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.
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.
void gtsam::householder (Matrix &A, size_t k)
 Householder tranformation, zeros below diagonal.
template<class RDerived, class SDerived, class DDerived, class ParentsDerived>
void gtsam::internal::solveUpperConditional (const Eigen::MatrixBase< RDerived > &R, const Eigen::MatrixBase< SDerived > &S, const Eigen::MatrixBase< DDerived > &d, const Eigen::MatrixBase< ParentsDerived > &parents, Vector *result)
 Solve the block upper-triangular system R*x = d - S*parents.
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... If all matrices have the same size, specifying single matrix dimensions will avoid the lookup of dimensions
Matrix3 gtsam::skewSymmetric (double wx, double wy, double wz)
 skew symmetric matrix returns this: 0 -wz wy wz 0 -wx -wy wx 0
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.
void gtsam::svd (const Matrix &A, Matrix &U, Vector &S, Matrix &V)
 SVD computes economy SVD A=U*S*V'.
std::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.
Matrix gtsam::expm (const Matrix &A, size_t K=7)
 Numerical exponential map, naive approach, not industrial strength !
std::string gtsam::formatMatrixIndented (const std::string &label, const Matrix &matrix, bool makeVectorHorizontal)

Detailed Description

typedef and functions to augment Eigen's MatrixXd

Author
Christian Potthast
Kai Ni
Frank Dellaert
Alex Cunningham
Alex Hagiopol
Varun Agrawal

Macro Definition Documentation

◆ GTSAM_MAKE_MATRIX_DEFS

#define GTSAM_MAKE_MATRIX_DEFS ( N)
Value:
using Matrix##N = Eigen::Matrix<double, N, N>; \
using Matrix1##N = Eigen::Matrix<double, 1, N>; \
using Matrix2##N = Eigen::Matrix<double, 2, N>; \
using Matrix3##N = Eigen::Matrix<double, 3, N>; \
using Matrix4##N = Eigen::Matrix<double, 4, N>; \
using Matrix5##N = Eigen::Matrix<double, 5, N>; \
using Matrix6##N = Eigen::Matrix<double, 6, N>; \
using Matrix7##N = Eigen::Matrix<double, 7, N>; \
using Matrix8##N = Eigen::Matrix<double, 8, N>; \
using Matrix9##N = Eigen::Matrix<double, 9, N>; \