champions-of-luneraria/docs/port/logs/u1_5/float-probe-unity-release-before-fix.json
Martin Stickelbroeck 9bf397e765 U1.5 Unity Core Integration (2/2): explizite float32-Rundung, Nachweise
Befund: Unitys Mono 6.13 rechnet float32-Zwischenwerte doppelt genau
(ECMA-335 I.12.1.3). Der erste Editor-Lauf fand 5 von 157 Golden-
Abweichungen: Blickrichtung bis 1,6e-3 rad; in mirror_match Runde 7 verliert
eine Einheit in Schritt 599 ihr Ziel, und der Kampf dauert 4,8 s länger.
Eine Toleranz ist dafür nicht begründbar.

Maßnahme: Vec2 rundet jeden Zwischenwert explizit auf float32 (conv.r4).
Keine Regeländerung, R1 unverändert. .NET 8: 402/402, Golden 0, Trace
byteidentisch zu vorher. Unity-Editor (Release und Debug): 402/402, Golden
bitgleich in allen Bereichen, Float-Probe 4000/4000.

- CoreIntegrationTests: keine Engine-Referenzen im Kern, Float-Arithmetik
  wie Godot.
- docs/port/U1.5-UNITY.md: Versionen, Lizenz, Pakete, Tests, Golden je
  Bereich, Float-Befund, Editor-Benchmark, fehlende Build-Module.
- docs/port/KNOWN-BEHAVIOR-DIFFERENCES.md mit "Legacy defects retained for
  parity" (R1) und F1.
- Protokolle unter docs/port/logs/u1_5/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 15:22:36 +02:00

42 lines
1 KiB
JSON

{
"runtime": "Mono 6.13.0 (explicit/dc7ab1aa)",
"label": "Unity 6000.3.20f1 editor, Mono 6.13.0 (explicit/dc7ab1aa), code optimization Release",
"rows": 4000,
"identical_to_godot": {
"length": 3520,
"length_squared": 3049,
"distance_to": 3260,
"distance_squared_to": 2578,
"dot": 2560,
"normalized": 3524,
"lerp": 1786,
"limit_length": 3530,
"multiply": 4000,
"divide": 4000,
"sub_normalized": 3564,
"atan2": 4000
},
"worst_ulps": {
"length": 1,
"length_squared": 1,
"distance_to": 2,
"distance_squared_to": 2,
"dot": 1177,
"normalized": 2,
"lerp": 1709,
"limit_length": 2,
"multiply": 0,
"divide": 0,
"sub_normalized": 2
},
"evaluation_samples": 4000,
"evaluation_matches": {
"sum_of_squares_strict_float32": 3049,
"sum_of_squares_double_intermediate": 4000,
"sum_of_squares_fused": 3503,
"sum_of_squares_candidates_differ": 951,
"lerp_strict_float32": 2620,
"lerp_double_intermediate": 4000,
"lerp_candidates_differ": 1380
}
}