small change as alpha=1
parent
ccae63fd42
commit
6c1f851d51
|
@ -432,13 +432,6 @@ namespace gtsam {
|
||||||
return model_ ? model_->whiten(Ax) : Ax;
|
return model_ ? model_->whiten(Ax) : Ax;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
void JacobianFactor::multiplyHessianAdd(double alpha, const VectorValues& x,
|
|
||||||
VectorValues& y) const {
|
|
||||||
Vector Ax = (*this)*x;
|
|
||||||
transposeMultiplyAdd(alpha,Ax,y);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
void JacobianFactor::transposeMultiplyAdd(double alpha, const Vector& e,
|
void JacobianFactor::transposeMultiplyAdd(double alpha, const Vector& e,
|
||||||
VectorValues& x) const
|
VectorValues& x) const
|
||||||
|
@ -451,10 +444,17 @@ namespace gtsam {
|
||||||
pair<VectorValues::iterator, bool> xi = x.tryInsert(keys_[pos], Vector());
|
pair<VectorValues::iterator, bool> xi = x.tryInsert(keys_[pos], Vector());
|
||||||
if(xi.second)
|
if(xi.second)
|
||||||
xi.first->second = Vector::Zero(getDim(begin() + pos));
|
xi.first->second = Vector::Zero(getDim(begin() + pos));
|
||||||
gtsam::transposeMultiplyAdd(1.0, Ab_(pos), E, xi.first->second);
|
gtsam::transposeMultiplyAdd(Ab_(pos), E, xi.first->second);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ************************************************************************* */
|
||||||
|
void JacobianFactor::multiplyHessianAdd(double alpha, const VectorValues& x,
|
||||||
|
VectorValues& y) const {
|
||||||
|
Vector Ax = (*this)*x;
|
||||||
|
transposeMultiplyAdd(alpha,Ax,y);
|
||||||
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
VectorValues JacobianFactor::gradientAtZero() const {
|
VectorValues JacobianFactor::gradientAtZero() const {
|
||||||
VectorValues g;
|
VectorValues g;
|
||||||
|
|
|
@ -259,13 +259,13 @@ namespace gtsam {
|
||||||
/** Return A*x */
|
/** Return A*x */
|
||||||
Vector operator*(const VectorValues& x) const;
|
Vector operator*(const VectorValues& x) const;
|
||||||
|
|
||||||
/** y += alpha * A'*A*x */
|
|
||||||
void multiplyHessianAdd(double alpha, const VectorValues& x, VectorValues& y) const;
|
|
||||||
|
|
||||||
/** x += A'*e. If x is initially missing any values, they are created and assumed to start as
|
/** x += A'*e. If x is initially missing any values, they are created and assumed to start as
|
||||||
* zero vectors. */
|
* zero vectors. */
|
||||||
void transposeMultiplyAdd(double alpha, const Vector& e, VectorValues& x) const;
|
void transposeMultiplyAdd(double alpha, const Vector& e, VectorValues& x) const;
|
||||||
|
|
||||||
|
/** y += alpha * A'*A*x */
|
||||||
|
void multiplyHessianAdd(double alpha, const VectorValues& x, VectorValues& y) const;
|
||||||
|
|
||||||
/// A'*b for Jacobian
|
/// A'*b for Jacobian
|
||||||
VectorValues gradientAtZero() const;
|
VectorValues gradientAtZero() const;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue