Integrate Refactor solver sources and dual MSVC CMake builds

This commit is contained in:
KOKO\Mimi
2026-10-18 02:10:51 +09:00
parent 7ee32e5837
commit 12d51480de
218 changed files with 17842 additions and 9689 deletions
@@ -1193,16 +1193,15 @@ fesa::Vector3 VectorAt(const std::vector<double>& values,
fesa::Vector3 SpatialMoment(const fesa::Vector3& phi,
const fesa::Vector3& generalized) {
const Matrix transform = InverseTransposeLeftJacobianSO3(phi);
return {transform(0U, 0U) * generalized.X() +
transform(0U, 1U) * generalized.Y() +
transform(0U, 2U) * generalized.Z(),
transform(1U, 0U) * generalized.X() +
transform(1U, 1U) * generalized.Y() +
transform(1U, 2U) * generalized.Z(),
transform(2U, 0U) * generalized.X() +
transform(2U, 1U) * generalized.Y() +
transform(2U, 2U) * generalized.Z()};
// Independent closed-form action, used only as a test oracle.
const double angle = phi.Norm();
const double square = angle * angle;
const double coefficient = angle < 1e-4 ?
1.0 / 12.0 + square / 720.0 + square * square / 30240.0 +
square * square * square / 1209600.0 :
(1.0 - 0.5 * angle / std::tan(0.5 * angle)) / square;
return generalized + 0.5 * phi.Cross(generalized) +
coefficient * phi.Cross(phi.Cross(generalized));
}
fesa::Vector3 MaskedResidual(const Hdf5Projection& projection,