reconciliation_lib 0.1
Library for data reconciliation algorithms
Loading...
Searching...
No Matches
recon.h
Go to the documentation of this file.
1#ifndef DVRLIB_RECON_H
2#define DVRLIB_RECON_H
3
4namespace dvrlib {
5
6class vector;
7class matrix;
8
14template <class argtype, class restype>
15class func {
16public:
17 virtual ~func() = default;
19 virtual restype operator()(const argtype& arg) const = 0;
20};
21
33void lin_cov_update(const matrix& S_x,
34 const matrix& F,
35 matrix& S_v);
36
49void lin_recon(const vector& r,
50 const matrix& S_x,
51 const matrix& F,
52 vector& v);
53
66void lin_recon_update(const vector& r,
67 const matrix& S_x_inv,
68 const matrix& F,
69 const vector& v,
70 vector& dv);
71
88int recon(const vector& x,
89 const matrix& S_x,
90 const func<vector, vector>& f,
91 const func<vector, matrix>& J,
92 vector& v,
93 matrix& S_v,
94 double eps = 1e-6,
95 int maxiter = 50);
96
103void extract_confidence(const matrix& S_xnew,
104 vector& conf_results);
105
112double confint2var(double confint);
113
120double var2confint(double var);
121
122} // namespace dvrlib
123
124#endif // DVRLIB_RECON_H
Abstract function object mapping argtype to restype.
Definition recon.h:15
virtual ~func()=default
virtual restype operator()(const argtype &arg) const =0
Evaluate the function at arg.
RAII wrapper around a heap-allocated gsl_matrix.
Definition gsl_wrapper.h:149
RAII wrapper around a heap-allocated gsl_vector.
Definition gsl_wrapper.h:39
Definition dvr_assert.h:7
double confint2var(double confint)
Convert a 95% confidence interval into a variance.
Definition recon.cc:166
double var2confint(double var)
Convert a variance into a 95% confidence interval.
Definition recon.cc:170
void lin_recon(const vector &r, const matrix &S_x, const matrix &F, vector &v)
Solve the linear reconciliation problem.
Definition recon.cc:75
void lin_recon_update(const vector &r, const matrix &S_x_inv, const matrix &F, const vector &v, vector &dv)
Compute the reconciliation correction step for non-linear iteration.
Definition recon.cc:99
int recon(const vector &x, const matrix &S_x, const func< vector, vector > &f, const func< vector, matrix > &J, vector &v, matrix &S_v, double eps, int maxiter)
Solve the non-linear reconciliation problem by iterative linearisation.
Definition recon.cc:126
void lin_cov_update(const matrix &S_x, const matrix &F, matrix &S_v)
Propagate measurement covariance through a linear constraint matrix.
Definition recon.cc:70
void extract_confidence(const matrix &S_xnew, vector &conf_results)
Extract 95% confidence intervals from a covariance matrix diagonal.
Definition recon.cc:174