gtsam 4.1.1
gtsam
|
L2WithDeadZone implements a standard L2 penalty, but with a dead zone of width 2*k, centered at the origin.
The resulting penalty within the dead zone is always zero, and grows quadratically outside the dead zone. In this sense, the L2WithDeadZone penalty is "robust to inliers", rather than being robust to outliers. This penalty can be used to create barrier functions in a general way.
Public Member Functions | |
L2WithDeadZone (double k=1.0, const ReweightScheme reweight=Block) | |
double | weight (double distance) const override |
double | loss (double distance) const override |
void | print (const std::string &s) const override |
bool | equals (const Base &expected, double tol=1e-8) const override |
![]() | |
Base (const ReweightScheme reweight=Block) | |
virtual double | loss (double distance) const |
virtual double | weight (double distance) const =0 |
virtual void | print (const std::string &s) const =0 |
virtual bool | equals (const Base &expected, double tol=1e-8) const =0 |
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 (double k, const ReweightScheme reweight=Block) |
Public Types | |
typedef boost::shared_ptr< L2WithDeadZone > | shared_ptr |
![]() | |
enum | ReweightScheme { Scalar , Block } |
typedef boost::shared_ptr< Base > | shared_ptr |
Protected Attributes | |
double | k_ |
![]() | |
ReweightScheme | reweight_ |
the rows can be weighted independently according to the error or uniformly with the norm of the right hand side | |
Friends | |
class | boost::serialization::access |
Serialization function. | |
|
overridevirtual |
Implements gtsam::noiseModel::mEstimator::Base.
|
overridevirtual |
Reimplemented from gtsam::noiseModel::mEstimator::Base.
|
overridevirtual |
Implements gtsam::noiseModel::mEstimator::Base.
|
overridevirtual |
Implements gtsam::noiseModel::mEstimator::Base.