Fixed maybe-uninitialized warnings in Unit3::basis function

release/4.3a0
Andrei Costinescu 2018-10-12 10:32:41 +00:00
parent 767c5d41ee
commit 6ec0ca7982
1 changed files with 6 additions and 4 deletions

View File

@ -82,7 +82,6 @@ const Matrix32& Unit3::basis(OptionalJacobian<6, 2> H) const {
*H = *H_B_; *H = *H_B_;
return *B_; return *B_;
} else { } else {
B_.reset(Matrix32());
// Get the unit vector and derivative wrt this. // Get the unit vector and derivative wrt this.
// NOTE(hayk): We can't call point3(), because it would recursively call basis(). // NOTE(hayk): We can't call point3(), because it would recursively call basis().
const Point3 n(p_); const Point3 n(p_);
@ -111,7 +110,9 @@ const Matrix32& Unit3::basis(OptionalJacobian<6, 2> H) const {
Point3 b2 = gtsam::cross(n, b1, H ? &H_b2_n : nullptr, H ? &H_b2_b1 : nullptr); Point3 b2 = gtsam::cross(n, b1, H ? &H_b2_n : nullptr, H ? &H_b2_b1 : nullptr);
// Create the basis by stacking b1 and b2. // Create the basis by stacking b1 and b2.
(*B_) << b1.x(), b2.x(), b1.y(), b2.y(), b1.z(), b2.z(); Matrix32 stacked;
stacked << b1.x(), b2.x(), b1.y(), b2.y(), b1.z(), b2.z();
B_.reset(stacked);
if (H) { if (H) {
// Chain rule tomfoolery to compute the derivative. // Chain rule tomfoolery to compute the derivative.
@ -120,8 +121,9 @@ const Matrix32& Unit3::basis(OptionalJacobian<6, 2> H) const {
const Matrix32 H_b2_p = H_b2_n * H_n_p + H_b2_b1 * H_b1_p; const Matrix32 H_b2_p = H_b2_n * H_n_p + H_b2_b1 * H_b1_p;
// Cache the derivative and fill the result. // Cache the derivative and fill the result.
H_B_.reset(Matrix62()); Matrix62 derivative;
(*H_B_) << H_b1_p, H_b2_p; derivative << H_b1_p, H_b2_p;
H_B_.reset(derivative);
*H = *H_B_; *H = *H_B_;
} }