24 #include <gtsam/base/VectorSpace.h> 39 using MatrixType = Eigen::Matrix<double, M, -1>;
45 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
47 enum { dimension = Eigen::Dynamic };
62 size_t rows()
const {
return matrix_.rows(); }
65 size_t cols()
const {
return matrix_.cols(); }
68 MatrixType
matrix()
const {
return matrix_; }
71 Eigen::Matrix<double, -1, M>
transpose()
const {
return matrix_.transpose(); }
77 Eigen::Matrix<double, 1, -1>
row(
size_t index)
const {
78 return matrix_.row(index);
85 auto row(
size_t index) -> Eigen::Block<MatrixType, 1, -1,
false> {
86 return matrix_.row(index);
93 Eigen::Matrix<double, M, 1>
col(
size_t index)
const {
94 return matrix_.col(index);
101 auto col(
size_t index) -> Eigen::Block<MatrixType, M, 1, true> {
102 return matrix_.col(index);
123 const Eigen::Matrix<double, -1, 1>& other)
const {
125 Eigen::Map<const MatrixType> other_(other.data(), M,
cols());
142 const Eigen::Matrix<double, -1, 1>& other)
const {
143 Eigen::Map<const MatrixType> other_(other.data(), M,
cols());
152 MatrixType
operator*(
const Eigen::Matrix<double, -1, -1>& other)
const {
153 return matrix_ * other;
163 void print(
const std::string& s =
"")
const {
164 std::cout << (s ==
"" ? s : s +
" ") << matrix_ << std::endl;
177 inline size_t dim()
const {
return matrix_.size(); }
181 using RowMajor = Eigen::Matrix<double, -1, -1, Eigen::RowMajor>;
182 Vector result(matrix_.size());
183 Eigen::Map<RowMajor>(&result(0),
rows(),
cols()) = matrix_;
209 inline std::ostream& operator<<(std::ostream& os,
211 os << parameterMatrix.
matrix();
ParameterMatrix< M > operator-(const Eigen::Matrix< double, -1, 1 > &other) const
Definition: ParameterMatrix.h:141
MatrixType operator*(const Eigen::Matrix< double, -1, -1 > &other) const
Definition: ParameterMatrix.h:152
bool equals(const ParameterMatrix< M > &other, double tol=1e-8) const
Definition: ParameterMatrix.h:172
Concept check for values that can be used in unit tests.
VectorSpace provides both Testable and VectorSpaceTraits.
Definition: VectorSpace.h:207
size_t rows() const
Get the number of rows.
Definition: ParameterMatrix.h:62
auto col(size_t index) -> Eigen::Block< MatrixType, M, 1, true >
Definition: ParameterMatrix.h:101
Eigen::Matrix< double, -1, M > transpose() const
Return the tranpose of the underlying matrix.
Definition: ParameterMatrix.h:71
Eigen::Matrix< double, 1, -1 > row(size_t index) const
Definition: ParameterMatrix.h:77
ParameterMatrix(const size_t N)
Definition: ParameterMatrix.h:53
size_t dim() const
Returns dimensionality of the tangent space.
Definition: ParameterMatrix.h:177
ParameterMatrix< M > operator+(const ParameterMatrix< M > &other) const
Definition: ParameterMatrix.h:114
void setZero()
Definition: ParameterMatrix.h:108
Vector vector() const
Convert to vector form, is done row-wise.
Definition: ParameterMatrix.h:180
auto row(size_t index) -> Eigen::Block< MatrixType, 1, -1, false >
Definition: ParameterMatrix.h:85
typedef and functions to augment Eigen's MatrixXd
bool equal_with_abs_tol(const Eigen::DenseBase< MATRIX > &A, const Eigen::DenseBase< MATRIX > &B, double tol=1e-9)
Definition: Matrix.h:80
ParameterMatrix< M > operator+(const Eigen::Matrix< double, -1, 1 > &other) const
Definition: ParameterMatrix.h:122
Definition: chartTesting.h:28
size_t cols() const
Get the number of columns.
Definition: ParameterMatrix.h:65
void print(const std::string &s="") const
Definition: ParameterMatrix.h:163
Eigen::Matrix< double, M, 1 > col(size_t index) const
Definition: ParameterMatrix.h:93
Definition: ParameterMatrix.h:38
MatrixType matrix() const
Get the underlying matrix.
Definition: ParameterMatrix.h:68
ParameterMatrix(const MatrixType &matrix)
Definition: ParameterMatrix.h:59
static ParameterMatrix Identity()
Definition: ParameterMatrix.h:192
ParameterMatrix< M > operator-(const ParameterMatrix< M > &other) const
Definition: ParameterMatrix.h:133