28 << predictedCovariance(prev_ts) <<
"\n, inverse: \n"
29 << predictedCovariance(prev_ts).inverse());
34 BoundMatrix G = filteredCovariance(ts) * jacobian(prev_ts).transpose() *
35 predictedCovariance(prev_ts).inverse();
40 return KalmanFitterError::SmoothFailed;
46 ACTS_VERBOSE(
"Filtered parameters: " << filtered(ts).transpose());
47 ACTS_VERBOSE(
"Prev. smoothed parameters: " << smoothed(prev_ts).transpose());
49 "Prev. predicted parameters: " << predicted(prev_ts).transpose());
52 smoothed(ts) = filtered(ts) + G * (smoothed(prev_ts) - predicted(prev_ts));
54 ACTS_VERBOSE(
"Smoothed parameters are: " << smoothed(ts).transpose());
56 ACTS_VERBOSE(
"Prev. smoothed covariance:\n" << smoothedCovariance(prev_ts));
59 smoothedCovariance(ts) =
60 filteredCovariance(ts) +
61 G * (smoothedCovariance(prev_ts) - predictedCovariance(prev_ts)) *
71 "Smoothed covariance is not positive definite. Could result in "
72 "negative covariance!");
75 smoothedCovariance(ts) = smoothedCov;
76 ACTS_VERBOSE(
"Smoothed covariance is: \n" << smoothedCovariance(ts));