eaa5cbeb21
Integrate Hex8 mass verification and fixed-null-basis shell dynamics with numerical and physics handoff evidence. Preserve interrupted reference and full-validation status; full integration validation is deferred until after performance optimization.
747 lines
54 KiB
Markdown
747 lines
54 KiB
Markdown
# C08 시간 정확도·운동량 실패의 후속 검증
|
||
|
||
후속 승인: 사용자가 아래 §7의 세 변경안을 승인했으며
|
||
[HHT-ADR-014](ADR.md)에 기록했다. 아래 private 결과·미채택 표현은 승인 전 조사와
|
||
실행의 이력이다. 승인 후 실제 구현·검증 상태는 [PRD checklist](PRD.md)를 따른다.
|
||
승인 자체가 기존 실패 또는 새 production 검증을 PASS로 바꾸지는 않는다.
|
||
|
||
2026-10-12. 사용자가 [해결 후보 조사](research.md#temporal-remediation-research)의 권장
|
||
순서 실행을 요청한 작업이다. 소형 DAE 검산, 실제 C08b 해상도 분석, P 평가와 history
|
||
분리, 같은 HHT 식의 산술 후보를 다룬다. Production·공식 검사·허용값·reference는
|
||
변경하지 않았다. 기존 C08a/C08b FAIL은 유지한다. [PRD](PRD.md)의 미완료 항목을
|
||
이 private 실험의 실행 성공으로 닫지 않는다.
|
||
|
||
## 1. 소형 DAE: 초기화와 전체 시간 정확도를 구분
|
||
|
||
`M=diag(1,0), U=(z−x³)²/2`인 cubic 제조해와 explicit-time 제조해, moving-null
|
||
oscillator, 실제 3DOF의 prescribed spectator BC 모델을 Decimal80으로 실행했다.
|
||
각 모델에서 현 full-coordinate HHT recurrence와 reduced-coordinate HHT를
|
||
`h=1/16…1/256`, `T=1`에 대조했다. Frame0의 정확한 q/v/물리적 a와 `A0=a0`를
|
||
보존하며 처음 몇 frame을 제외하지 않고 전체 시점의 최대 오차를 사용했다.
|
||
|
||
Moving-null 모델은 `y=x+z²/2`, `z=y³`, `y=sin(t)`로 두고
|
||
`M=(1,z)ᵀ(1,z)`, `N=(-z,1)`이다. 물리 관성에는 `v_z²`를 포함한다.
|
||
축소 embedding은 `Q(y)=(y−y⁶/2,y³)`이며
|
||
`v=Q_y v_y`, `a=Q_y a_y+Q_yy v_y²`로 실제 full rates를 복구한다.
|
||
|
||
| Moving-null finest 결과 | q 오차 | v 오차 | 물리적 a 오차 | 마지막 refinement 차수(q/v/a) |
|
||
| --- | ---: | ---: | ---: | --- |
|
||
| Full-coordinate recurrence | 1.28632e-5 | 2.43051e-5 | 3.22243e-2 | 2.00105 / 2.00095 / 1.00078 |
|
||
| Reduced-coordinate + chain rule | 1.97708e-6 | 3.54847e-6 | 9.93091e-6 | 1.99986 / 1.99968 / 1.99911 |
|
||
|
||
Cubic/explicit-time의 full-coordinate 물리적 a도 차수1이다. 정확한 초기 a만으로
|
||
후속 recurrence의 차수 저하가 없어지지 않는다. Reduced 방식의 정확히0인 오차에는
|
||
차수를 부여하지 않았다. Full residual 최대는3.22e-75 이하이며 reduced residual 및
|
||
hidden0/1/2는2e-79 수준 이하이다. 작은 잔차와 시간 정확도를 혼동하지 않는다.
|
||
|
||
실제 current C08a의 finest angular-a 최대 오차는5.67473e-4이며 기존1e-4를 넘는다.
|
||
Raw 마지막 차수는 약1이지만 finest v_phi/a_phi의 N7 noise separation은
|
||
INCONCLUSIVE다. 실제 shell의 차수 전체를 이 raw 값만으로 확정하지 않는다.
|
||
위 Decimal 반례는 이와 별개의 exact-arithmetic recurrence 차수 저하 증거다.
|
||
Current shell 측정의 원본은 [두 시작점 정책 보고서](newton-start-policy.md)를 따른다.
|
||
|
||
최종 v2는 실제3state/mass/null/free projection/reaction을 계산한다. 초기 v1의 spectator
|
||
bookkeeping 문제는 보존된 이력과 분리해 수정했다. 별도 Decimal100 polynomial-root
|
||
oracle가40행을 재현했고 오차 측정값 차이는5.99e-77 이하이다. Native exit0.
|
||
이 BC는 moving null을 자르는 BC가 아니며 shell partial-rotation BC·rank 변화·empty-null
|
||
검증으로 확대하지 않는다.
|
||
|
||
Evidence: `.dryforge/hht-remediation-20261012/dae/compare.py`, `comparison.json`,
|
||
`run-native.json`, `formulation.md`; 독립 검산은 같은 작업의
|
||
`review/dae-independent.json`, `review/numerical-review.md`.
|
||
|
||
## 2. 실제 C08b: 해상도와 finer Newton 실패
|
||
|
||
Current `RunPlate`·[두 시작점 정책](newton-start-policy.md)을 이용해 실제 accepted
|
||
q/v/a/A와 관성·내력 접선을 export했다. Debug 512/1024는129/257 frames를 모두
|
||
기록했고 공식 P와 일치한다. 초기 wrapper가 native process handle을 보존하지 않아
|
||
이 두 실행의 **native exit는 미확인**이다. Completion marker만으로 exit0을 추정하지
|
||
않는다. 같은 소스의 private MSVC Release 1024는 실제 exit0이며 이력과 P가 Debug와
|
||
bitwise 일치했다. Release는 별도 build tree여서 기존 Debug binary를 바꾸지 않았다.
|
||
|
||
Analytic mass null로 물리 부분공간을 정의하고 그 공간의 양의 mass를 Cholesky로
|
||
whiten했다. Elastic static condensation의 최대 주파수는 약311rad/s이다. 현재
|
||
convective partials까지 포함한 frozen full quadratic pencil의 최대 허수 주파수도
|
||
약311rad/s이며 원54-row pencil residual은5e-15 이하이다. Frozen coefficient/basis
|
||
분석이 실제 trajectory의 모드·안정성을 증명하지는 않는다. Elastic tangent의 비대칭
|
||
크기를 기록하고 symmetric-part 진단이라는 점을 명시했다. 음의 고유값·실수 root를
|
||
clamp하지 않았다.
|
||
|
||
초기 M/K와 실제 초기 v를 고정한 linear elastic surrogate에서도 회전 a의
|
||
512→1024 정규화 self-difference가0.437559였다. 실제 비선형 C08b는0.474897이다.
|
||
Surrogate exact solution 대비 회전 a 오차는1024/2048/4096/8192에서
|
||
0.162320 / 0.0413825 / 0.0103790 / 0.00259656으로 차수2에 접근한다.
|
||
이 결과는 고주파 시간 해상도가 중요하다는 근거다. Surrogate는 실제 nonlinear a0,
|
||
changing geometry/stiffness·convective 항을 대체하지 않으며 실패의 전체 원인 증명이 아니다.
|
||
독립 3-state amplification 계산이 surrogate 오차를1.15e-13 이내로 재현했다.
|
||
|
||
원 q-갱신 방식의 추가2048/4096 실행은 각각 increment242/1에서 Newton100에
|
||
도달했다. 초기 wrapper의 두 nonzero exit는 직접 보존되지 않았다. 별도 bounded
|
||
4096 instrumented 실행에서 실제 exit1과 첫 증분 실패를 확인했다. Iteration90–100의
|
||
free residual은 약1.79929e-10으로 기존1e-10 기준을 넘었고 보정량은 약8.2e-19였다.
|
||
q 변화는 약8.27e-19에서 정체했다. 이 시점의 q−q_p 차감으로 rates를 되찾는 산술이
|
||
잔차 감소를 제한하는 근거이며 기준 완화나 실패 frame 수용은 하지 않았다.
|
||
독립 tail 검산에서 이11개 iteration의 병진27개 q component는 전부 변하지 않았다.
|
||
잔차 gate를 초과한 것도 병진 채널이며 회전 채널 잔차는 약8.93e-13이었다.
|
||
|
||
Evidence: 작업 폴더의 `c08b/run-512`, `c08b/run-1024`,
|
||
`c08b/release/run-*`, `c08b/primary-A/run-current-4096-instrumented`,
|
||
`resolution/analyze.json`, `resolution/initial_elastic_surrogate.json`;
|
||
독립 검토는 `review/capture-numerical-review.md`, `review/surrogate-independent.json`.
|
||
|
||
## 3. P 평가 오차와 accepted history drift
|
||
|
||
동일 binary64 accepted state에 대해 ordinary sum, compensated sum, Decimal80,
|
||
별도 exact Fraction을 대조했다. 기존 정규화 P 오차는512/1024에서
|
||
2.84555e-14 / 8.03575e-14이고 정확한 state 평가에서도
|
||
2.86236e-14 / 8.03708e-14였다. Sequential 평가와 exact 평가의 차이는
|
||
5.59e-17 / 6.83e-17 이하이다. 합산만 개선해서 history drift를 제거할 수 없다.
|
||
|
||
Frozen history에서 predictor/rates를 Decimal100으로 다시 계산하면 weighted predictor
|
||
오차의 가속도 증폭 규모가5.91e-12 / 2.97e-11이다. 원
|
||
`sum(m_i*a_ui)`의 최대4.59e-12 / 2.14e-11과 비슷한 규모다. Binary64 replay는 실제
|
||
54개 rate를 정확히 재현했다. 그러나 고정밀 rates만 덮어쓰면 기존 equilibrium과
|
||
일관된 새 history가 되지 않으며 실제 weighted acceleration도 더 커졌다. 이를 보정된
|
||
solution으로 사용하지 않았다. 원인 분리에 필요한 sensitivity evidence다.
|
||
|
||
Evidence: `c08b/analyze_p.py`, 각 `p-analysis.json`,
|
||
`resolution/rate_arithmetic.json`, `review/capture-independent.json`,
|
||
`review/rate-independent.json`. Product rounding과 final cast를 포함한 proxy를 순수
|
||
product-only 오차로 부르지 않는다.
|
||
|
||
## 4. 같은 HHT 방정식의 carried-A 산술 후보
|
||
|
||
Frozen predictor `q_p/v_p`와 old physical a를 두고 `b=beta*h²`라 하면 현재 식은
|
||
|
||
```
|
||
q = q_p + b*A
|
||
v = v_p + gamma*h*A
|
||
a = (A + alpha*a_old)/(1+alpha)
|
||
```
|
||
|
||
`dE/dA=b*K_eff`이므로 기존 solve `K_eff*delta_q=-E` 이후
|
||
`A <- A+delta_q/b`로 갱신하고 위 식으로 실제 trial을 구성한다. 각 iteration에서
|
||
`A=(q−q_p)/b`를 다시 계산하지 않는다. 정확산술에서는 같은 full-coordinate HHT와
|
||
Newton이다. Reduced-coordinate 적분이나 momentum projection이 아니며 public A의
|
||
의미를 바꾸는 제안도 아니다. Binary64 history는 기존 q-update와 bitwise 다를 수 있다.
|
||
|
||
첫 iteration은 실제 `EvaluateNewtonStart`가 선택한 frame과 assembly를 그대로 소비한다.
|
||
그 후 실제 trial의 q/v/a/A로 residual/tangent를 조립한다. Requested scaled correction,
|
||
잔차·hidden·geometry·linear solve·Newton100 기준을 유지한다. 실제 반올림된 q 변화가
|
||
작더라도 inertia rates는 움직일 수 있으므로 requested correction과 실제 state 변화,
|
||
`q−q_p−b*A` closure를 구별해야 한다.
|
||
|
||
Private 512/1024/2048/4096은 모두 native exit0으로129/257/513/1025 frames를
|
||
완료했다. 정규화 P 오차는 각각
|
||
4.71100e-16 / 5.30454e-16 / 7.57130e-16 / 1.20892e-15이다. 원 q-update 대비 history 차이는
|
||
관측됐으며 bitwise 동일한 구현이라고 보고하지 않는다. **Legacy `RecordNoise`는
|
||
q-inverse 경로를 위한 N7 estimator다. 그대로 기록한 값은 carried-A 경로의 새 noise
|
||
인증이 아니다.** 후보의 실제 finer 결과는 다음과 같다.
|
||
|
||
| Common-time grid pair | q_u | q_phi | v_u | v_phi | a_u | a_phi |
|
||
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
||
| 512→1024 | 4.29914e-6 | 1.10373e-4 | 8.79298e-5 | 7.21911e-3 | 4.37504e-3 | 4.74897e-1 |
|
||
| 1024→2048 | 1.08964e-6 | 3.10386e-5 | 2.28210e-5 | 2.01776e-3 | 1.21522e-3 | 1.31782e-1 |
|
||
| 2048→4096 | 2.73155e-7 | 7.96550e-6 | 5.85811e-6 | 5.45651e-4 | 3.14411e-4 | 3.40941e-2 |
|
||
| 마지막 self-difference 차수 | 1.99605 | 1.96223 | 1.96185 | 1.88670 | 1.95049 | 1.95056 |
|
||
|
||
표의 마지막 행은 `log2(previous difference/current difference)`이며 exact error의
|
||
차수가 아니다. 각 pair의 전체 공통 시점과9 nodes의 최대값을 사용하며 rate order r에
|
||
대해 `T^r` (`T=.25`)를 곱한다. 병진 length scale은 최대 초기 edge1이다.
|
||
회전 a의 차이는 finer grid에서 감소하지만 원512→1024 값은 그대로여서 기존 정확도
|
||
기준을 충족했다고 볼 수 없다. 새 grid로 기존 grid의 FAIL을 대체하지 않는다.
|
||
|
||
기존 finest difference bound는1e-4다. 관측한 차수2가 계속된다고 가정하면 회전 a의
|
||
2048→4096 차이0.0340941을 이 bound 이하로 줄이려면 coarse denominator가
|
||
약3.8만 이상이어야 한다. 예를 들어65536→131072의 차이는 단순 차수 외삽으로
|
||
약3.33e-5다. **실제 실행이나 통과 보장이 아닌 비용/해상도 추정**이다.
|
||
최종 두 refinement 차수까지 유지하려면32768/65536/131072 같은 추가 grid 후보를
|
||
검토할 수 있다. 승인된64–1024 grid를 이 후보로 자동 교체하지 않는다. 기존 문제의
|
||
고주파를 제거하거나 초기 변형 진폭을 줄여 통과시키지도 않는다.
|
||
|
||
Energy 오차는4.02172e-6 / 1.00065e-6 / 2.49394e-7 / 6.22469e-8, angular momentum
|
||
오차는1.71966e-6 / 4.30176e-7 / 1.07558e-7 / 2.68907e-8로 감소한다. 반면 P는
|
||
작아져도 strict decrease를 충족하지 않는다. 시간 해상도·산술 개선·acceptance 문제를 구별한다.
|
||
|
||
Evidence: `c08b/primary-A/primary_a.cpp`, 각 `identity.json`·`native.json`·
|
||
`trajectory.jsonl`, `pureq-vs-primaryA.json`; 실행 wrapper는 Python subprocess의 실제
|
||
child exit를 종료 전에 기록한다. 최초512의 DLL 누락 exit3221225781은 별도 실패로
|
||
보존했고 runtime 구성 후 성공 실행과 구분했다.
|
||
Common-time 대조의 실행 원본은 `resolution/carried_a_differences.py`·동일 이름의 `.json`이다.
|
||
|
||
독립 reviewer는 실제 source/계수/잔차·보정 기준·첫 assembly 소비를 대조했고 각 grid의
|
||
stored q/v/a를 binary64 direct map으로 재현했다(mismatch0). Fraction 기준의
|
||
`q−q_p−b*A` closure는 최대0.499998 ulp였다. 독립 exact nodal P drift는
|
||
3.53493e-16 / 4.87510e-16 / 5.52863e-16 / 9.31361e-16이며 공식 quadrature P와
|
||
별도 지표다. Weighted physical/auxiliary acceleration 합도 약1.8e-16 이하로 감소했다.
|
||
원54-row endpoint 내력 합과의 완전 오차 예산은 capture에 raw 내력 합이 없어 미완료다.
|
||
Six-channel 차이와 peak time/node도 독립 exact-input 계산으로 재현했다.
|
||
Review evidence는 `review/carried-a-final-review.md`·`carried-a-independent.json`이다.
|
||
|
||
Scoped N5는 초기 selected state·h=1/512에서 u/phi/mixed normalized direction에
|
||
대해 `2^-j`, j=8,10,12,14,16,18,20 고정 sweep을 수행했다. 첫 probe는 linked
|
||
q/v/a/A increment의 analytic tangent를 검사했다. 독립 검토 지적 후 v2는 base 및
|
||
양/음 perturbation을 실제 `q_p+b*A` map으로 재구성하고 base tangent도 다시
|
||
조립했다. 내부 sweep에 연속 통과 쌍이 있으며 최악 j10 상대 action 차이는
|
||
2.35197e-8로 기존1e-6 이하이다. 두 probe 모두 실제 child exit0이고 N5 stdout
|
||
completion marker와 빈 stderr를 확인했다. 공용 wrapper가 다른 marker를 검색해
|
||
`completion_marker=false`로 기록한 원값은 보존했다. 이 한 상태의 검사이며 모든
|
||
accepted state·BC·N7 통과로 확대하지 않는다. Evidence는
|
||
`c08b/primary-A/n5-carried-a-v2`, `review/carried-a-n5-audit.json`이다.
|
||
|
||
별도 instrumented512는 기존 trajectory를 덮어쓰지 않고 실제 exit0으로 완료했다.
|
||
384 corrections에서 requested/actual reconstructed delta q의 최대 차이는4.67227e-17,
|
||
binary64로 평가한 q-map closure는2.77287e-17이었다(위 Fraction closure와 구분).
|
||
최대 requested correction6.21702e-6과 실제
|
||
correction도 별도로 기록했다. Requested full vectors를 보존했지만 실제 full delta
|
||
vector는 기록하지 않아 모든 component의 독립 재계산을 의미하지는 않는다.
|
||
`c08b/primary-A/instrumented-512/requested-vs-actual-dq.jsonl`·`native.json`에
|
||
실행 identity와 수치를 남겼다. N5와 마찬가지로 wrapper marker boolean은false지만
|
||
해당 stdout marker·실제 child exit0을 확인했다.
|
||
|
||
최종 독립 검토는 위4grid의 recurrence/저장 state, one-state N5 v2,
|
||
384 correction records의 순서·집계·source/exe/library identity를 확인했다.
|
||
Correction은 aggregate/source audit이며 complete independent rounding oracle는 아니다.
|
||
최종 판정은 **이 private arithmetic 후보의 scoped 수치 타당성 확인**이다.
|
||
Production 채택·N7·BC·공식 C08 PASS 판정과 구별한다.
|
||
|
||
## 5. P strict decrease의 계약 문제
|
||
|
||
현재 flat centered all-free C08b에서는 first thickness moment가0이므로
|
||
`P_n=sum(m_i*v_ui,n)`, 병진 관성은 `m_i*a_ui`이다. 실제 물리/drilling potential의
|
||
균일 translation 불변성에서 `sum(f_int,ui)=0`이다. 정확한 endpoint equilibrium을
|
||
합하면 `S_a,n=sum(m_i*a_ui,n)=0`이다. 초기 평형과 `A0=a0`가 이를 만족하면
|
||
|
||
```
|
||
S_A,n+1 = (1+alpha)*S_a,n+1 - alpha*S_a,n = 0
|
||
P_n+1 - P_n = h*((1-gamma)*S_A,n + gamma*S_A,n+1) = 0
|
||
```
|
||
|
||
따라서 원 full-coordinate HHT의 정확 branch는 모든 h에서 P를 정확히 보존한다.
|
||
P drift의 strict temporal decrease는 정확 branch에조차 `0<0`을 요구한다.
|
||
독립 reviewer도 실제 translation-invariant source와 reference의 zero first moment,
|
||
별도 유리수 HHT recurrence 대조를 통해 이 증명을 확인했다.
|
||
Finite-precision 비영 drift의 비율은 이 문제의 P 시간절단 차수가 아니다. 이 증명이
|
||
현재 drift 전부를 roundoff로 인증하거나 energy/angular momentum의 정확한 이산
|
||
보존을 보장하지는 않는다. General warped shell·first moment≠0·외력·반력 및 새
|
||
reduced recurrence에 이 간단한 증명을 그대로 적용할 수 없다.
|
||
|
||
**사용자 결정 후보:** 기존 absolute P bound `<=1e-3`는 유지하고 이 특수 C08b에서는
|
||
P 절대 보존과 원 balance/update consistency를 검사한다. E/L의 기존 temporal
|
||
decrease는 유지하며 P에만 strict-decrease를 요구하지 않는다. 필요한 raw 진단은
|
||
`S_a`, `S_A`, `sum(f_int,u)`, `sum(E_u)`, HHT filter 및 velocity update defect다.
|
||
이는 acceptance 변경이므로 미승인 상태다. Tests·tolerance·FAIL을 자동 변경하지 않았다.
|
||
|
||
## 6. C08a의 실제 차수 문제와 다음 구현 경계
|
||
|
||
Carried-A는 같은 recurrence의 산술 개선이므로 §1의 물리적 a 차수1 반례를 해결하지
|
||
않는다. 실제 shell에 reduced-coordinate 후보를 적용하려면 smooth embedding
|
||
`q=Q(p,t)`, constraint Jacobian의 regularity·transversality, 양의 reduced mass를
|
||
검증해야 한다. Fixed graph에서 drilling scalar `psi=0`을 풀며 `psi_z` 가역성 하나만으로
|
||
모든 조건이 충족되었다고 판정하지 않는다.
|
||
|
||
복구식은 `v=J*v_p+Q_t`,
|
||
`a=J*a_p+Q_pp[v_p,v_p]+2*Q_pt*v_p+Q_tt`다. Residual은 `R=J^T*E`이고 정확한
|
||
접선에는 `(delta J)^T*E` 및 curvature/time 미분을 포함한다. Raw internal-force
|
||
third derivative만으로 충분하다고 단정하지 않는다. 현재 shell의 정확 drilling identity를
|
||
활용하면 일부 high-order energy 미분을 피할 수 있으나 constraint의 필요한 third
|
||
contractions·force/time derivatives·partial BC·chart transition을 실제 구현해야 한다.
|
||
|
||
구체적으로 fixed graph의 독립 좌표 p와 종속 drilling 좌표 z를 잡아 coupled
|
||
`psi(p,z,t)=0`을 푼다. 각 node의 admissible null을 n_i라 하면 현재 shell의 exact
|
||
identity는 `n_i^T*grad(U_phys)=0`이며 drilling constraint는
|
||
`psi_i=sum_e(k_e*S_i*gamma_ei)−n_i^T*F_i`,
|
||
`S_i=1/||J_l(phi_i)^(-1)*d_i||`로 표현할 수 있다. `gamma_ei`는 raw drilling
|
||
measure이고 현재 공개 `drilling_constraint`는 그 raw measure와 다른 force-derived
|
||
scalar다. 기존 scalar gradient/Hessian을 재사용할 수 있으나 필요한 third contractions는
|
||
현재 public return에 없다. 이 identity는 일반 U의 fourth derivative를 무조건 요구하는
|
||
경로를 피하는 데 유용하지만 외력의 null 미분과 explicit-time 항을 생략하는 근거가 아니다.
|
||
|
||
정확한 reduced Newton action은 같은 full trial에서
|
||
|
||
```
|
||
delta R = (delta J)^T*E
|
||
+ J^T*((I_q + K_int - F_q)*delta q + I_v*delta v + M*delta a)
|
||
```
|
||
|
||
를 계산한다. `delta q=J*delta p`이고 delta v/a는 위 chain-rule 복구식 전체를
|
||
미분한다. 따라서 Q_ppp와 mixed-time operators, 독립 HHT rate의 delta v_p/a_p가
|
||
포함된다. Constraint의 implicit derivatives는 같은 coupled `psi_z`로 solve한다.
|
||
`(delta J)^T*E`를 free endpoint residual이 작다는 이유로 제거하거나 FD 접선을 공식
|
||
정확 접선으로 대체하지 않는다. Fixed graph가 invalid하면 새 pivot/chart와 history의
|
||
검증된 수송식이 필요하다. 준비 전에는 silent normalization 대신 명시적 실패다.
|
||
|
||
최종 소형 정식화와 source capability 분석은 작업의 `dae/formulation.md`에 있고 실제
|
||
shell reduced prototype은 아직 미구현이다. 같은 full A field에 filter-combination 값을
|
||
담더라도 full Newmark driver라는 기존 의미가 사라질 수 있다. State/history·HDF5
|
||
semantics/schema 선택은 `io/io.md`의 **미채택 후보**이며 기존 계약을 덮어쓰지 않는다.
|
||
실제 채택 전 구체적인 알고리즘·영속 결과 의미 결정이 필요하다.
|
||
|
||
새 production 구현 후에는 해당 산술의 N5/N7, lifecycle/BC/physical balance와 기존
|
||
C08 검사를 먼저 실행하고, 구성된 전체 MSVC Debug/CTest·필수 원본 비교를 수행한다.
|
||
이번 private 수학/실행 자료를 공식 전체 회귀의 현재 PASS로 승계하지 않는다.
|
||
|
||
## 7. 채택 전에 필요한 결정과 검사
|
||
|
||
1. Carried-A는 같은 식의 산술 후보다. 실제 map의 scoped N5와 requested/actual
|
||
correction 대조와 별도로 N7 arithmetic estimator·BC/lifecycle·production 회귀가
|
||
남는다. 이번4grid 실행만으로 production을 수정하거나 완료를 선언하지 않는다.
|
||
2. C08b의 P는 §5의 absolute conservation 판정 변경 여부를 사용자에게 확인한다.
|
||
Energy/L bound·잔차·physical mass는 그대로다. 정확 branch에도 strict decrease가
|
||
성립하지 않는 현재 계약 문제를 tolerance 완화로 해결하지 않는다.
|
||
3. C08b의 시간 정확도에는 고주파를 충분히 resolve하는 grid가 필요하다. 기존64–1024
|
||
결과를 보존하고32768/65536/131072를 최종 수렴 판정에 추가하는 후보는 acceptance
|
||
변경이다. 관측된 차수 외삽이며 N7 또는 실제 성공의 보장이 없음을 함께 결정한다.
|
||
4. C08a에는 원 full-coordinate recurrence와 다른 reduced-coordinate 적분을 검토한다.
|
||
물리적 q/v/a·초기값·원 residual/hidden 기준은 유지한다. Public full A를 diagnostic
|
||
filter combination으로 정의하고 shell 결과에 algorithm metadata/schema version2를
|
||
구분하는 것은 **미승인 제안**이다. 승인 후에도 실제 shell prototype·독립 검토 없이
|
||
채택하지 않고 fixed patch 밖은 검증된 전환식이 마련될 때까지 fail closed한다.
|
||
|
||
위2–4는 승인된 acceptance·절차·영속 의미를 바꾸므로
|
||
[프로젝트 지침](../../AGENTS.md)의 사용자 결정 경계에 해당한다. 이번 실행의 성공을
|
||
승인으로 해석하지 않는다. 작업에 사용한 기존 production·tests·원본·binary의 hash는
|
||
`.dryforge/hht-predictor-newton-20261012/closed-identities.json`과 대조해 전부 일치했다.
|
||
따라서 이번 작업에서는 새 production 전체 build/CTest·reference 재검증을 실행하지 않았다.
|
||
문서의 local 링크와 whitespace는 정적 검사한다.
|
||
최종 정적 검사에서 local 링크536개에 missing0, `git diff --check` exit0이었다.
|
||
|
||
## 8. 승인 후 실제 구현과 현재 검증 범위
|
||
|
||
2026-10-12의 HHT-ADR-014 승인 후 reduced shell operator, augmented sparse
|
||
Newton 및 실제 executor 연결을 구현하고 있다. §7의 미승인 설명과 hash 일치는
|
||
승인 전 조사 시점의 기록이다. 현재 working source가 그 과거 binary와 같다는
|
||
의미가 아니다. 현 정식화와 public 의미는
|
||
[reduced 정식화](formulation-reduced-coordinate.md),
|
||
[수치 검토](numerical-review-reduced-coordinate.md),
|
||
[I/O 계약](io-reduced-coordinate.md)을 따른다.
|
||
|
||
| 실행 | 실제 결과 | 근거와 범위 |
|
||
| --- | --- | --- |
|
||
| Operator clean MSVC x64 Debug build | exit0 | `.dryforge/hht-remediation-20261012/operator-clean-build.log`; 실제 executor 연결 전 operator/기존 회귀용 build |
|
||
| Operator·algebra·state·writer·local third focused | 35 PASS, CTest exit0 | `operator-clean-focused.stdout.log`, `operator-clean-focused.native.json`; 실제 reduced 시간수렴 증거는 아님 |
|
||
| Reduced executor 첫 build | exit0 | `reduced-executor-build.native.json`; 빌드 후 후속 source 수정이 진행됨 |
|
||
| Executor·operator·Newton start·algebra·state·writer focused | 39 PASS / 1 FAIL, CTest exit8 | `reduced-executor-focused.native.json`; large DIRECT에서 첫 outer correction 후 graph root가 100회 종료 |
|
||
| 원본 reference 보존 | 16개 hash 일치 | 과거 `closed-identities.json`의 originals와 현재 파일 대조; 새로운 수치 비교 PASS가 아님 |
|
||
|
||
처음 incremental 검사에서는 localized MSVC `/showIncludes` prefix와 Ninja
|
||
설정의 encoding 불일치로 헤더 dependency가 0개였다. Private assembly 구조를
|
||
변경한 뒤 stale object가 섞여 algebra 8개가 실패했다. 현재 직접 developer-shell
|
||
실행에서 prefix를 맞춘 clean build 후 operator object의 dependency 39개와
|
||
관련 35개 통과를 확인했다. 별도 hidden child process는 다른 encoding을 사용할
|
||
수 있으므로 이후 build에서도 실제 dependency를 확인한다. 이 환경 오류를
|
||
물리 정식화 실패와 혼동하지 않는다.
|
||
|
||
첫 reduced executor focused 실패는 별도 graph-root 문제이며 조사 중이다.
|
||
초기 trial은 full free scaled residual로 비교하고, N2는 augmented의 실제
|
||
full q/v/a variation과 public A/private Ar를 각각 검사하도록 수정했다.
|
||
초기 full state는 보존하며 별도 reconstructed-rate candidate를 기존
|
||
초기화·hidden·mass 기준으로 검증한다. 이러한 후속 수정과 actual C08/N7,
|
||
승인된 finer grid, 새 reference 비교 및 전체 회귀의 결과는 아직 위 통과로
|
||
승계하지 않는다. 현재 완료 checklist는 [PRD](PRD.md) 한 곳에서 관리한다.
|
||
|
||
### 2026-10-13 후속 실행
|
||
|
||
후속 root 종료 조건은 기존 N3 uncancelled scale와 N2 회전 correction을 사용한다.
|
||
Scale가 0인 경우 literal zero만 허용한다. 초기 원본 q/v/a/A는 보존하고 별도
|
||
재구성 candidate를 검증한다. 기존 실패와 다음 결과를 구분한다.
|
||
|
||
| 실행 | 실제 결과 | 범위 |
|
||
| --- | --- | --- |
|
||
| `reduced-basics-focused` Debug | 11 PASS / 1 FAIL, CTest exit8, 1416.04초 | Plate h=1/256, T=.25의 65-frame runtime PASS(1290.35초). Large DIRECT는 inner graph 오류 대신 outer100 endpoint nonconvergence로 종료. 후속 N5/N7 수정 전 binary |
|
||
| `reduced-current-graph-focused` Debug | 25 PASS, CTest exit0, 61.83초 | 실제 mixed-time load의 augmented N5 sweep, zero-scale root, chart/부분구속, 상태·writer/readback·실패 파일 보존. Actual N5 47.43초 |
|
||
| Python HHT comparator | 47 PASS, exit0 | `uv run --with pytest --with h5py --with numpy python -m pytest tests/test_compare_hht_dynamic.py -q` |
|
||
| `reduced-release-core` | 9 PASS / 1 FAIL, CTest exit8 | Bounded C08a64의 초기 원본 상태·65-frame 이력 PASS. 최초 mixed-load N5 fixture의 graph branch 이탈 FAIL. Nonzero drilling force를 principal branch 안의 크기로 수정한 뒤 위 Debug N5에서 재검증 |
|
||
| `reduced-release-c08a` | CTest exit8, 114.95초 | 실제 16/32/64/128/256 전체 grid 완료; 승인 accuracy/hidden 기준의 실패는 아래와 같음. Release는 configured Debug 전체 회귀를 대체하지 않음 |
|
||
|
||
C08a의 h=1/256 최대 normalized angular-acceleration error는
|
||
`1.003052994395584e-4`로 `1e-4`를 초과한다. h=1/64→1/128의 차수는
|
||
`1.777772580127911`로 `1.8` 미만이며, 다음 refinement는 약2차다. 다른
|
||
q/v/translation-a channel은 이 실행의 정확도 기준을 만족했고 모든 channel의
|
||
기존 N7 factor100 separation 검사는 통과했다. 이러한 부분 결과를 C08a PASS로
|
||
표시하지 않는다.
|
||
|
||
Hidden velocity/acceleration defect는 각각 약 `1e-16`/`1e-13`에서 변동하여
|
||
strict 감소 검사가 실패했다. Reduced reconstruction에서 해당 analytic 식은
|
||
0이므로 이 값의 감소를 truncation order로 해석할 수 없다. 그러나 승인된 검사는
|
||
유지하며 독립 검토 및 진단을 진행한다. Algebraic acceleration recovery는 최대
|
||
angular-a error를 실질적으로 바꾸지 않았고, 오차 대부분은 physical complement에
|
||
있다. Hidden root drift만으로 정확도 실패를 설명하지 않는다.
|
||
|
||
현재 large DIRECT의 outer 잔차 정체와 C08a 정확도 실패를 해결 중이며, C08b 최종
|
||
finer grid·최신 production 원본 reference·구성된 전체 Debug 회귀는 미완료다.
|
||
|
||
### 좌표 증분 산술 수정 후 현재 범위
|
||
|
||
Large DIRECT의 실제 pp는 `-11218.75`, 반대 부호의 algorithmic 항은
|
||
`11218.426469199354`, physical p는 `-.32353080064604001`이었다. 요청
|
||
`delta_p=-2.2160194823574155e-12`가 Ar에서 p를 다시 계산하면
|
||
`-3.637978807091713e-12`로 바뀌었다. 이전 이 절의 outer100 실패는 이러한
|
||
상쇄·Ar quantization 문제와 구분하여 보존한다.
|
||
|
||
현재 p는 실제 Newton `delta_p`를 직접 누적하고 Ar는 독립적으로 같은 수학
|
||
recurrence를 유지한다. 기존 absolute update, whole p/v increment와 요청한
|
||
predictor/correction의 Neumaier trace를 기존 `1e-12`로 검사한다. 추가했던
|
||
`p-predictor` 대 작은 단일 algorithmic 항의 ratio는 N3에 없는 gate로 확인하여
|
||
제거했다. 정상 binary64 덧셈에도 그 ratio가 실패하므로 tolerance 완화가 아니라
|
||
계약의 정정이다. 실제 적용된 rounded delta를 요청 delta 대신 쓰지 않는다.
|
||
|
||
| 현재 동결 source 실행 | 결과 | Evidence |
|
||
| --- | --- | --- |
|
||
| MSVC x64 Debug 전체 target build | exit0 | `reduced-closed-trace-debug-build.native.json` |
|
||
| Supplemental Release build | exit0 | `reduced-closed-trace-release-build.native.json` |
|
||
| Debug operator·N5·procedure·산술 focused | 15 PASS, CTest exit0, 103.98초 | `reduced-closed-debug-core.native.json`; large DIRECT20.33초 PASS, injected backend cause/context PASS |
|
||
| Release 같은 범위 + 실제 C08a64 이력 | 16 PASS, CTest exit0, 36.98초 | `reduced-closed-release-core.native.json`; 최신 p/Ar/CA 및 전체 resolved checks 포함 |
|
||
|
||
Raw N5 sweep와 C08 incremental trace는 `reduced-closed-debug-raw.log`와
|
||
`reduced-closed-release-raw.log`에 보존했고 source/binary identity는
|
||
`reduced-closed-source-identities.json`에 기록했다. 이후 source 변경본으로
|
||
이 PASS를 승계하지 않는다. 원본16개 hash는 변경0이다.
|
||
|
||
이전 binary의 원본 재해석은6 accepted increments 뒤, 새 resolved 계약 정정에
|
||
따라 의도적으로 종료했다. 이를 physics FAIL 또는 reference PASS로 계산하지
|
||
않는다. 최신 source의 byte-copy 원본 재해석과 C08b 전체 승인 grid의 Release
|
||
보조 실행을 시작했다. 원본 재해석은 증분39·t=3.9의 increment trace 판정으로
|
||
CLI exit5에 종료했다(48분19.51초). C08b는599.92초·CTest exit8로
|
||
종료했으며 기존5 grid 이후 첫 finer grid에서 hidden position 판정이 실패했다.
|
||
Raw `ψ=5.7596457839072371e-18`, scale `1.627592976412797e-08`로 normalized
|
||
값은 약3.54e-10이다. 직전 velocity increment 검사 실패도 있어 원인을 함께 조사한다.
|
||
Evidence는 `reduced-closed-c08b.log`에 보존한다. Full configured Debug/CTest·필수
|
||
reference comparison은 아직 완료되지 않았다. C08a의 [두 변경](c08a-refinement-proposal.md)은
|
||
2026-10-13 HHT-ADR-015로 승인됐으며 변경본의 공식 검증을 새로 수행한다.
|
||
|
||
승인 C08a7 grid의 첫 Release 실행은862.08초·CTest exit8이다. 최종 angular-a
|
||
maximum은7.311940783e-6, 마지막 두 차수는1.805002375/1.972997261이고 다른
|
||
5개 physical channel도 마지막 두 차수1.8 및 finest error1e-4 기준을 만족했다.
|
||
Hidden1/2 bound와 N7 검사는 실패를 보고하지 않았으나 q increment 및 requested
|
||
trace assertion은 각각110건 실패했다. 추가 velocity subtraction assertion1184건은
|
||
위 원 N3 계약 정정 전 binary의 이력이다. Physical 부분 통과를 전체 PASS로
|
||
확대하지 않는다. `approved-c08a-release.log`, `approved-c08a-analysis.json`에
|
||
결과를 보존한다. 이 실행은 stable complete-Jet 및 후속 candidate 누적 수정 전이다.
|
||
|
||
## 9. Finer C08b의 작은 각도 내력 불일치
|
||
|
||
같은 h=1/32768 fixture의 별도 진단에서 증분4·t=.0001220703125를 확정했다.
|
||
Graph는 iteration0에서 normalized residual 약6.36e-14지만 node0의 analytic
|
||
constraint `1.4792647557e-22`와 실제 내력 null projection `5.7596457839e-18`은
|
||
같은 scale `1.6275929764e-8`에서 불일치했다. 저장된 binary64 component를
|
||
독립 Fraction/Decimal로 재계산한 최종 dot rounding은 약1.99e-25이다.
|
||
Root polishing 또는 최종 dot 보상합산으로 이 차이를 해결할 수 없다.
|
||
|
||
회전 norm은 이전 증분까지1e-4 미만이고 실패 증분에서 약1.314e-4다.
|
||
`ExpSkew`의 Rodrigues coefficient는 이 구간에서 value/gradient/Hessian에
|
||
`(1-cos(theta))/theta²`의 직접 Jet 계산을 쓰고, directional/mixed derivative에는
|
||
이미 안정적인9항 급수를 썼다. 동일 Jet의 모든 층에 이 급수를 일관되게 적용한
|
||
동일54좌표 진단은 원 normalized1e-10 기준을 통과했다. 물리 null force는
|
||
node0에서 약5.76e-18에서1.65e-24로 줄었다. 물리식·geometry predicate·
|
||
원 scale·tolerance를 변경하거나 힘을 projection하지 않았다.
|
||
|
||
별도 scratch unit 실행은 새 null-work 회귀의 수정 전 native1, 수정 후4/4
|
||
native0(1.219초)을 기록했다. 기존1e-4와 급수 경계.5 양측의 third-gradient
|
||
sweep, force/constraint derivative 및 기존 tangent schedule을 포함한다.
|
||
Evidence는 `.dryforge/hht-reduced-c08a-finer-20261013/`의 `point-original.log`,
|
||
`point-stable.log`, `element-unit-original.log`, `element-unit-stable.log`와
|
||
[독립 수치 검토](numerical-review-reduced-coordinate.md)에 연결했다.
|
||
Configured build/CTest와 전체 C08 이력 통과는 별도로 확인해야 한다.
|
||
|
||
원 N3는 velocity의 absolute update와 q1-qn의 predictor/correction trace를 요구한다.
|
||
추가했던 vnew-vold subtraction gate는 독립 계약 검토에 따라 diagnostic으로
|
||
정정했다. 원 velocity 식·whole-history CA·physical rates·q subtraction gate는
|
||
유지한다. 과거 C08b h=1/1024에는 q trace 실패도 있어 이 문제는 별도로 조사한다.
|
||
|
||
## 10. 보상 좌표 누적 적용 후 재검증
|
||
|
||
실제 Newton candidate 좌표의 high/low를 TwoSum으로 누적하고 predictor의
|
||
하위 자릿값도 보존했다. 요청 증분 trace는 별도 합산으로 유지하며 기존
|
||
`q_new-q_old`의 uncancelled scale 및 `1e-12` 기준은 변경하지 않았다.
|
||
산술·관성·요소 관련 Release 13개 검사는 통과했다. 이후 추가된 검사와
|
||
production 초기 평형 진단 변경을 이 binary의 통과로 승계하지 않는다.
|
||
|
||
승인된 C08a 전체7 grid의 재실행은 888.432초, CTest native8로 종료했다
|
||
(`compensated-c08a-release.log`). Finest angular-a maximum은
|
||
`7.3119407370681913e-6`이지만 q subtraction 및 requested trace가 실패했다.
|
||
첫 실패는 h=1/512, increment278, full DOF6이다. 저장된 좌표 증분은
|
||
`-1.0961338644671637e-6`, 요구 증분은 `-1.096133864469764e-6`,
|
||
scale은 `1.0961338644697645e-6`, ratio는 `2.3723299063737948e-12`다.
|
||
Candidate low는 `-2.6003877354211524e-18`이다. 가장 가까운 binary64 좌표의
|
||
표현 한계와 구현 오류를 독립적으로 구별하는 조사를 진행하며, 현재 결과는 FAIL이다.
|
||
|
||
Actual N5의 올바른 augmented Jacobian과 third-directional-gradient를 제거한
|
||
mutation 검사는 Debug에서 통과했다(86.70초). Mutant의 row3 normalized
|
||
error 약 `1.00336e-3`은 원 `1e-6` 기준을 넘었다. 나머지 필수 mutation과
|
||
warped/shared-element coverage는 이 검사로 대체하지 않는다.
|
||
전체 Debug focused 11개 실행은 10 PASS, proper-Q covariance 1 FAIL이다
|
||
(`compensated-debug-core.log`). 회전된 fixture는 초기 complete free equation에서
|
||
실패했으며, 기존 평형식과 허용값을 유지한 상세 진단을 추가해 재검증한다.
|
||
|
||
상세 진단은 unforced global-Z row의 residual `-2.1366160554637391e-34`,
|
||
row scale `1.0217671502953158e-32`를 확인했다. 내부 초기화 함수의 행별
|
||
검사는 승인 N2의 채널 최대값 기준과 다르고, assembled force/mass 기반 scale도
|
||
요소·하중별 uncancelled scale를 보존하지 않았다. 해당 사전 검사를 제거했다.
|
||
반환 가속도의 finite/구속 exact-zero, mass/range solve 및 hidden consistency는
|
||
유지한다. 호출자는 실제 a0로 다시 조립한 original/reconstructed frame0의
|
||
기존 N2 검사를 통과한 후에만 commit한다. C08 controller에도 fresh a0의
|
||
명시적 채널 검사를 추가했다. 독립 정적 검토는 이 소유권 정정을 확인했다.
|
||
Debug 전체 target 재빌드는 native0이며 관련 algebra 검사8개는 통과했다.
|
||
Actual proper-Q 이력의 재실행은 140.327초에 reconstructed frame-zero의
|
||
physical residual 검사로 실패했다. Focused 합계는8 PASS·1 FAIL, native8이다
|
||
(`initializer-caller-n2-debug.log`). 잘못된 사전 gate를 제거한 것으로 좌표계
|
||
회전 문제가 해결됐다고 보고하지 않는다. 재구성 초기 가속도와 실제 원 가속도의
|
||
채널·힘·scale 진단을 추가하여 원인을 조사한다.
|
||
|
||
C08b 전체 승인 grid와 byte-copy 원본 reference 재해석은 별도 실행 중이다.
|
||
최종 HDF5·reference 비교·전체 configured Debug gate는 아직 완료되지 않았다.
|
||
|
||
추가 C10 변경본의 전체 Debug target build는 native0이다
|
||
(`c10-initial-reconstruction-debug-build.native.json`). 실제 executor가 사용하는
|
||
100 correction policy의99/100/101 경계 검사는 통과했다. Accepted increment1
|
||
뒤 backend 실패를 주입하고 candidate 미반환·partial log·같은 Domain의 fresh
|
||
retry 전체 이력/로그를 대조하는 검사는51.30초에 통과했다. Actual proper-Q
|
||
재구성 진단 검사는 별도로 실행 중이다. 실제 물리 문제의100회
|
||
수렴, private local history의 직접 snapshot, HDF5 보존 coverage를 이 검사로
|
||
주장하지 않는다. N3 좌표 표현 변경 제안은 승인 대기다.
|
||
|
||
### HHT-ADR-016 승인 이후 실행 경계
|
||
|
||
2026-10-13 사용자가 pair 증분 검사와 저장 high의 RN-even 검사 분리를 승인했다.
|
||
위 승인 대기 설명은 이전 실행 이력이며 변경본 구현·검증을 새로 수행한다.
|
||
이전 production reference는 증분40·t=4의 requested trace에서 CLI exit5로
|
||
종료했다(`compensated-reference.native.json`, 약72분38초). 최종 HDF5/reference
|
||
비교 PASS가 아니다. 이전 기준의 C08b 장시간 실행은 새 승인 기준과 관성 수정으로
|
||
대체하기 위해 중단했다(`compensated-c08b-release.interruption.json`). CTest native8,
|
||
16750.04초이며 마지막 출력은 h=1/65536·증분16384의 원 high-only trace 실패다.
|
||
이 중단 실행을 전체 grid 자연 종료 또는 변경본 검증 통과로 보고하지 않는다.
|
||
|
||
추가 진단 실행은 C10 두 검사 PASS·C09 FAIL, native8로 종료했다
|
||
(`c10-initial-reconstruction-debug.log`). C09는137.126초에 실패했으며,
|
||
original frame0의 phi residual ratio도 `0.065354177871985789`로 이미
|
||
N2를 만족하지 않았다. 재구성 phi ratio는 `0.89790979051373154`,
|
||
최대 residual은 `2.1257138844293921e-17`, scale은 `2.3674025017737948e-17`다.
|
||
해당 full4 성분의 가속도는 original/reconstructed 모두
|
||
`4.9146402260681746e-13`이며 delta는0이다. Translation channel은 통과했다.
|
||
초기 range solve의 mass matvec와 실제 관성 조립 및 다른 가속도 성분을
|
||
대조해야 하며, 단순히 재구성 한 성분의 오차로 원인을 확정하지 않는다.
|
||
|
||
후속 anchored covariant 관성 계산의 Debug 검사에서 original frame0의 phi ratio는
|
||
0으로 개선됐다. Reconstructed frame0는 ratio `0.968200478753255`, residual
|
||
`2.1660326527186968e-17`, scale `2.2371737054993837e-17`로 여전히 실패했다.
|
||
따라서 관성 geometry 수정만으로 C09를 폐쇄하지 않는다. 기존 flat large-offset
|
||
zero-moment 검사는 통과했고, 잘못된 비영 C1 fixture 두 실행의 실패도 보존한다.
|
||
현재 genuine director-gradient fixture의 독립 적분 대조는 별도 실행한다.
|
||
|
||
ADR-016 exact threshold 변경본 전체 Debug target build는 native0이다
|
||
(`adr016-exact-threshold-warped-debug-build.native.json`). N3 산술 검사6개는
|
||
통과했다. 독립 MSVC/Fraction 대조는 frozen58개 및 threshold 경계126개에서
|
||
모두 판정이 일치했다. Unsupported product-tail24개는 fail-closed로 처리했다.
|
||
이 결과는 전체 C08 grid 또는 production reference의 통과를 뜻하지 않는다.
|
||
|
||
같은 변경본의 focused Debug 실행은 native0,9/9 PASS,149.36초로 종료했다
|
||
(`adr016-exact-threshold-warped-debug.native.json`). Warped 공유 절점의 실제 N5
|
||
fixed-sweep/mutation 검사는147.11초에 통과했다. Genuine Y-axis director-gradient의
|
||
비영 C1 검사와 독립5³ nodal moment·energy·power 대조도 통과했다. 이전 flat 및
|
||
twist fixture의 비영 C1 주장 실패를 이 실행에서 삭제하거나 재해석하지 않는다.
|
||
|
||
Actual initial-only 진단과8개 row의 독립 Fraction 대조에서 초기 회전 가속도는
|
||
질량 영공간 방향의 가짜 값으로 확인됐다. Direct primitive의 translation-gradient
|
||
합과 uniform-translation contraction은 정확히0이지만, physical tangent로부터
|
||
구한 projected constraint-gradient 계수의 잡음이 이를 상쇄하는 영공간 가속도를
|
||
생성했다. 재구성은 direct primitive를 사용하므로 그 가속도의 일부를 변경하고
|
||
실제 관성 모멘트 잔차를 만든다. 초기화와 재구성의 derivative authority를 동일한
|
||
direct primitive로 계산하는 동등 정식화의 수정 및 재검증이 진행 중이다.
|
||
초기 가속도의 projection이나 판정 기준 완화로 이 문제를 숨기지 않는다.
|
||
|
||
ADR-016 N3 및 anchored inertia의 frozen Release 실행에서 공식 C08a7개 grid는
|
||
native0,485.77초에 통과했다(`adr016-c08a-release.native.json`, raw CTest 보존).
|
||
최종 h=1/1024의6개 최대 normalized q/v/a 오차는
|
||
`3.47803e-8,5.94530e-8,4.16492e-8,8.35754e-8,2.50804e-7,7.31194e-6`이다.
|
||
원 승인 시간수렴 차수·hidden1/2·최종3-grid N7 factor100 검사도 통과했다.
|
||
보존 raw aggregate의 별도 재계산에서 최종 두 refinement의 최소 차수는
|
||
`1.8050023624308058`, 최종3-grid의 최소 noise separation은
|
||
`157.63456436970105`로 각각 원 기준1.8 및100을 만족했다.
|
||
실행 binary/source identity는 `adr016-c08a-release-source-identity.json`에 기록했다.
|
||
이 binary는 canonical initial-gradient 정정 이전의 snapshot이므로 후속 변경본의
|
||
전체 gate로 승계하지 않는다. Debug C08 및 C08b·reference·전체 회귀는 미완료다.
|
||
|
||
Canonical initial-gradient 변경본의 Debug target build는 native0이다. Algebra/C09
|
||
focused는562.44초·native8,7 PASS·2 FAIL로 종료했다
|
||
(`adr016-canonical-initial-debug.native.json`). 하나는 수동 regularity fixture의
|
||
gradient mutation 누락이며 수정 후 해당 경계 및 missing-gradient negative가 통과했다.
|
||
C09는 초기 재구성 gate를 통과했지만 increment1·outer100에서 physical moment N2
|
||
비수렴으로 실패했다. 초기 authority 정정을 전체 C09 통과로 보고하지 않는다.
|
||
|
||
Actual 첫 후보의 요소 replay에서 물리힘이 회전 잔차를 지배하며 drilling 기여는
|
||
약1e-37이었다. 절점 병진1–2 ULP 차이는 실제 작은 변형을 만든다. 별도의 rotated
|
||
element tiny tilt `phi=1e-17*tangent_a`에서 기존 full director 차감은 물리힘0을
|
||
반환하지만 같은 요소의 zero-state physical tangent 선형화는 비영 힘을 예측했다
|
||
(상대 차이1). 이는 value/gradient 일관성 검사이며 별도 전체 stiffness oracle가 아니다.
|
||
Rodrigues의 direct director increment를 전체 Jet에 사용한 private replay는
|
||
상대 차이`1.605880834081617e-16`으로 개선됐다. Quadratic energy oracle
|
||
`1.666666666666667e-33`는 uniform tilt의 독립 해석식
|
||
`U=0.5*(5/6)*[E/(2*(1+nu))]*t*area*theta^2`에서도 얻어진다.
|
||
Stable Jet energy도 일치하지만 기존 scalar recovery
|
||
energy는0이어서 force/tangent만 수정할 수 없다. Recovery에도 같은 covariant
|
||
increment와 Green–Lagrange 식을 적용하는 동등 산술 수정·검증이 진행 중이다.
|
||
이 bounded replay를 actual C09 또는 production reference의 통과로 확대하지 않는다.
|
||
|
||
Direct director increment와 recovery 변경본의 configured Debug focused 실행은
|
||
native8,16 PASS·1 FAIL,326.12초로 종료했다
|
||
(`adr016-direct-director-debug.native.json`). 비선형 요소의 residual·tangent·
|
||
objectivity·patch 검사16개는 통과했다. Actual C09는 초기 gate를 통과했지만
|
||
increment1·outer100에서 실패했다. 마지막 진단의 `max_NtE=1.69482e-32`,
|
||
`max_NtInertia=0`이며 작은 물리 moment 잔차가 남아 있다. 이 절댓값만으로
|
||
원래 uncancelled scale에 대한 N2 통과를 주장하지 않는다. 마지막 후보의
|
||
q/v/a와 관성 contraction을 조사 중이며 tolerance나 scale floor를 추가하지 않는다.
|
||
|
||
앞선 canonical-gradient 변경본에서 strong external-gradient N5, missing-gradient
|
||
negative, regularity 경계 검사는 native0,3/3 PASS,140.49초였다
|
||
(`adr016-strong-external-boundary-debug.native.json`). 실제 N5는139.35초에 통과했다.
|
||
이 evidence는 direct director increment 후의 N5 재검증을 대신하지 않는다.
|
||
|
||
현재 direct-increment epoch의 actual outer20 후보를 동결하여 q/v/a·private
|
||
predictor/trace와48개 full row를 별도 저장했다. 당시 phi ratio는
|
||
`0.9998109402`이며 아직 수렴하지 않았다. 저장된 질량계수와 같은 가속도를
|
||
Fraction으로 수축한 별도 replay에서 full39의 `M*a+c`는
|
||
`2.070274834838396e-19`이고 병진 coupling은 exact0이지만 native 관성힘은0이었다.
|
||
Full34와 full27에서도 각각 `1.883916436593294e-19`,
|
||
`-1.585777596546307e-19`가0으로 소실됐다. 자료는
|
||
`.dryforge/hht-direct-delta-c09-20261013/outer20-endpoints.json` 및
|
||
`inertia-exact-replay.json`에 보존했다.
|
||
|
||
Mass-point에서 큰 병진 가속도와 작은 회전 가속도를 먼저 더하는 산술은
|
||
작은 회전 기여를 잃을 수 있다. 동등한 `I=M*a+c`의 안정적인 계산과 독립
|
||
관성·접선·power 검증을 진행한다. N2 분모는 이미 원래
|
||
`sum_element,j |M_eij*a_ej|` 계약을 사용하므로 이를 변경하지 않는다.
|
||
이 bounded 불일치는 수정 근거이며 outer100 실패 전체의 원인 확정이나 통과
|
||
evidence가 아니다.
|
||
|
||
관성힘은 적분이 끝난 같은 원 질량행렬과 독립 convective force로
|
||
`I=M*a+c`를 deterministic compensated reduction하여 계산하도록 수정했다.
|
||
Mass·관성 접선·kinetic energy·P/L 및 rates의 수식과 원 N2 scale는 유지했다.
|
||
독립 검토에서 actual24개 회전 row의 소실을 재확인했고, 별도의 zero-state
|
||
해석식 `j*(|d|² I-d*d^T)*a_phi`도 stable contraction과 일치했다.
|
||
새 tiny-angular/large-translation 해석식 검사는 수정 전 native1/136ms로
|
||
실패했고 수정 후 기존 관성 검사까지 private12/12 PASS/11.824초였다.
|
||
Configured Debug 전체 target build는 native0이며 actual N5·C09 및 관성
|
||
focused 실행은 진행 중이다(`adr016-stable-inertia-debug-source-identity.json`).
|
||
Mixed point acceleration을 사용하는 Dq tangent·Pdot/Ldot의 다른 산술 경계까지
|
||
해결됐다는 의미는 아니며 전체 trajectory·temporal·reference 판정은 남아 있다.
|
||
|
||
위 configured Debug focused 실행은216.39초·native8,13 PASS·1 FAIL로 종료했다.
|
||
Actual N5는137.22초에 통과했고 관성12개도 통과했다. C09는62.83초에 초기
|
||
재구성 gate에서 실패했다. Original phi ratio는`2.4318705488789172e-16`이지만
|
||
reconstructed ratio는`0.4509010842022384`였다. Numerator는
|
||
`7.6381179402664958e-21`, 원 scale는`1.693967525888814e-20`이다.
|
||
Stable inertia가 보존한 작은 힘 때문에 이전 point 수축에서 드러나지 않았던
|
||
초기 dependent acceleration 차이가 확인됐다. 원 초기 state를 projection하거나
|
||
잔차 분모를 바꾸지 않고 initializer와 재구성 contraction을 대조한다.
|
||
원인 조사와 후속 수정은 이 실행의 FAIL 판정을 대체하지 않는다.
|
||
|
||
독립8-row Fraction 감사에서 rows0–3의 selected-P gradient contraction은
|
||
곱의 합과 product rounding 모두 exact0인데 plain reduction만
|
||
`1.734723475976807e-18`을 만들었다. 초기화와 같은 compensated reduction은0이다.
|
||
Rows4–7은 compensated partition RHS가 기존 `G*z`와 일치했다. Graph 경로만
|
||
exact-product 수축으로 교체하면 초기화와 coefficient/product authority가 다시
|
||
달라질 수 있으므로 같은 compensated partition 산술을 우선 적용한다.
|
||
이 감사는 원 초기 state의 변경이나 whole C09 통과를 의미하지 않는다.
|
||
|
||
Rate partition은 같은 coefficient/product authority의 compensated 합산으로
|
||
수정했고 C08 CA replay도 해당 연산 순서를 추적한다. 독립13-case/183-prefix
|
||
검산에서 exact 누적 오차가 추적 radius 안에 있음을 확인했다. Selected partition
|
||
회귀는 `(+1e16,+1,-1e16)`에서 plain 합0과 compensated rates1을 구별한다.
|
||
첫 Release build는 편집 중인 새 fixture의 Vector 생성 문법으로 native1이었고,
|
||
수정 후 새 prefix의 build는 native0이다. 두 실행 기록은 별도로 보존했다.
|
||
이 source의 Debug actual C09와 Release C08a7-grid 실행 판정은 아직 대기 중이다.
|
||
|
||
별도 independent zero-state 해석식은 큰 병진과 작은 회전 성분에서 Dq inertia,
|
||
L 및 Ldot의 추가 소실을 확인했다. `DqM`와 momentum coefficient를 적분 후
|
||
수축하는 동등 산술을 production에 적용했다. Original full position arm·
|
||
rho*N_i*dV0·독립 convective 항·mass·kinetic energy·rate scale와 predicates를
|
||
보존했다. Flat/proper-Q에서 epsilon=`1e-7..1e-20`의 whole Dq action 및 L/Ldot
|
||
28개 analytic 사례가 원 계산 RED에서 수정안 GREEN으로 바뀌었다. Exact
|
||
production source의 private 관성13개는 native0,32.132초에 통과했고 독립 정적
|
||
검토도 적합이다. 이 epoch의 공용 N5/C09·C08·reference 검증은 남아 있다.
|
||
Point-arm 양자화와 큰 orbital/작은 intrinsic 항의 최종 저장 반올림,
|
||
일반 tiny convective 사례는 별도 coverage 한계로 유지한다.
|
||
|
||
## 2026-10-13 현재 검증과 C09 정책 제안
|
||
|
||
Coefficient-first inertia와 compensated partition을 적용한 configured Debug
|
||
focused 실행은 native8·779.32초, 15 PASS·C09 1 FAIL이다. 관성13개,
|
||
actual N5와 selected-partition 회귀는 통과했다. C09의 초기 재구성은
|
||
통과하지만 첫 증분 full Newton100 종료 기준은 실패했다.
|
||
|
||
C08a manufactured helper는 assembly에 이미 포함된 external Hessian을
|
||
중복 누적하던 value/scale 항을 제거했다. 최신 Release 공식7-grid
|
||
C08a는 native0·470.47초에 통과했다. Raw와 native identity는
|
||
`.dryforge/hht-remediation-20261012/adr016-coefficient-inertia-c08a-release*`에
|
||
보존했다. 잘못된 helper 이름을 포함한 regex는 실제 공식 C08a 한 개만
|
||
실행했으므로 helper 통과로 계산하지 않는다. 별도 Release helper는
|
||
통과했고, 후속 configured Debug build native0 및 helper/partition 두
|
||
회귀도 native0·0.99초에 통과했다(`channel-proposal-helper-debug*`).
|
||
Release C08a 통과는 configured Debug 전체 또는 기능 완료를 뜻하지 않는다.
|
||
|
||
Read-only C09 최종 상태 진단은 병진 q/v/a와 p high/low/Ar를 유지하고
|
||
회전 및 모든 auxiliary block을 두 번 보정하여 원 full endpoint 기준을
|
||
만족했다. Commit 전 의도 종료 native1·5.703초이며 production C09 PASS가
|
||
아니다. [산술 진단](c09-newton-rounding-diagnostic.md),
|
||
[정책 제안](c09-channel-newton-proposal.md)과
|
||
[독립 검토 및 N7 명세](numerical-review-channel-newton.md)를 연결한다.
|
||
부분 행렬 N2-L 검사 영역 변경은 이후 HHT-ADR-017로 승인돼 구현 중이다.
|
||
자연 C09 trajectory, 변경 후 C08/N7, configured 전체 Debug 및 필수
|
||
reference 검증이 남아 있다. 기존 실패 기록과 원본 reference를 보존한다.
|
||
|
||
ADR-017 첫 configured Debug build는 native0이다. 새 channel-policy 세 검사,
|
||
external Hessian primitive/실제 manufactured helper 및 omitted-U N7 세 검사,
|
||
기존100/101 경계와 실패 후 retry 두 검사의 합계8개는 native0·23.79초에
|
||
통과했다. Prefix는 `adr017-channel-newton-debug-build`와
|
||
`adr017-channel-newton-policy-debug`다. Controller의 초기 trigger와 frozen-rate
|
||
copy parity는 독립 검토 후 추가 정정 중이므로 이 epoch를 공식 C08 통과로
|
||
계산하지 않는다. [구현 기록](implementation-channel-newton.md)의 private
|
||
proper-Q 자연 두 증분 PASS도 configured C09 전체를 대신하지 않는다.
|
||
|
||
Configured Debug actual C09의 여섯 실행은 모두 HasValue로 자연 종료했지만,
|
||
gtest 전체는 global-frame covariance 비교에서 native8·113.03초로 실패했다
|
||
(`adr017-natural-c09-debug` 및 raw/source identity). Solver nonconvergence와
|
||
다른 실패다. Vector/triad/director의 원1e-10 비교 기준을 유지하며 finite-phi
|
||
및 reduced chart 전환의 영향은 별도 read-only 진단으로 조사한다.
|
||
Serial/TBB/repeated-history 비교 실패나 endpoint 실패는 해당 raw에서 발견되지
|
||
않았지만 이 bounded 구분을 C09 전체 PASS로 보고하지 않는다.
|
||
최종 controller parity 정정 후 Debug/Release build는 각각 native0이며
|
||
공식 C08a7-grid 및 helper 검사는 새 identity에서 진행 중이다.
|
||
|
||
최종 parity 변경본의 Release C08a7-grid와 helper 두 검사는 native0·760.84초에
|
||
통과했다(`adr017-final-parity-c08a-release`). Raw·native·source identity와
|
||
별도 aggregate를 보존했다. Finest 전체 시점 최대 normalized error의 최댓값은
|
||
`7.31194068e-6`, 마지막 두 refinement의 최소 order는`1.80500237`, 최종 세
|
||
grid의 최소 N7 noise separation은`157.542906`이다. 원 bounds·factor100을
|
||
만족하지만 Release 범위이며 configured 전체 Debug 완료가 아니다.
|
||
Configured Debug의 실제 manufactured 초기 이력64-step 검사 및 helper 두
|
||
검사도 native0·786.88초에 통과했다(`adr017-final-parity-controller-debug`).
|
||
이는 Debug C08a 전체7-grid 검사나 C08b8-grid 실행을 대신하지 않는다.
|
||
|
||
[유한회전 진단](channel-newton-covariance-diagnostic.md)은 순수 병진에서
|
||
원 covariance 기준을 만족했다. 유한회전의2/4/8-step에서는 angular a 차이가
|
||
`2.594e-6→6.560e-7→1.691e-7`로 감소했고 같은 q/v/a를 회전해 재조립한
|
||
force/inertia는 약1e-17에서 일치했다. Independent Fraction 감사는 selected
|
||
position의 회전 전 결함 약2.34e-19와 회전 후4.82e-7를 분리하여 실제 비선형
|
||
selector recurrence의 차이를 재현했다. [고정 null 보완공간 제안](fixed-null-basis-proposal.md)은
|
||
독립 검토된 미승인 후속 변경이며 기존 C09 FAIL을 통과로 바꾸지 않는다.
|
||
|
||
추가 configured Debug의 clamped/load reaction, unloaded/free/partial BC,
|
||
large DIRECT 및 initial backend failure-context 네 검사는 native0·21.24초에
|
||
통과했다(`adr017-boundary-procedure-debug`). 실제 `RecordNoise` 집계의
|
||
omitted-U zM을 검사하는 `RestrictedRecordNoiseIncludesFullModelOmittedUDefect`를
|
||
추가했다. J의 step/defect와 accepted endpoint가 같은 두 입력에서 full omitted-U
|
||
defect만 변경하여 aggregate noise의 증가를 확인하므로 zM 누락을 검출한다.
|
||
최종 Debug/Release build native0 및 해당 검사 native0·1.23초/0.62초다
|
||
(`adr017-n7-final-*`). Production/controller 동작은 이전 공식 C08a와 같고
|
||
추가 regression fixture만 바뀌었다.
|
||
|
||
첫 aggregator build 이후 fixture 단순화가 공용 Debug compile과 겹쳤다.
|
||
그 실행은 intermediate snapshot으로 보존하고 최종 identity 근거로 사용하지
|
||
않았다. Final source freeze 후 mtime를 갱신하여 두 tree를 실제 재compile했다.
|
||
`adr017-n7-final-source-freeze.json`에 SHA와 이유를 기록했다.
|
||
이 bounded closure에도 C09 전체는 covariance FAIL이며 C08b8-grid·최종
|
||
chart 변경본의 공식 Debug 시간검사·전체 configured Debug/CTest 및 필수
|
||
production 원본 비교가 남아 있다.
|