gtsam 4.1.1
gtsam
|
typedef and functions to augment Eigen's MatrixXd More...
Go to the source code of this file.
Classes | |
struct | gtsam::Reshape< OutM, OutN, OutOptions, InM, InN, InOptions > |
Reshape functor. More... | |
struct | gtsam::Reshape< M, M, InOptions, M, M, InOptions > |
Reshape specialization that does nothing as shape stays the same (needed to not be ambiguous for square input equals square output) More... | |
struct | gtsam::Reshape< M, N, InOptions, M, N, InOptions > |
Reshape specialization that does nothing as shape stays the same. More... | |
struct | gtsam::Reshape< N, M, InOptions, M, N, InOptions > |
Reshape specialization that does transpose. More... | |
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) |
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 | |
Vector | gtsam::operator^ (const Matrix &A, const Vector &v) |
overload ^ for trans(A)*v We transpose the vectors for speed. | |
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) |
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. 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... | |
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 | |
template<int OutM, int OutN, int OutOptions, int InM, int InN, int InOptions> | |
Reshape< OutM, OutN, OutOptions, InM, InN, InOptions >::ReshapedType | gtsam::reshape (const Eigen::Matrix< double, InM, InN, InOptions > &m) |
pair< Matrix, Matrix > | gtsam::qr (const Matrix &A) |
Householder QR factorization, Golub & Van Loan p 224, explicit version More... | |
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... If all matrices have the same size, specifying single matrix dimensions will avoid the lookup of dimensions 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::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... | |
std::string | gtsam::formatMatrixIndented (const std::string &label, const Matrix &matrix, bool makeVectorHorizontal) |
Matrix | gtsam::LLt (const Matrix &A) |
Matrix | gtsam::RtR (const Matrix &A) |
Vector | gtsam::columnNormSquare (const Matrix &A) |
template<class Archive , typename Scalar_ , int Rows_, int Cols_, int Ops_, int MaxRows_, int MaxCols_> | |
void | boost::serialization::save (Archive &ar, const Eigen::Matrix< Scalar_, Rows_, Cols_, Ops_, MaxRows_, MaxCols_ > &m, const unsigned int) |
Ref. More... | |
template<class Archive , typename Scalar_ , int Rows_, int Cols_, int Ops_, int MaxRows_, int MaxCols_> | |
void | boost::serialization::load (Archive &ar, Eigen::Matrix< Scalar_, Rows_, Cols_, Ops_, MaxRows_, MaxCols_ > &m, const unsigned int) |
template<class Archive , typename Scalar_ , int Rows_, int Cols_, int Ops_, int MaxRows_, int MaxCols_> | |
void | boost::serialization::serialize (Archive &ar, Eigen::Matrix< Scalar_, Rows_, Cols_, Ops_, MaxRows_, MaxCols_ > &m, const unsigned int version) |
template<class Archive > | |
void | boost::serialization::serialize (Archive &ar, gtsam::Matrix &m, const unsigned int version) |
typedef and functions to augment Eigen's MatrixXd
#define GTSAM_MAKE_MATRIX_DEFS | ( | N | ) |
void boost::serialization::save | ( | Archive & | ar, |
const Eigen::Matrix< Scalar_, Rows_, Cols_, Ops_, MaxRows_, MaxCols_ > & | m, | ||
const unsigned int | |||
) |
Ref.
https://stackoverflow.com/questions/18382457/eigen-and-boostserialize/22903063#22903063
Eigen supports calling resize() on both static and dynamic matrices. This allows for a uniform API, with resize having no effect if the static matrix is already the correct size. https://eigen.tuxfamily.org/dox/group__TutorialMatrixClass.html#TutorialMatrixSizesResizing
We use all the Matrix template parameters to ensure wide compatibility.
eigen_typekit in ROS uses the same code http://docs.ros.org/lunar/api/eigen_typekit/html/eigen__mqueue_8cpp_source.html