44 template<
typename Precision>
48 inline Precision
reweight(Precision x) {
return 1/(sd_inlier+fabs(x));}
50 inline Precision
objective(Precision x) {
return fabs(x) + sd_inlier*log(sd_inlier*
reweight(x));}
57 template<
typename Precision>
61 inline Precision
reweight(Precision d){
return 1/(sd_inlier+d*d);}
63 inline Precision
objective(Precision d){
return 0.5 * log(1 + d*d/sd_inlier);}
70 template<
typename Precision>
73 inline Precision
reweight(Precision d){
return 1;}
75 inline Precision
objective(Precision d){
return d*d;}
83 template<
typename Precision>
88 Precision
reweight(Precision x)
const
106 template <
int Size,
typename Precision,
template <
typename Precision>
class Reweight>
108 :
public Reweight<Precision>,
109 public WLS<Size,Precision>
113 WLS<Size,Precision>(size),
119 template<
int Size2,
typename Precision2,
typename Base2>
123 Precision scale = Reweight<Precision>::reweight(m);
124 Precision ts = Reweight<Precision>::true_scale(m);
Precision objective(Precision x) const
void clear()
Clear all the measurements and apply a constant regularisation term.
Precision sd_inlier
The inlier standard deviation squared, .
void set_sd(Precision)
Set the noise standard deviation (does nothing).
Precision objective(Precision d)
Returns .
Precision reweight(Precision d)
Returns .
Precision reweight(Precision x)
Returns .
void set_sd(Precision x)
Set the noise standard deviation.
void set_sd(Precision x)
Set the noise standard deviation.
Matrix< Size, Size, Precision > & get_true_C_inv()
void operator+=(const WLS &meas)
Matrix< Size, Size, Precision > my_true_C_inv
Everything lives inside this namespace.
static void test(int s1, int s2)
void add_mJ(Precision m, const Vector< Size, Precision, B2 > &J, Precision weight=1)
Precision true_scale(Precision x)
Returns .
int operator=(IRLS ©of)
Precision objective(Precision d)
Returns .
void add_mJ(Precision m, const Vector< Size2, Precision2, Base2 > &J)
double sd_inlier
The inlier standard deviation, .
const Matrix< Size, Size, Precision > & get_true_C_inv() const
Precision true_scale(Precision d)
Returns .
Precision true_scale(Precision d)
Returns .
Precision reweight(Precision x) const
Returns .
Precision objective(Precision x)
Returns .
void operator+=(const IRLS &meas)
void set_sd(Precision x)
Set the noise standard deviation.
static Operator< Internal::Zero > Zeros
Precision reweight(Precision d)
Returns .