Files
FESADev/docs/hht-implicit-dynamics/implementation-c08-reduced.md
T
KOKO\Mimi eaa5cbeb21 feat: adopt lumped mass and reduced-coordinate shell HHT
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.
2026-10-13 16:57:19 +09:00

204 lines
30 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Reduced-coordinate C08 구현 증거
`tests/unit/analysis/hht_shell_physics_test.cpp`의 C08 controller는 production private reduced 연산자를 사용한다. 기존 full-coordinate controller 결과를 현 경로의 증거로 승계하지 않는다. 공식 요구·grid·tolerance·reference는 이 보고서에서 변경하지 않는다.
- Endpoint마다 실제 graph root와 chain-rule q/v/a를 재구성하고 actual full residual로 시작 후보를 선택한다. Augmented Newton의 네 auxiliary block을 모두 full q/v/a 및 public A 진단으로 mapping한다.
- N7 linear defect는 마지막 실제 augmented matrix, nonlinear defect는 accepted endpoint의 fresh augmented matrix로 평가한다. Original hidden endpoint defect 및 N2 backward check를 포함하며 estimator는 accepted state를 수정하지 않는다.
- CA는 private selector p/Ar history를 전체 시간 이력에 걸쳐 유지한다. Frozen binary64 operator와 일차 graph/rate sensitivity의 arithmetic **indicator**이며 전체 AD/FEM/nonlinear-history의 엄밀한 forward-error certificate로 주장하지 않는다. Nonfinite 또는 noise separation 부족은 INCONCLUSIVE이고 factor100 기준을 보존한다.
- 초기 q/v/a/A를 보존하고 별도 reconstructed frame0에 original full residual/N3/N4/equilibrium을 적용한다. 원래 64..1024 grid와 승인된 C08b finer grid를 유지한다.
## ADR-018 fixed-null basis 대응 (구현 중)
2026-10-13 사용자 승인 후 C08 controller도 `FixedChart::p_columns/z_columns`의
immutable sparse support를 authority로 전환한다. `p_dofs/z_dofs`는 canonical label이며
single full-DOF injection, `%6` channel 판정, index-only radius의 근거가 아니다.
- Initial private `p/vp/ap/z`는 sparse transpose projection으로 만들고, 이후 accepted
private history recurrence는 FB-08을 직접 적용한다. 매 increment full state를 재투영해
history를 만들지 않는다.
- Actual augmented solve는 FB-06 scaled `tangent/rhs`와 `row_scale/unknown_scale`를
사용한다. C08 N7 accepted-endpoint hidden RHS는 raw defect에 matching row scale을
곱하고, mapped defect vector는 scale undo 뒤 FB-07 sparse lift를 사용한다.
- Restricted U 판정과 bitwise copy는 column metadata의 translation/angular channel로
결정한다. U의 high/low/Ar/vp/ap/trace/radius에는 zero update를 적용하지 않는다.
- N3은 기존 private `k*delta_ap` 대 `delta_Ar` 검사를 유지한다. 추가 basis-lift
consistency는 `Lp^T delta_Afull`의 source-order product/sum과 uncancelled denominator를
별도 검사하며, 두 검사를 동일한 identity로 취급하지 않는다.
CA의 basis coefficient construction radius `B_L`는 `FixedBasisColumn::support_radii`에
support와 같은 canonical 순서로 보존한다. Plane 열은 stored coefficient가 0인
성분도 support에서 제거하지 않으며, component-chart identity 열만 coefficient radius가
exact 0이다. Controller는 initial `Lp^T/Lz^T` projection, private history inheritance,
sparse lift에서 실제 product/sum 순서로
`|L|B_p+|p|B_L+B_LB_p+rho`를 적용한다. 따라서 0 stored coefficient와 nonzero
private coordinate의 free full-row radius도 남는다.
Basis 생성 replay는 stored raw initial null을 exact input으로 두고 `m=max|x|`,
`s=sum (x/m)^2`, `r=sqrt(s)`,
`B_r=B_s/lower(r-rho(r))+rho(r)`, `B_norm=|m|B_r+rho`의 명시 경로를 사용한다.
이는 `s-B_s>0`과 양의 denominator를 요구한다. Stored raw null exact→same-branch
ideal constructed basis가 이 certificate의 범위이며, analytic-null/AD 입력 오차와
구분한다.
현재 graph arithmetic INDICATOR는 stored C/H/time operator와 assembled G/P를
frozen binary64 입력으로 둔다. `C·Lz`, `C·Lp` coefficient BL 및 inverse-action
certificate는 FB-CA 후속 범위로 남아 있다. 따라서 현재 runtime evidence를
whole-basis graph CA closure로 주장하지 않는다.
### 현재 실행 증거
ADR-018 첫 configured Debug focused run은 동일 source epoch에서 native0,
26/26 PASS, 176.41 s였다. Fixed-basis 5개 helper/lifecycle 사례와
actual non-component N5가 포함되며, 후자는 native0/152.47 s로 통과했다.
이는 sparse chart, FB-06 scaling/undo 및 실제 off-graph tangent sweep의
현재 실행 증거다. Graph `BG/BP` 및 FB-CA04/05 inverse-action certificate,
전체 C09/C08 grid 및 reference closure는 이 실행으로 승계하지 않으며 PENDING이다.
### Graph basis/solve certificate 구현 중
Controller의 graph arithmetic path는 stored `C/H/time`을 fixed binary64 input으로
두고, `gradient × basis support`의 source-order `RateSum` replay로 `G=C Lz`,
`P=C Lp`와 entrywise `BG/BP`를 만든다. `support_radii`가 0 stored plane
coefficient에도 남으므로 `BG/BP`에서 제거하지 않는다. 각 unit graph solve의 actual
column `R`에 대해 `Hbar>=|I-GR|`, `thetaH<1`, `Q>=|G^-1|`를 구성하고, 실제 RHS
solve는 raw center residual, `Bb`, `BG|x|`, `A=Q BG`, `thetaG<1`을 포함한 rowwise
`Bx`를 만든다. 양의 lower denominator 또는 theta 조건을 잃으면 radius를0으로
두지 않고 INCOMPLETE로 종료한다. `NaN`/음수 radius와 nonfinite matrix·RHS·center는
fail-closed하고, inherited `+Inf` radius는 graph 결과 전체에 `+Inf`를 전파한다.
`0×(+Inf)`는 exact-zero support로만 0을 유지한다. 이 helper와 1×1/4×4 perturbation,
actual-center, invalid-radius behavior tests는 source에 추가되었지만 configured runtime은
아직 PENDING이다.
Projection radius는 production `ColumnDot`의 support-order Neumaier 합을, lift radius는
production `Lift`의 모든 p support 뒤 모든 z support 순서를 per-full `RateSumRadius`로
replay한다. Combined replay center가 actual `Lift`와 같은지 검사하고, target frame과
center의 차이는 `|fl(target-center)|+rho`를 별도 radius로 더한다. 이 변경의 configured
grid/C09/reference runtime은 아직 PENDING이다.
최신 source epoch `adr018-neumaier-final-source-identity.json`에서 configured Debug
full build는 native0이었다. 같은 Debug binary의 controller boundary 4개는 native0/4PASS,
2.15 s였다. 이는 `BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift` 및
graph certificate helper의 bounded evidence이며, C08 grid·C09·reference PASS로 승계하지
않는다. Core focused run은 별도로 진행 중이다.
## C08a7 basis-lift algorithmic-A gate 수정
최신 Release C08a7은 모든 7 grid를 완료했지만 native8/819.31 s로 실패했다. Raw log는
`adr018-neumaier-c08a-release.raw.log`에 보존했다. 실패는 새 projected basis-lift gate의
`deltaAfull=(1+alpha) deltaa` 변환 누락에서 발생했고, 기존 private `k deltaap=deltaAr`
gate는 이미 같은 factor를 사용했다. Controller는 이제 source-order `Lp^T` 합에 filtered
algorithmic full correction을 사용한다. `BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor`
는 non-component (.6,.8) basis에서 factor 생략이 원 1e-12 gate를 넘는 것을 검출한다.
Filter 수정 후 공식 Release C08a7과 coefficient regression 2개는 native0/703.90 s로
통과했다(C08a 703.39 s). 마지막 두 temporal order의 최소값은 1.805002366이고 N7
separation은 157.615676이다. Artifacts는
`adr018-filter-c08a-release.raw.log`, `adr018-filter-c08a-release.native.json`,
`adr018-filter-c08a-metrics.json`이다. Source 6개와 Release unit 7개의 pre/post SHA가
일치해 같은 epoch의 결과임을 확인했다. 이는 filter 누락 전 native8/819.31 s 및 약
83,520개의 basis-lift gate 실패를 지우거나 재해석하지 않는다. C08b8, reference 비교,
전체 Debug/CTest는 아직 미완료다.
## LargeDIRECT 재구성 상쇄에 대한 수정
2026-10-13 기준 LargeDIRECT가 outer100에서 original full residual을 통과하지 못했다. Main의 endpoint 진단에서 graph ψ0≈4.49549e−14, max NᵀE≈2.56928e−13으로 null identity defect와 큰 physical residual은 구분된다.
변경 전 controller는 매iteration `p = pp + beta*h*h*Ar`를 다시 계산했다. 원fixture 초기 aZ=-800000, h=.25, beta=.275625에서는 ppZ=-11218.75 및 beta*h²=.0172265625이다. `Ar=-pp/(beta*h²)` 상태에 δp=1e−12를 적용하면 binary64 Ar update와 좌표 재구성이 보정을 흡수한다. 이 예는 actual endpoint 원인의 확정 증거가 아니라 재구성 정밀도 문제의 독립 재현이다.
변경 후 C08은 선택된 predictor/old p를 유지하고 actual δp를 직접 누적한다. Ar 증분과 vp/ap recurrence, original N2/update consistency 검사는 유지한다. Accepted pnew−pold를 실제 동차 우변 항의 절댓값 합으로 나누는 resolved increment 검사(1e−12)를 유지한다. Absolute vp update는 유지하며, 원N3에 없는 별도 vpnew−vpold 상대 검사는 독립 검토에 따라 diagnostic only로 정정했다. 추가로 선택된 predictor/old 시작과 실제 requested δp의 compensated signed sum 및 uncancelled absolute sum을 저장하여 pnew−pold를 검증한다. pnew−pp 또는 vpnew−vpp를 작은 correction 한 항으로만 정규화하는 별도 조건은 원N3에 없는 추가 기준이므로 독립 검토에 따라 제거했다. 좌표 radius는 chosen initial p radius와 각 실제 `p+=δp`의 AddRadius로 누적한다. δp는 fixed-path arithmetic 입력이고 solve uncertainty는 N7에서 별도 평가한다. Ar radius와 이전 accepted history는 reset/clamp하지 않는다.
## 검증 상태
`git diff --check -- tests/unit/analysis/hht_shell_physics_test.cpp`: exit0.
`PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr`는 흡수 재현, direct p 보정 보존, 기존 uncancelled update tolerance, inherited radius 성장 검사를 추가했다. 최신 p-primary source의 build/runtime는 main 담당자가 수행하며 아직 이 보고서에서 PASS로 선언하지 않는다. 기존 C08a/finer 실행은 이전 재구성 경로의 historical evidence다.
Private diagnostic source·compile/link response files는 `.dryforge/hht-reduced-c08a-finer-20261013/`에 준비했다. `large-probe-definition.json`에 source identity와 observation을 기록했으며 production source/shared build를 변경하지 않는다. 실제 pp/Ar/p와 requested/realized δp의 runtime 값으로 재구성 상쇄 가설을 평가해야 한다.
관련 독립 검토: [numerical-review-reduced-coordinate.md](numerical-review-reduced-coordinate.md). 기존 C08a 판정과 finer-grid 제안: [c08a-refinement-proposal.md](c08a-refinement-proposal.md).
## 승인된 C08a 검증 갱신
사용자 승인에 따라 공식 C08a grid는 16,32,64,128,256,512,1024를 유지한다. 최종 두 order는 256→512 및 512→1024에서 p>=1.8, finest maximum error<=1e−4, N7 최종 세 grid factor100을 검사한다. Hidden1/2 strict decrease 대신 모든 frame의 finite normalized defect<=1e−10 및 zero-scale exact0를 검사한다. 최신 source runtime은 main 재실행 전까지 PENDING이다.
C08b finest 실행의 기존 dynamic-hidden-constraint FAIL은 유지한다. Original constraint 검사의 실패에 h/increment/time/stage 및 raw primitive ψ 대 full-force null projection 진단을 추가했다. Criteria, physical force, external force, stored state를 보정하지 않는다. 최신 진단으로 graph-root solve defect와 full-force contraction arithmetic 차이를 구분해야 한다.
## C08b physical-force null leak 재현과 최소 수정
별도 scratch C08b32768 실행에서 increment4/time=.0001220703125에 원래 hidden0 FAIL을 재현했다(native1,5.23s). Root iteration0, relative6.35516e−14, primitive ψ≈1.47926e−22인데 assembled force null projection≈5.75965e−18이었다. Same scale=1.62759e−8이며 저장된 n/F 값의 Decimal.from_float 100-digit exact dot에도 gap≈5.75950e−18가 남고 마지막 dot rounding은≈1.99e−25였다. Graph solve tolerance 또는 dot accumulation의 문제가 아니다.
실패 회전각≈1.314e−4가 기존 small-angle coefficient 경계1e−4를 처음 넘는 시점이다. `nonlinear_mitc4_shell.cpp` ExpSkew는 기존 squared_norm<.25의9항 stable series tensor를 전체 Jet에 일관되게 적용했다. 기존 코드가 directional derivative만 복사해 value/gradient/Hessian의 cancellation을 남기던 문제를 수정했다. Original geometry predicates와 branch boundary는 유지한다.
Frozen actual q의 scratch object override 비교: original native1 → complete stable Jet native0(243ms). Node0 physical-force null projection≈5.75950e−18 → −1.65e−24. 새 실제 unit regression도 original native1로 재현했고 stable override의4개 relevant tests native0/4PASS/1.219s였다(new null regression, original1e−4 및.5양쪽 third-gradient sweep, drilling force/gradient/Hessian identity, approved tangent directional schedule). Commands/artifacts는 `.dryforge/hht-reduced-c08a-finer-20261013/build-element-unit.cmd`, `element-unit-original.log`, `element-unit-stable.log`다. Shared configured build/test 및 전체 C08b temporal/N7 검증을 대체하지 않는다.
기존 C08b1024 log에서 별도의 required q increment trace FAIL도 발견됐다. New source는 실패 component의 selected-start/requested trace 및 binary addition low-part 진단을 추가했다. 원N3 q 기준은 유지하며, element null leak 수정만으로 전체 C08b PASS라고 주장하지 않는다.
## Required q trace와 compensated candidate arithmetic
Stable-element h1024 전체 C08b trajectory는257 frames를 완료했지만(native1,225.810s), increment200/full30에서 required q trace ratio1.47277339e−12로 실패했다. Current p=.01416209717993157의 요청 target에 대한 오차는1.43482331433e−18이며 actual addition TwoSum low 합의 반대와 일치한다. Decimal100 neighbor 검사에서 바로 아래 p=.014162097179931568은 같은 원scale의 ratio3.07833e−13로 PASS 가능했다. 이 사례는 최종binary64 irreducible representability가 아니라 누적 addition loss다.
Production과 C08 controller는 실제 coordinate correction마다 `(sum,error)=TwoSum(p,δp)`, `low_sum=low+error`, `(p_new,low_new)=TwoSum(sum,low_sum)`을 적용한다. Predictor의 기존 high 및 시작 선택은 그대로 평가하고 두 초기 predictor addition의 low를 보관한다. 같은 old-p 선택은 exact correlated low0로 시작한다. Requested increment trace는 별도 Neumaier 누적으로 보존하고 state를 그 trace에 복사하지 않는다. 모든 원N3 q/absolute v/filter gates는 유지한다.
CA는 EFT correlation 조건 아래 pair total radius에 실제 `low_sum` addition의 ρ를 누적하고 high 출력 radius는 pair radius+|low_new|로 둔다. Predictor pair radius는 기존 high radius+|initial low|로 보수적으로 시작한다. 이전 accepted history radius는 다음 predictor에도 유지한다. Low는 실제 arithmetic remainder이고 history의 새 물리 좌표나 accepted N7 polish가 아니다. Increments 사이에는 accepted high가 모델 이력이며 남은 low 크기가 출력 radius에 포함된다.
`CompensatedCoordinateRetainsAbsorbedNewtonCorrections`와 기존3개 scalar/indicator 검사는 scratch native0/4PASS였다. Quarter-ULP 네 보정, predictor low carry, gradual subnormal 및 overflow fail-closed를 포함한다. Current compensated h1024 fulltrajectory는 같은257frames/원N3 기준에서 native0/278.823s로 PASS했다. Hidden1 max1.68458e−13, hidden2 max3.65753e−13이며 required q trace failure는0이다. 이전 plain-p 동일 trajectory native1과 구분한다. 이 single-trajectory PASS로 전체 C08b finer-grid/self-pair/N7 판정을 승계하지 않는다. Artifacts: `compensated-scalar-tests.log`, `c08b1024-stable-trajectory.log`, `c08b1024-representability.json`, `c08b1024-compensated-trajectory.log`.
## 공식 compensated C08a의 남은 N3 FAIL
승인된7-grid 공식 C08a 실행은 native8/888.432s로 FAIL했다. 512에서6개,1024에서52개의 required requested-trace 및 같은 component의 whole-q update 실패가 남았다. 독립 exact Fraction 계산에서58개 모두 현재 high가 가장 가까운 binary64 좌표이며 양옆 이웃도 원1e−12 조건을 통과할 수 없었다. Actual pair와 exact requested target의 최대 gap은7.703719777548943e−34다. 최악1024/increment555/full6의 최솟값 ratio는1.208331938245387e−11이다. 이는 이전 누적-loss red/green과 구분되는 최종 stored-coordinate 표현 한계다.
과거 원기준 FAIL은 유지한다. 승인용 구체적 증거와 최소 분리안은 [c08-n3-coordinate-representation-proposal.md](c08-n3-coordinate-representation-proposal.md)에 기록했다. Shared 실행 중인 binary와 reference는 변경하지 않았다.
사용자 승인(HHT-ADR-016) 후 private `hht_reduced_increment.h::CheckPairIncrement`를 production과 actual C08 whole/requested 두 검사에 적용했다. 실제 binary64 high/low/old 및 각 우변 항을 EFT expansion으로 뺀다. Requested Neumaier sum/comp를 각각 입력하며 이전 accepted old는 stored high다. 원uncancelled scale/1e−12/finite-first/zero-scale exact0를 유지한다. 별도 `high+low` RN-even 결과가 stored high와 같은지 검사한다. Raw high defect는 진단에 남기고 floor/budget/nextafter 보정은 추가하지 않는다. Absolute q/v/a/A, actual physical criteria 및 CA/N7 history 코드는 변경하지 않았다.
새 `HhtReducedIncrement.*`5개 검사는 공식 first/worst frozen pair, midpoint parity/nearest, missing-correction·missing-low·wrong-sign negative, zero/subnormal, nonfinite/overflow를 포함한다. 별도 MSVC /O2 /MD C++17 header probe는 build/runtime native0이며 first/worst exact0 및 tie/missing-correction/subnormal/zero-scale 검사를 통과했다(`build-pair-increment-probe.cmd`, `pair-increment-probe.log`). Configured unit·공식 C08 전체·reference는 새source 재실행 전까지 PENDING이다.
## C10 경계·실패 보존의 남은 coverage
실제 executor의 outer100 경계는 acceptance를 먼저 평가한 뒤101번째 correction을 금지한다. 이 정책을 실제 executor가 사용하는 private constexpr helper로 명시하고99/100/101 경계를 검사하는 최소 patch를 준비했다. 실제100회 correction 후 물리적으로 수렴하는 trajectory 검증은 별도 coverage gap이며 policy test로 통과를 주장하지 않는다. Production acceptance callback/observer는 추가하지 않는다.
실제 reduced 실행의 기존 backend interface로 increment1 accepted 이후 factorization failure를 주입하고, 실패 Result에 candidate가 없으며 partial log에 accepted increment2가 없는지 검사하는 테스트를 추가했다. 같은 Domain에서 새 실행을 시작하여 전체 q/v/a/A 및 force/hidden history와 log가 baseline과 exact 일치하는지 비교한다. Private p/vp/ap/Ar/z history는 지역 실행 소유이며 이 테스트에서 직접 snapshot을 관측하지 않는다. HDF5 output preservation도 이 solver-only 테스트의 검증 범위가 아니다. Patch는 적용했고 diff check exit0이며 configured runtime는 PENDING이다.
## C09 초기 coefficient authority 수정
Rotated rigid-translation actual initial-only repro는 native1/3.21s였다. Original initialized full N2 channel은 통과하지만 reconstructed phi channel은 .968200478753255로 실패했다. 독립 Fraction 대조에서 primitive translation gradient 합과 가속도 contraction은 exact0인 반면, 기존 nH translation contraction +4.513567227e-15가 초기 null 가속도 eta=-1.6008465906363652e-12를 상쇄했다. Primitive gradient에서 같은 eta의 contraction은 -4.512015761e-15다. Final dot summation 오차보다 coefficient authority 불일치가 지배적이다.
Private DynamicAssembly에 기존 element scalar primitive에서 조립한 node/full hidden_gradient를 추가했다. Initializer, regularity, CompleteConstraintEvidence가 이 행을 함께 사용하며 absent authority는 fail-closed다. Dead-load external primitive gradient/Hessian도 global node당 한 번 포함한다. Hidden sparse v/a contraction은 deterministic compensated reduction을 사용한다. Physical mass range, full force assembly, original position psi/scale 및 승인 tolerance는 유지했다. 수정 후 configured runtime는 PENDING이며 이전 FAIL을 현재 PASS로 승계하지 않는다. Raw native/Fraction artifacts는 c09-initial-probe.log, c09-initial-exact-contractions.json 및 독립 approved-review/independent_c09_initial_gradient.json이다.
Canonical-gradient actual C09 private 실행은 초기 reconstructed N2를 통과한 뒤 increment1 outer100에서 실패했다(gtest native1/446.751s). 이 후속 FAIL은 canonical-c09-initial-runtime.log, canonical-c09-final-iteration.log, canonical-c09-initial-identity.json으로 분리했고 이전 초기 FAIL raw는 보존했다. Actual first/second endpoint point replay에서 full moment 잔차는 drilling보다 physical force에 지배되었다.
Tiny rotation phi=1e-17에서 기존 fullR*D0-D0의 physical force가0인 반면 K0*phi 예측은1.535101656671476e-16이다. Direct (R-I)D0 Jet scratch는 원함수 derivative에 대한 ratio1.605880834081617e-16로 PASS했고, 독립 shear energy oracle1.666666666666667e-33와 일치했다. 기존 scalar recovery energy0은 별도 RED였다. Production은 direct director increment와 scalar covariant increment를 함께 적용하고 recovery strain을 G0·deltaG+deltaG·G0+deltaG²로 계산한다. Public director, current geometry predicates 및 drilling angle 식은 유지한다. 새 검사 TinyRotationPreservesPhysicalForceAndRecoveryEnergy는 flat/rotated 및 flat/warped4조합, K0 force, positive quadratic energy, flat independent shear energy를 대조한다. Private current-source build/runtime는 native0/2PASS1.383s(tiny-production-shear-oracle.log). Configured element/N5/C09/공식 C08/reference의 새source 판정은 PENDING이다.
Current direct-DeltaD ABI library의 bounded actual runtime은 iteration0/1/2(최대2corrections) raw를 .dryforge/hht-direct-delta-c09-20261013 아래 별도 보존했다. Build native0, 진단용 중단 native1/9.5s이며 acceptance PASS를 의미하지 않는다. Phi numerator/scale ratios는 .999935739,1.002294047,.998792917이다. 물리 moment가 지배하며 drill maximum은1.5e-36,8.9e-34,1.4e-35다. U ratios는 correction1/2에서4.35e-15/2.54e-15다. All48 full rows의 q/v/a/physical/drilling/internal/inertia/external/residual/scale 및 actual source/lib SHA를 bounded-endpoints.json, bounded-runtime.log, identity.json에 저장했다. 이전 canonical-gradient epoch raw를 덮어쓰지 않았다. 이 bounded evidence로 후속 moment N2 실패 원인이나 irreducible 표현 한계를 확정하지 않는다.
## Mixed-scale inertia force 산술 수정
Fresh direct-DeltaD epoch outer20은 U ratio2.39509277e-15, phi ratio.9998109402를 보였다. q/v/a, actual p high/low, selected start, old p/vp/ap/Ar, pp/vpp/currentAr 및 trace는 outer20-endpoints.json에 저장했다. Stored binary64 mass coefficient/actual acceleration의 독립 Fraction replay에서 full39 native I=0 대비 M*a+c=2.070274834838396e-19, full34=1.883916436593294e-19, full27=-1.585777596546307e-19가 나왔다. Translational coupling action은 exact0이며 tiny rotary action이 native mass-point acceleration sum에서 소실됐다. 이는 force/operator 산술 불일치 근거이고 C09 전체 실패의 단독 원인 확정은 아니다.
Production은 independently integrated mass/c를 고정 column 순서 Neumaier 합으로 M*a+c에 결합한다. Nodal cross C1 entries를 보존하며 analytic null projection, zeroing, clamp는 추가하지 않았다. Mass/position/velocity tangents, kinetic energy, momentum/angular momentum/rates, original N2 uncancelled scale 및 승인 threshold는 그대로다. New theoretical test는 area4/rho1/t=.2의 nodal m=.2 및 rotary I=m*t²/12로 large translational a와 tiny tangent angular a의 force를 flat/properQ 두 경우에서 검증한다. Oldforce RED native1/136ms; private new-source NonlinearMitc4Inertia.*는 native0/12PASS11.824s이며 finite/warped energy/power, genuine C1, fixed derivative sweep와 omission 검사를 포함한다. Logs는 inertia-tiny-red.log, inertia-green.log, exact coefficients는 inertia-replay.log/inertia-exact-replay.json이다. Position tangent의 Dhrow·acceleration_point에도 tiny contribution absorption 가능성이 남으므로 이 force 수정으로 모든 floating derivative 경로를 해결했다고 주장하지 않는다. Current configured actual C09/strong N5 및 전체 기능 closure는 별도 PENDING이다.
## Stable-force 이후 초기 partition 및 derivative/rate 분리
Configured stable-force epoch는 native8/13PASS1FAIL216.39s였다. 기존12 inertia와 actual strong N5는 PASS지만 C09는 reconstructed frame0 phi ratio.4509010842로 FAIL했다. 초기 a0는 그대로이며 새 M*a contraction이 이전 point sum의 I=0 masking을 제거했다. 독립 Fraction에서 첫4 primitive row의 selected-P RHS는 exact0, plain sum만1.734723475976807e-18이며 Neumaier는0이다. 둘째4row는 기존 initializer의 rounded-product Neumaier와 partition Neumaier가 일치한다. Rate reconstruction의 P/H/time contraction을 같은 고정 순서 보상 합산으로 수정하고 C08 CA는 각 실제 primitive 연산의 radius를 replay한다. 원 초기 state와 N2/N3 threshold는 유지했다. Current configured runtime는 PENDING이다. Raw는 adr016-stable-inertia-debug.log, 독립 계산은 independent_c09_partition_rhs.json이다.
별도 private Dq probe에서는 old position tangent0 대비 분석해 −.5*j*epsilon*d0의 해당 성분−3.3333333333333344e-21을 재현했다. DqM coefficient를 먼저 적분한 뒤 a와 수축하고 c_q를 독립 유지한 scratch는 분석해와 일치한다. Active node midpoint를 원점에 놓은 large translation/tiny rotary velocity 및 acceleration에서도 old L/Ldot0 대비 j*epsilon=6.666666666666669e-21가 소실됐다. h 및 position×h coefficient를 먼저 적분해 v/a와 수축한 candidate는 L/Ldot를 복구한다. 실제 arm, kinetic measure, convective contribution 및 원 rate_scale 적분은 유지한다.
Scratch inertia-dq-rates-green.log는 기존12검사+bounded3probe 15PASS/native0/34.409s다. Flat/properQ ×epsilon10^-7..10^-20 분석해 sweep은 current production RED1FAIL/2.245s와 candidate GREEN1PASS/2.506s다. 경로는 .dryforge/hht-direct-delta-c09-20261013/inertia-dq-rates-analytic-red.log, inertia-dq-rates-analytic.log 및 inertia-dq-rates-stable.cpp다. Dq/rate candidate는 production 미적용이며 독립 review와 configured 판정은 별도다. Scratch PASS로 C09/C08/reference closure를 주장하지 않는다.
독립 reviewer의 coefficient-first 수식 적합 확인 후 Dq/rates candidate를 production에 적용했다. 반복 보상 수축은 private InertiaSum으로 공유하며 추가 public API는 없다. New MixedScaleRotationDerivativeAndAngularMomentum는 flat/properQ epsilon10^-7..10^-20에서 전체 Dq action, L 및 Ldot를 독립 nodal rotary inertia 식과 비교한다. Generic large orbital/tiny intrinsic의 최종 binary64 저장, point-arm 양자화 및 mixed tiny convective coefficient 소실은 별도 잔여 coverage다. Production source/lib/test SHA는 inertia-dq-rates-production-identity.json에 분리했다. Shared partition-only Debug/C08a frozen binary는 이 변경을 포함하지 않는다.
Current production private13 inertia 검사는 native0/32.132s로 PASS했다(inertia-dq-rates-production.log). 같은 RateSum library snapshot과 최신 inertia objectoverride의 actual C09 bounded20은 native1/95.743s의 의도 중단이다. 초기 fresh N2 phi ratio2.756119955396106e-16은 PASS지만 increment1/outer20은 U2.104778492177613e-15 PASS, phi.9997440787374917 FAIL이었다. 최악full3 physical−8.687040021705924e-17 대비 I−4.500032835702614e-21, drilling3.2683e-36이다. Raw48rows와 p/high/low/Ar/요청 trace는 .dryforge/hht-latest-inertia-c09-20261013/outer20-endpoints.json에 저장했다.
같은 physical kernel의 zero-state tangent에서 Kphysical=Kinternal−Kdrilling을 추출해 anchored displacement와 tiny phi에 적용한 independent stored-coefficient Fraction replay는 physical force와 max defect/uncancelled action2.038688672288276e-16로 일치했다. Full3 exactlinear−8.687040021705925e-17 대비 nativephysical−8.687040021705924e-17이다. Artifact는 .dryforge/hht-latest-inertia-final-c09-20261013/physical-map.log 및 physical-map-exact.json이다. 이 linear-map 일치는 현재 큰 N2 phi ratio를 force value/gradient 불일치로 설명하지 않음을 보여주지만, 전체 acceptance의 irreducible representability 판정은 아니다. 원 Newton100 정책의 private natural endpoint와 마지막 requested/applied correction 비교를 별도 수집 중이다.
원100회 current private C09는 native1/454.432s로 종료했다. 초기 PASS 이후 increment1 finalphi numerator=scale3.3567686214448646e-17로 FAIL했다. Full mapped 선형 예측은1e-32지만 실제 high 반올림 및 dependent graph가 physical forcing을 바꾼다. 독립 Fraction에서400candidate high는 모두 정확 RN이고 carry gap≤3.08149e-33이다. 전체 acceptance의 불가능을 주장하지 않는다. 자세한 source identity/48row/요청-적용 action 비교는 [C09 Newton 산술 진단](c09-newton-rounding-diagnostic.md)에 기록했다.
Fixed-final translation read-only probe는 원모든endpoint검사를2회 보정으로 만족했다(의도중단 native1/5.703s, no commit). 이는 원N2를 만족하는 표현가능한 state의 존재 근거이며 현재fullNewton경로 FAIL을 구분한다. Production 변경 전에 [내부 Newton 전략 제안](c09-channel-newton-proposal.md)의 사용자 결정 및 N7 operator scope 검토가 필요하다.
사용자 승인 후 production channel 제한 Newton과 helper 회귀를 구현했다. 새 실제 trajectory/configured/reference closure는 별도로 유지하며 [구현 및 검증 범위](implementation-channel-newton.md)에 기록했다.