From efd5b5bea4640e498686f1c7f2eae44d2caad44b Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Mon, 10 Feb 2025 08:24:43 -0300 Subject: Slightly more effecient calculation of gradient --- fits.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fits.cpp b/fits.cpp index 370b63d..62d75c9 100644 --- a/fits.cpp +++ b/fits.cpp @@ -57,11 +57,12 @@ Real cost(const std::list>& data, const Vector& coeffs) { Vector dCost(const std::list>& data, const Vector& coeffs) { Vector dC = Vector::Zero(coeffs.size()); - for (unsigned j = 0; j < coeffs.size(); j++) { - for (const std::tuple& xy : data) { + for (const std::tuple& xy : data) { + for (unsigned j = 0; j < coeffs.size(); j++) { Real x = std::get<0>(xy); Real y = std::get<1>(xy); - dC[j] += (value(coeffs, x) - y) * basisFunctions(coeffs.size(), j, x); + Real Δc = value(coeffs, x) - y; + dC[j] += Δc * basisFunctions(coeffs.size(), j, x); } } -- cgit v1.2.3-70-g09d2