feat(hex8): use reference-weighted mean-volume energy

This commit is contained in:
KOKO\Mimi
2026-10-10 23:32:40 +09:00
parent 29670e168d
commit 18b36c1c22
8 changed files with 537 additions and 155 deletions
@@ -99,8 +99,11 @@ std::vector<double> DenseOracle(const std::vector<std::size_t>& free) {
for (std::size_t d = 0; d < 3; ++d)
gradient_dot += GradientIntegral(a, b, d, d);
k[row * n + col] =
48.0 * (GradientIntegral(a, b, i, j) + GradientIntegral(a, b, j, i) +
(i == j ? gradient_dot : 0.0));
48.0 *
(-(2.0 / 3.0) * GradientIntegral(a, b, i, j) +
GradientIntegral(a, b, j, i) + (i == j ? gradient_dot : 0.0)) +
(80.0 / 48.0) * (48.0 * kSigns[a][i] / (8.0 * (i + 1))) *
(48.0 * kSigns[b][j] / (8.0 * (j + 1)));
if (i == j) {
m[row * n + col] = 2.0 * 48.0 / 64.0;
for (std::size_t d = 0; d < 3; ++d)