const correctness
parent
3c33e44c46
commit
daf5938577
|
|
@ -107,7 +107,7 @@ namespace gtsam {
|
||||||
virtual GaussianFactor::shared_ptr negate() const = 0;
|
virtual GaussianFactor::shared_ptr negate() const = 0;
|
||||||
|
|
||||||
/// y += alpha * A'*A*x
|
/// y += alpha * A'*A*x
|
||||||
virtual void multiplyHessianAdd(double alpha, const VectorValues& x, VectorValues& y) = 0;
|
virtual void multiplyHessianAdd(double alpha, const VectorValues& x, VectorValues& y) const = 0;
|
||||||
|
|
||||||
/// A'*b for Jacobian, eta for Hessian
|
/// A'*b for Jacobian, eta for Hessian
|
||||||
virtual VectorValues gradientAtZero() const = 0;
|
virtual VectorValues gradientAtZero() const = 0;
|
||||||
|
|
|
||||||
|
|
@ -501,7 +501,7 @@ GaussianFactor::shared_ptr HessianFactor::negate() const
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
void HessianFactor::multiplyHessianAdd(double alpha, const VectorValues& x,
|
void HessianFactor::multiplyHessianAdd(double alpha, const VectorValues& x,
|
||||||
VectorValues& y) {
|
VectorValues& y) const {
|
||||||
|
|
||||||
for (size_t i = 0; i < size(); ++i) {
|
for (size_t i = 0; i < size(); ++i) {
|
||||||
pair<VectorValues::iterator, bool> it = y.tryInsert(keys_[i], Vector());
|
pair<VectorValues::iterator, bool> it = y.tryInsert(keys_[i], Vector());
|
||||||
|
|
|
||||||
|
|
@ -357,7 +357,7 @@ namespace gtsam {
|
||||||
void updateATA(const HessianFactor& update, const Scatter& scatter);
|
void updateATA(const HessianFactor& update, const Scatter& scatter);
|
||||||
|
|
||||||
/** y += alpha * A'*A*x */
|
/** y += alpha * A'*A*x */
|
||||||
void multiplyHessianAdd(double alpha, const VectorValues& x, VectorValues& y);
|
void multiplyHessianAdd(double alpha, const VectorValues& x, VectorValues& y) const;
|
||||||
|
|
||||||
/// eta for Hessian
|
/// eta for Hessian
|
||||||
VectorValues gradientAtZero() const;
|
VectorValues gradientAtZero() const;
|
||||||
|
|
|
||||||
|
|
@ -434,7 +434,7 @@ namespace gtsam {
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
void JacobianFactor::multiplyHessianAdd(double alpha, const VectorValues& x,
|
void JacobianFactor::multiplyHessianAdd(double alpha, const VectorValues& x,
|
||||||
VectorValues& y) {
|
VectorValues& y) const {
|
||||||
Vector Ax = (*this)*x;
|
Vector Ax = (*this)*x;
|
||||||
transposeMultiplyAdd(alpha,Ax,y);
|
transposeMultiplyAdd(alpha,Ax,y);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -260,7 +260,7 @@ namespace gtsam {
|
||||||
Vector operator*(const VectorValues& x) const;
|
Vector operator*(const VectorValues& x) const;
|
||||||
|
|
||||||
/** y += alpha * A'*A*x */
|
/** y += alpha * A'*A*x */
|
||||||
void multiplyHessianAdd(double alpha, const VectorValues& x, VectorValues& y);
|
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. */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue