Loading...
Searching...
No Matches
gtsam::noiseModel::mEstimator::Null Class Reference

## Detailed Description

"Null" robust loss function, equivalent to a Gaussian pdf noise model, or plain least-squares (non-robust).

This model has no additional parameters.

- Loss \rho(x) = 0.5 x²
- Derivative \phi(x) = x
- Weight w(x) = \phi(x)/x = 1

Inheritance diagram for gtsam::noiseModel::mEstimator::Null:

## Public Member Functions

| Null (const ReweightScheme reweight=Block)
double | weight (double) const override
| This method is responsible for returning the weight function for a given amount of error.
double | loss (double distance) const override
| This method is responsible for returning the total penalty for a given amount of error.
void | print (const std::string &s) const override
bool | equals (const Base &, double) const override
Public Member Functions inherited from gtsam::noiseModel::mEstimator::Base
| Base (const ReweightScheme reweight=Block)
ReweightScheme | reweightScheme () const
| Returns the reweight scheme, as explained in ReweightScheme.
double | sqrtWeight (double distance) const
Vector | weight (const Vector &error) const
| produce a weight vector according to an error vector and the implemented robust function
Vector | sqrtWeight (const Vector &error) const
| square root version of the weight function
void | reweight (Vector &error) const
| reweight block matrices and a vector according to their weight implementation
void | reweight (std::vector< Matrix > &A, Vector &error) const
void | reweight (Matrix &A, Vector &error) const
void | reweight (Matrix &A1, Matrix &A2, Vector &error) const
void | reweight (Matrix &A1, Matrix &A2, Matrix &A3, Vector &error) const

## Static Public Member Functions

static shared_ptr | Create ()

## Public Types

typedef boost::shared_ptr< Null > | shared_ptr
Public Types inherited from gtsam::noiseModel::mEstimator::Base
enum | ReweightScheme { Scalar , Block }
| the rows can be weighted independently according to the error or uniformly with the norm of the right hand side
typedef boost::shared_ptr< Base > | shared_ptr

## Friends

class | boost::serialization::access
| Serialization function.

## Additional Inherited Members

Protected Attributes inherited from gtsam::noiseModel::mEstimator::Base
ReweightScheme | reweight_
| Strategy for reweighting.

## Member Function Documentation

## equals()

bool gtsam::noiseModel::mEstimator::Null::equals | ( | const Base & | ,
|  | double | ) const

inline override virtual

Implements gtsam::noiseModel::mEstimator::Base.

## loss()

double gtsam::noiseModel::mEstimator::Null::loss | ( | double | distance | ) | const

inline override virtual

This method is responsible for returning the total penalty for a given amount of error.

For example, this method is responsible for implementing the quadratic function for an L2 penalty, the absolute value function for an L1 penalty, etc.

TODO(mikebosse): When the loss function has as input the norm of the error vector, then it prevents implementations of asymmeric loss functions. It would be better for this function to accept the vector and internally call the norm if necessary.

This returns \rho(x) in mEstimator

Reimplemented from gtsam::noiseModel::mEstimator::Base.

## print()

void gtsam::noiseModel::mEstimator::Null::print | ( | const std::string & | s = "" | ) | const

override virtual

Implements gtsam::noiseModel::mEstimator::Base.

## weight()

double gtsam::noiseModel::mEstimator::Null::weight | ( | double | distance | ) | const

inline override virtual

This method is responsible for returning the weight function for a given amount of error.

The weight function is related to the analytic derivative of the loss function. See https://members.loria.fr/MOBerger/Enseignement/Master2/Documents/ZhangIVC-97-01.pdf for details. This method is required when optimizing cost functions with robust penalties using iteratively re-weighted least squares.

This returns w(x) in mEstimator

Implements gtsam::noiseModel::mEstimator::Base.

The documentation for this class was generated from the following files:

- /build/gtsam-Xg031d/gtsam-4.2.0+dfsg/gtsam/linear/LossFunctions.h
- /build/gtsam-Xg031d/gtsam-4.2.0+dfsg/gtsam/linear/LossFunctions.cpp