Merge pull request #1969 from calcmogul/remove-operator-from-matrix-and-subgraph-preconditioner
Remove operator^ from Matrix and SubgraphPreconditionerrelease/4.3a0
commit
49c67d3819
|
@ -126,17 +126,6 @@ bool linear_dependent(const Matrix& A, const Matrix& B, double tol) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
Vector operator^(const Matrix& A, const Vector & v) {
|
|
||||||
if (A.rows()!=v.size()) {
|
|
||||||
throw std::invalid_argument("Matrix operator^ : A.m(" + std::to_string(A.rows()) + ")!=v.size(" +
|
|
||||||
std::to_string(v.size()) + ")");
|
|
||||||
}
|
|
||||||
// Vector vt = v.transpose();
|
|
||||||
// Vector vtA = vt * A;
|
|
||||||
// return vtA.transpose();
|
|
||||||
return A.transpose() * v;
|
|
||||||
}
|
|
||||||
|
|
||||||
const Eigen::IOFormat& matlabFormat() {
|
const Eigen::IOFormat& matlabFormat() {
|
||||||
static const Eigen::IOFormat matlab(
|
static const Eigen::IOFormat matlab(
|
||||||
Eigen::StreamPrecision, // precision
|
Eigen::StreamPrecision, // precision
|
||||||
|
|
|
@ -132,12 +132,6 @@ GTSAM_EXPORT bool linear_independent(const Matrix& A, const Matrix& B, double to
|
||||||
*/
|
*/
|
||||||
GTSAM_EXPORT bool linear_dependent(const Matrix& A, const Matrix& B, double tol = 1e-9);
|
GTSAM_EXPORT bool linear_dependent(const Matrix& A, const Matrix& B, double tol = 1e-9);
|
||||||
|
|
||||||
/**
|
|
||||||
* overload ^ for trans(A)*v
|
|
||||||
* We transpose the vectors for speed.
|
|
||||||
*/
|
|
||||||
GTSAM_EXPORT Vector operator^(const Matrix& A, const Vector & v);
|
|
||||||
|
|
||||||
/** products using old-style format to improve compatibility */
|
/** products using old-style format to improve compatibility */
|
||||||
template<class MATRIX>
|
template<class MATRIX>
|
||||||
inline MATRIX prod(const MATRIX& A, const MATRIX&B) {
|
inline MATRIX prod(const MATRIX& A, const MATRIX&B) {
|
||||||
|
|
|
@ -567,7 +567,7 @@ TEST(Matrix, matrix_vector_multiplication )
|
||||||
Vector AtAv = Vector3(142., 188., 234.);
|
Vector AtAv = Vector3(142., 188., 234.);
|
||||||
|
|
||||||
EQUALITY(A*v,Av);
|
EQUALITY(A*v,Av);
|
||||||
EQUALITY(A^Av,AtAv);
|
EQUALITY(A.transpose() * Av,AtAv);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
|
|
|
@ -61,7 +61,7 @@ namespace gtsam {
|
||||||
|
|
||||||
/** Apply operator A'*e */
|
/** Apply operator A'*e */
|
||||||
Vector operator^(const Vector& e) const {
|
Vector operator^(const Vector& e) const {
|
||||||
return A_ ^ e;
|
return A_.transpose() * e;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -71,7 +71,7 @@ namespace gtsam {
|
||||||
|
|
||||||
/** gradient of objective function 0.5*|Ax-b_|^2 at x = A_'*(Ax-b_) */
|
/** gradient of objective function 0.5*|Ax-b_|^2 at x = A_'*(Ax-b_) */
|
||||||
Vector gradient(const Vector& x) const {
|
Vector gradient(const Vector& x) const {
|
||||||
return A() ^ (A() * x - b());
|
return A().transpose() * (A() * x - b());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Apply operator A */
|
/** Apply operator A */
|
||||||
|
|
Loading…
Reference in New Issue