summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--least_squares.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/least_squares.cpp b/least_squares.cpp
index 49100b4..c0134d8 100644
--- a/least_squares.cpp
+++ b/least_squares.cpp
@@ -117,8 +117,8 @@ public:
auto [H, ∂H, ∂∂H] = H_∂H_∂∂H(x);
Vector ∇H = makeTangent(∂H, x);
- Matrix HessH = ∂∂H - (∂H * x.transpose() + x.dot(∂H) * Matrix::Identity(N, N)
- + (∂∂H * x) * x.transpose()) / (Real)N + 2.0 * x * x.transpose();
+ Matrix HessH = ∂∂H + (2 * x - (∂H + ∂∂H * x) / N) * x.transpose()
+ - (x.dot(∂H) / N) * Matrix::Identity(N, N);
return {H, ∇H, HessH};
}