![]() |
Ginan
|
Functions | |
| void | solveSystem (const int n, const int neqs, double *A, double *b) |
| Solve a system of linear equations Ax = b using LAPACKE. | |
| Architecture | RTS_Smoothing__ () |
| Rauch-Tung-Striebel Smoothing. | |
| void | rtsOutput (KFState &kfState, ReceiverMap &receiverMap, const RtsConfiguration *config) |
| Output filter states in chronological order from a reversed binary trace file. | |
| void | rtsSmoothing (KFState &kfState, ReceiverMap &receiverMap, bool write, const RtsConfiguration *config) |
| Iterate over stored filter states in reverse and perform filtering. | |
| Architecture RTS_Smoothing__ | ( | ) |
Rauch-Tung-Striebel Smoothing.
Combine estimations using filtered data from before and after each epoch. Complete filter vectors and matrices are stored in a binary file that is able to be read in reverse.
| void rtsOutput | ( | KFState & | kfState, |
| ReceiverMap & | receiverMap, | ||
| const RtsConfiguration * | config ) |
Output filter states in chronological order from a reversed binary trace file.
| kfState | State to get filter traces from |
| receiverMap | map of receivers |
| config | Configuration for dependency injection |
| void rtsSmoothing | ( | KFState & | kfState, |
| ReceiverMap & | receiverMap, | ||
| bool | write, | ||
| const RtsConfiguration * | config ) |
Iterate over stored filter states in reverse and perform filtering.
Saves filtered states to a secondary binary file, which is in reverse-chronological order due to the save sequence. Most serial objects that are processed are merely stored or accumulated as prerequisites for the FILTER_PLUS object, which contains the state of the filter immediately after the update step. At that stage, the previously smoothed (next chronologically) filter state is combined with the next filter minus state (immediately before the next chronological update step), any state transitions, and the filter plus state, using the standard rts algorithm. The filtered state and a measurements object which has updated residuals are then stored in a binary file. If intermediate outputs are enabled (rare) it performs some outputs using each filter state, but typically outputs all states chronologically after the reverse running rts procedure has reached the first epoch and all data is available for output in the correct sequence.
| void solveSystem | ( | const int | n, |
| const int | neqs, | ||
| double * | A, | ||
| double * | b ) |
Solve a system of linear equations Ax = b using LAPACKE.
Due to the characteristics of the matrix being used in the KF, we expect the matrix to be symmetric and positive definite Fallback order: posv -> sysv -> gesv -> fatal (positive definite, symmetric, general) TODO add chunking to solve large systems TODO move to algebra.cpp/hpp [might be needed for the KF as well]
| n | Size of the system |
| neqs | Number of right-hand sides |
| A | Matrix A |
| b | Right-hand side b |