perf: reuse owned shell Jet Hessians in accumulation

This commit is contained in:
KOKO\Mimi
2026-10-21 08:16:05 +09:00
parent 2c92b11315
commit 7a6c096735
4 changed files with 263 additions and 5 deletions
+3 -2
View File
@@ -3,6 +3,7 @@
#include <array>
#include <cstddef>
#include <utility>
namespace fesa::math_internal {
/// @brief Multiplies fixed Jet matrices in row/column/index order.
@@ -17,7 +18,7 @@ std::array<std::array<Jet, 3>, 3> MultiplyJetMatrix(
for (std::size_t column = 0; column < 3; ++column) {
result[row][column] = constant(0.0);
for (std::size_t index = 0; index < 3; ++index)
result[row][column] = result[row][column] +
result[row][column] = std::move(result[row][column]) +
left[row][index] * right[index][column];
}
return result;
@@ -31,7 +32,7 @@ std::array<Jet, 3> MultiplyJetMatrixVector(
std::array<Jet, 3> result{constant(0.0),constant(0.0),constant(0.0)};
for (std::size_t row = 0; row < 3; ++row)
for (std::size_t column = 0; column < 3; ++column)
result[row] = result[row] + matrix[row][column] * vector[column];
result[row] = std::move(result[row]) + matrix[row][column] * vector[column];
return result;
}
} // namespace fesa::math_internal