perf: reuse owned shell Jet Hessians in accumulation
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user