feat(hex8): preserve full high-low state in dynamic element responses

This commit is contained in:
KOKO\Mimi
2026-10-09 23:46:42 +09:00
parent d8d06ae8ae
commit 5435acdde3
21 changed files with 1152 additions and 16 deletions
+6 -1
View File
@@ -133,7 +133,7 @@ std::pair<Coefficients, Coefficients> Split(const Coefficients& original,
} // namespace
Certificate Certify(const Hex8Element::Coordinates& coordinates,
const Vector* displacement) {
const Vector* displacement, const Vector* displacement_low) {
std::array<std::array<Interval, 3>, 8> x{};
for (std::size_t a = 0; a < 8; ++a)
for (std::size_t i = 0; i < 3; ++i) {
@@ -145,6 +145,11 @@ Certificate Certify(const Hex8Element::Coordinates& coordinates,
if (!std::isfinite(u)) return Certificate::kNonfinite;
x[a][i] = Add(x[a][i], {u, u});
}
if (displacement_low) {
const auto low = (*displacement_low)[3U * a + i];
if (!std::isfinite(low)) return Certificate::kNonfinite;
x[a][i] = Add(x[a][i], {low, low});
}
if (!Finite(x[a][i])) return Certificate::kNonfinite;
}
Coefficients coefficients{};