GemanMcClure implements the "Geman-McClure" robust error model (Zhang97ivc).
Note that Geman-McClure weight function uses the parameter c == 1.0, but here it's allowed to use different values, so we actually have the generalized Geman-McClure from (Agarwal15phd).
|
| GemanMcClure (double c=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 |
|