262 lines
22 KiB
Markdown
262 lines
22 KiB
Markdown
# Hex8 계산 정밀도와 검증에서 확인한 점
|
|
|
|
현재 완료 여부는 [PRD](PRD.md)의 checklist가 소유한다. 아래 기록은
|
|
[정식화](formulation.md)와 [수치 기준](numeric-controls.md)을 바꾸지 않고
|
|
계산 정밀도를 개선한 근거다. 내부 검사 통과와 원본 동적 모델의 수렴은 구분한다.
|
|
|
|
## 작은 변형률에서 단위행렬을 빼지 않는다
|
|
|
|
`E=(F^T F-I)/2`를 그대로 계산하면 작은 변형률에서 유효 숫자를 잃는다.
|
|
`H=grad(u)`로부터 `E=sym(H)+H^T H/2`를 계산하면 같은 Green 변형률을
|
|
단위행렬 차감 없이 구한다. StVK 재료식, 에너지, Cauchy 응력과 접선은 유지한다.
|
|
|
|
탄성계수 `2.1e11`, Poisson 비 `0.3`인 직육면체의 signed affine stretch
|
|
`±1e-10`, `±1e-8`에서 독립 응력·에너지·면 traction 적분으로 기존 오류를
|
|
재현했다. 수정 `7d191036`은 요소 검사 27개와 독립 수치 검토를 통과했다.
|
|
비선형 동적 원본의 첫 증분 잔차 비율은 약 `1.42e-5`에서 `6.02e-10`으로
|
|
줄었지만, 승인된 `1e-10` 기준은 여전히 충족하지 못했다.
|
|
|
|
## 곱셈, 합산, 변위 차감의 오차를 각각 보존한다
|
|
|
|
강체 병진을 제거한 상대변위로 내력을 계산해도 큰 항들이 상쇄되는 행에서는
|
|
계산 순서의 영향이 남는다. 원본 선형 동적 사례의 두 요소 행에서 local 곱의
|
|
절댓값 합은 각각 약 `3.63e6`이었고, FMA 곱셈 잔여와 보상 합산으로 복구한
|
|
내력 차이의 합은 `8.20e-10`이었다. 당시 전체 잔차 `9.06e-10`과 같은 크기였다.
|
|
|
|
수정 `c50e68e`는 캐시된 K0를 그대로 두고 상대변위와의 곱셈·합산을 보상한다.
|
|
수정 `8153796`은 절점 변위 기울기 및 비선형 `sum(w*P*G)`에도 같은 보상을
|
|
적용한다. 각각 관련 검사 60개와 독립 수치 검토를 통과했으나 동적 원본은 실패했다.
|
|
기울기·내력·에너지·접선은 같은 trial의 물리식을 사용한다.
|
|
|
|
작은 절점 변위의 갱신은 입력 double에서 표현 가능해도, 더 큰 기준 절점 변위를
|
|
뺀 상대변위에서는 소실될 수 있다. 수정 `8ccd1b2`는 TwoDiff로 차감의 잔여를
|
|
보존하고, 상대변위의 두 부분을 내력·기울기·선형 에너지 계산에 함께 사용한다.
|
|
독립 정확 유리수 검산의 유한 차이 125,039쌍에서 불일치가 없었고, 관련 native
|
|
검사 60개와 독립 수치 검토도 통과했다. 이 검산은 native solver 검증을 대체하지
|
|
않으며, 입력 자체의 반올림으로 잃은 값을 복원한다는 의미도 아니다.
|
|
|
|
## 수렴 정체와 허용치 변경을 구분한다
|
|
|
|
위 수정 후 선형 동적 원본은 첫 증분을 5회 solve, 잔차 비율 `9.54e-11`로
|
|
수용했다. 두 번째 증분은 100회에서 `1.01993e-10`으로 실패했다. 실패 좌표의
|
|
직전 적용 보정량은 약 `-0.496 ULP`여서 저장된 변위를 바꾸지 못했다.
|
|
100회 종료 지점에서는 다음 solve를 하지 않으므로 이 값으로 다음 Newton 갱신을 추론하지 않는다.
|
|
비선형 원본도 첫 증분에서 약 `1.35e-10`으로 실패했다.
|
|
|
|
이는 전체 원본 검증 완료의 근거가 아니다. 물리 잔차의 component별 원래 Si,
|
|
correction, update 및 max100 기준을 유지하면서 표현 가능한 변위에서 추가
|
|
정제가 가능한지 확인해야 한다. 예측 잔차는 trial 선택에만 사용할 수 있고,
|
|
수용은 실제 rates·형상·내력·복구·모든 free 성분의 원래 판정으로 수행해야 한다.
|
|
원본·허용치를 보정하거나 실패한 candidate를 accepted history에 넣지 않는다.
|
|
|
|
## 잔차 점수만으로 Newton 갱신의 정체를 판단하지 않는다
|
|
|
|
각 trial의 `abs(r_i)/Si`는 최종 수렴 판정에 사용하지만, 그 최대값이 증가했다고
|
|
갱신이 정체된 것은 아니다. 작은 강체 운동 사례에서 한 성분의 잔차는 약
|
|
`9.88e-24`에서 `3.17e-25`로 줄었으나 Si가 더 빠르게 줄어 비율은 증가했다.
|
|
이 갱신을 한 좌표의 ULP 정제로 대체한 구현은 기존 축·하중 크기 회귀에서 실패했다.
|
|
현재 failing 성분의 Si를 고정한 별도 점수도 다른 축의 유효한 갱신을 가로막았다.
|
|
|
|
완전한 변위가 반복되더라도 다음 반복의 정제 대상 자유도가 바뀌면 계산은 더
|
|
진행될 수 있다. 따라서 정체의 근거에는 실제 변위와 정제 대상의 변화가 모두
|
|
필요하며, 잔차 점수의 왕복만으로 전체 상태의 반복을 추론하지 않는다.
|
|
최종 수용에서는 여전히 실제 모든 free 성분의 원래 Si와 수렴 기준을 검사한다.
|
|
변위와 직전 solve mask만 비교한 수정 `1063abc`는 관련74개 검사를 통과했지만
|
|
두 동적 원본은 세 번째 증분100회에서 실패했다. 선형 잔차 비율은 `2.10874e-8`,
|
|
비선형은 `9.99819e-8`이었다. 이 실패 행의 전체 내력 보상 합산 차이는0이고,
|
|
관성력 보상 차이는 약 `1e-17`이므로 해당 실패를 합산 오차만으로 설명하지 못한다.
|
|
|
|
동일 구현에 동작을 바꾸지 않는 계측을 추가하고 실제 반복 상태를 저장했다.
|
|
선형은 다음 반복14의 상태가 진입11과, 비선형은20이18과 정확히 같았다.
|
|
전체 변위1326개·진입 시 holding mask1275개·incoming correction metric4개의
|
|
유한 값이 모두 일치했고 그 구간의 실제 ULP 이동은0건이었다. 기존 두 상태
|
|
판별은 false였으며 prospective physical gate도 FAIL이었다. 독립 검토가 계측과
|
|
원시 배열을 대조했고, 독립 Python 검산은 exit0이었다. 진단 실행 두 건은 각각
|
|
native exit1로 자연 종료했으며 원본 solver PASS의 증거가 아니다.
|
|
|
|
고정 증분에서 이전 accepted state·M·하중·predictor가 고정되고 fresh solve와
|
|
탄성 local recovery가 결정적일 때, 재현되는 반복 상태는 전체 변위·reactivation 전
|
|
holding mask·incoming correction4개다. 다음 상태는 실제 fresh Newton 변위·freeze 후
|
|
mask·fresh correction4개로 비교해야 한다. History는 증분 시작과 실제 ULP 적용 후
|
|
초기화하고, physical FAIL 및 finite correction PASS 진입만 보관한다. Prospective
|
|
physical PASS는 정상 Newton 경로를 유지한다. 이 한정된 판별 수정 `b394ae7`은 관련75개
|
|
검사와 독립 코드 검토를 통과했다. 7개 판별 조건을 각각 제거한 behavior mutation도
|
|
native build0/CTest8로 실패를 검출했다. 기존 수렴 기준·100회 제한·최종 수용은 유지한다.
|
|
|
|
동일 immutable binary의 두 원본 실행은 여전히 세 번째 증분100회에서 native exit1로
|
|
실패했다. 선형은419.360초, 잔차 비율 `7.21125e-9`, 비선형은431.045초,
|
|
`1.27770e-8`이었다. 선형95번째 반복의 ULP 이동은 실제 점수를 `7.21125e-9`에서
|
|
`4.66385e-9`로 낮췄으나 뒤의 정상 Newton 갱신에서 다시 증가했다. 이는 각 정제의
|
|
국소 감소가 전체 갱신 과정의 진전을 보장하지 않는다는 증거이며, 전체 변위가 같은
|
|
상태로 복귀했다는 증거는 아니다. 비선형의 잔차 점수 왕복도 전체 상태 반복의 증거가 아니다.
|
|
|
|
Incoming correction4개의 실제 수치는 정상 Newton의 rates·tangent·rhs에 사용하지 않으며,
|
|
유한 값과 PASS 여부가 수용에 쓰인다. 추가 계측에서 선형 진입20→다음23, 비선형72→80은
|
|
각각 같은 순수 Newton 구간의 전체1326개 변위·1275개 mask가 정확히 같았으나 correction
|
|
숫자4개는 달랐다. 모두 finite/PASS이고 prospective physical FAIL이었으며 기존 판별은
|
|
false였다. 선형 진입23→다음30은 실제 ULP 이동을 사이에 두고 변위·mask·correction
|
|
숫자까지 같았지만 history 초기화로 판별하지 못해 정상 Newton이 적용되는 경로였다.
|
|
독립 검토와 원시 배열 Python 검산 exit0으로 두 조건의 영향을 확인했다. 비선형에서
|
|
ULP를 사이에 둔 복귀는 입증하지 않았으며 전체 혼합 알고리즘의 주기 반복도 주장하지 않는다.
|
|
|
|
수정 `f661864`는 고정 증분 전체의 적격 실패 진입을 유지하고, 실제 변위·mask와 각각의
|
|
finite correction PASS로 동등성을 판별한다. Correction 숫자의 차이는 진단으로 유지한다.
|
|
관련76개 검사는 native build/CTest0이며 독립 검토를 통과했다. 실제 Hex8 사례의
|
|
history 초기화 재삽입은 두 번째 증분100회 실패를 만들었다. 숫자 일치 재삽입은
|
|
두 helper 검사의 assertion 실패를 만들었다. 올바른 원본을 복원하고 실제 object를
|
|
재컴파일한 뒤 최종 회귀를 수행했다.
|
|
이 재현은 질량이 지배적인 작은 문제의 제어흐름 검사이며 원본 conditioning 해결의 증거가
|
|
아니다. 원래 gates·100회 제한은 유지한다.
|
|
|
|
동일 immutable binary의 원본101개 endpoint 검사 두 건은 다시 세 번째 증분100회에서
|
|
native exit1로 자연 종료했다. 선형408.202초의 잔차 비율은 `1.7773871030665027e-8`,
|
|
비선형416.052초는 `8.7357210799572219e-9`다. 최신 실패 행의 전체 내력 보상 합산 차이는
|
|
0이고 관성력 차이는 약 `1e-17`이다. 최종 다섯 반복에서 전체 변위와 mask는 계속 바뀌므로
|
|
잔차 점수만으로 정확한 전체 상태 반복을 추론하지 않는다. 새 판별의 내부 검증과 실제 원본
|
|
수렴은 구분해야 하며, 원본 conditioning·local 계산 또는 결합 좌표의 표현 가능성을 더
|
|
분석해야 한다. 실패한 state를 통합 완료나 reference PASS로 표시하지 않는다.
|
|
|
|
추가 원시 proof와 검산은 로컬 `.harness/hex8-evidence/t6-independent-semantic/`에,
|
|
수정·mutation·최종 회귀 로그는 별도 구현의
|
|
`.harness/build-ninja-msvc-debug/hex8-evidence/t6/`에 보존한다. 선형 진단은 닫힌 proof 검토
|
|
후 명시적으로 중단했고 비선형 진단은 native exit1로 자연 종료했다. 둘 다 solver PASS가 아니다.
|
|
|
|
재현 가능한 원시 tuple 검산과 SHA256은 로컬 evidence
|
|
`.harness/hex8-evidence/t6-independent-tuple/check-v3.py` 및 `v3-check-result.json`에
|
|
보존했다. 원시 진단과 native 실패 로그는 별도 구현의
|
|
`.harness/build-ninja-msvc-debug/hex8-evidence/t6/tuple-trace3/`에 있다.
|
|
|
|
명령·native exit·실패 로그는 해당 source와 함께 보존한다. 최종 통합 및 외부 비교
|
|
결과는 이후 verification 기록에서 이 개발 중 실패와 구분한다.
|
|
|
|
## 고정한 실패 상태에서 산술 오차와 갱신 소실을 구분한다
|
|
|
|
`f661864`의 terminal 상태를 관찰하는 별도 실행은 원래 계산식을 그대로 두고 각300개
|
|
reference cache·native response와 전체 state/M/Kt를 저장했다. 두 실행은 native exit1로
|
|
자연 종료했으며 원래 출력한 수치 trace와 일치했다. 계측은 byte 단위로 복원하고 재빌드했다.
|
|
원래 실행은 full terminal 변위를 저장하지 않았으므로 두 실행의 전체 변위 일치를 주장하지
|
|
않는다. 수집한 local 변위/scatter·전역 내력·M*a/M*A·r/Si는 모두 정확히 재조립됐고,
|
|
독립 Fraction 검산 두 건은 Python exit0이며 다른 검토자가 원시 계수로 재계산했다.
|
|
|
|
이 검산은 관찰한 binary64 계수를 고정한 정확한 다항식 계산이다. 이상적인 geometry나
|
|
원본 solver 동등성, 표현 가능한 해의 존재/부재를 증명하지 않는다. 선형 cached K dot의
|
|
실행 오차는 `+5.82e-13`으로 해당 행의 허용 잔차 `1.49e-11`보다 작았다. Cached G로
|
|
operator를 다시 구성하면 내력이 `-3.78e-10` 달라지지만 잔차는 여전히 `2.27e-9`다.
|
|
비선형의 고정밀 내력은 `+5.52e-11` 달라져 잔차를 `4.11e-10`에서 `4.66e-10`으로
|
|
키웠다. H의 high/low collapse 오차는 존재하지만 이 실패를 산술 정밀도만으로 해결할
|
|
근거는 없다. Operator 형성 차이와 runtime dot 오차를 혼동해 force만 교체하지 않는다.
|
|
|
|
저장한 PRE holding mask를 현재 물리 기준으로 reactivate한 뒤, 같은 순서의 rounded
|
|
Keff와 old residual을 포함한 weighted RHS를 별도 SuperLU로 풀었다. 정확한 방정식 잔차
|
|
비율은 두 건 모두 약 `2e-16`이다. 선형102개 active 보정은 모두 저장된 변위를 바꾸지
|
|
못했고, 비선형81개에서는9개 변위가 바뀌고 실패 좌표71개 보정이 소실됐다. 이는 독립
|
|
backsolve의 관측이며 production PARDISO의 현재 fresh 방향이나 actual trial PASS가 아니다.
|
|
직전 적용 보정량과 이번 fresh 방향을 구분해야 한다.
|
|
|
|
Weighted R=0의 physical target은 `alpha*r_old/(1+alpha)`다. 비선형 실패 행에서 이 값의
|
|
크기 `2.60e-11`은 현재 허용 잔차 `4.70e-12`보다 크다. 현재 최종 조건은 weighted R=0을
|
|
요구하지 않으므로 이것만으로 계약 충돌이나 수치적 불가능성을 선언하지 않는다. Old residual을
|
|
버리거나 물리 가속도를 다른 정의로 바꾸는 근거도 아니다. 다음 후보는 실제 native
|
|
rates·geometry·모든 원래 Si·update·weighted identity로 검증해야 한다.
|
|
|
|
같은 고정 상태의 native replay는 실제 Hex8 kernel·rates·하중과 저장 CSR을 사용했다.
|
|
먼저17자리 십진 문자열로 저장한 값을 Float64로 복원하고, 재계산한 전체 변위·속도·
|
|
두 가속도 배열 및 predictor·하중·내력·관성력·r/Si·최대 점수가 저장 값과 정확히
|
|
일치하는지 확인했다. 저장 CSR의 재생이며 독립적인 M/Kt 재조립 검증은 아니다.
|
|
RF는 저장되지 않았으므로 constrained residual/free0의 파생 identity만 확인했다.
|
|
TEMP 검사는 원래 파일과 byte 단위로 복원하고 실제 object를 재컴파일했다.
|
|
|
|
Native PARDISO의 현재 fresh solve도 선형102개 보정이 모두 변위를 바꾸지 못했다.
|
|
비선형은81개 active 좌표에서9개 변위가 바뀌고71개 실패 좌표의 보정이 소실됐으며,
|
|
최대 잔차 비율은 `8.73572e-9`에서 `1.27770e-8`로 커졌다. 정확 산술로 예측한 상위8개
|
|
단일 ULP 후보를 각각 실제 계산한 최선 비율은 선형 `4.75888e-9`, 비선형 `6.73857e-9`다.
|
|
두 fresh Newton 및16개 ULP trial 모두 원래 physical limit `1e-10`에 실패했다.
|
|
다른 update·weighted identity·correction·geometry 검사는 통과했다. Native exit0인 두
|
|
replay 검사는 관측 재현 검사의 성공이며 원본 수렴이나 accepted history의 성공이 아니다.
|
|
단일 이웃의 실패만으로 여러 좌표를 함께 움직이는 해의 부재를 추론하지 않는다.
|
|
|
|
기존에 실제 평가한 최선 단일 이웃에서 Newton/history 없이 단일 ULP 정제를 이어가는
|
|
별도 관찰은 최대100회 추가 이동으로 제한했다. 먼저4회·24회 관찰과 겹치는 전체 trial
|
|
배열을 정확히 재현했다.
|
|
선형은77회 개선 후 `5.25815e-10`에서 남은 예측 개선3개가 실제로는 모두 같은 최대값을
|
|
만들었다. 비선형은38회 개선 후 `9.85274e-10`에서 남은 예측 개선1개가 실제 최대값을
|
|
키워 거절됐다. 두 경우 모두 physical FAIL이며 다른 gates는 PASS다. 마지막 cursor에서
|
|
각각2547개·2549개 실제 단일 방향은 검사하지 않았으므로 모든 단일 이웃의 정체를
|
|
증명하지 않는다.
|
|
진단의100회 이동과 production의100회 Newton solve는 다른 수량이다. 이 관찰은
|
|
accepted frame·다음 fresh solve·전체101개 endpoint의 검증도 아니다.
|
|
|
|
최대 비율이 줄어도 실패한 행 수는 늘 수 있다. 마지막 실패 행 수는 선형162개,
|
|
비선형132개였다. 최대값의 엄격한 감소만으로 모든 행의 최종 평형을 보장하지 않는다.
|
|
두 정체 상태에서 모든 원래 free 좌표의 ±1 ULP를 정수 변수로 둔 별도 minimax 예측은
|
|
각20초 후 timeout이었다. 관찰 script의 Python exit0과 최적화 종료 상태를 구분한다.
|
|
반환 후보의 정확 산술 잔차 비율은 `2.84e-8`·`5.62e-8`로 현재 상태보다 컸다.
|
|
검증된 zero-change 후보가 주는 목적값 상한을 추가한 각각20초의 후속 예측도 timeout이며
|
|
정수 후보를 얻지 못했다. 상한은 기존 rounded surrogate 최적해를 보존하지만 solver에
|
|
초기 후보를 전달하는 warm start는 아니다. 이 결과를 native 후보 통과나 표현 가능한
|
|
해의 부재로 해석하지 않는다. 최적화 도구는 로컬 진단에서만 사용했고 production은
|
|
변경하지 않았다.
|
|
|
|
두 좌표를 함께 ±1 ULP 이동하는 별도 예측은 마지막 단일 정제 상태에서 시작했다.
|
|
최대 잔차 행의 M 또는 Kt 구조적 support에 적어도 한 좌표가 연결되는 조합을 검사했다.
|
|
선형313236개·비선형210588개의 Float64 affine 예측을 완료했고, 상위8개씩은
|
|
고정 계수의 정확 산술로 Ma·내력·새 Si를 다시 계산했다. 이 support 제한은 affine
|
|
예측에 대한 것이며 실제 비선형/반올림 계산의 모든 두 좌표 이웃을 포함한다는 뜻은 아니다.
|
|
최선 예측은 각각 `5.23348e-10`·`9.75010e-10`으로 현재 최대값보다 작지만 여전히
|
|
원래 기준 `1e-10`을 초과했다.
|
|
|
|
이16개 후보를 각각 같은 변경하지 않은 cursor에서 실제 kernel·rates로 평가했다.
|
|
선형8개는 최대값 `5.25815e-10`이 그대로였고, 비선형은 모두 현재 `9.85274e-10`보다
|
|
커졌다. 모든 후보의 실제 변위 변경은 서로 다른 원래 free 두 좌표의 한 ULP로
|
|
확인됐으며 physical FAIL, 다른 gates PASS였다. 전체 배열·r/Si·원시64개 artifact의
|
|
SHA를 별도 검산한 Python exit는0이다. 두 native 관측 검사의 exit0은 평가와 재현의
|
|
성공이며 후보 개선이나 원본 동해석 수렴의 성공이 아니다. Cursor는 이동하지 않았고
|
|
다음 fresh solve·accepted history는 실행하지 않았다. 예측 개선을 실제 개선으로
|
|
대체하거나 이16개 실패로 모든 표현 가능한 해의 부재를 주장하지 않는다.
|
|
|
|
Increment-local 보상 가산은 물리 상태를 단일 Float64 변위로 유지하면서 덧셈의 소실량만
|
|
다음 Newton 갱신에 누적하는 별도 관찰이었다. 같은 최선 cursor에서 plain/carry 각각
|
|
12회씩, 선형·비선형 총48회 fresh solve를 수행했다. 두 경로 모두 원래1275개 free
|
|
방정식 전체를 풀고 실제 current Kt를 재조립했으며 old residual과 모든 기존 gates를 유지했다.
|
|
Production의 principal refinement·history·ULP 탐색은 이 비교에 포함하지 않았다.
|
|
|
|
첫 Kt/Keff/RHS·fresh 방향·전체 물리 배열은 두 경로에서 정확히 같았다. 이후 carry는
|
|
실제로 다른 변위 경로를 만들었지만 모든48개 physical 판정은 FAIL이었다. 최종 비율은
|
|
선형 plain/carry `3.14971e-8`/`3.14508e-8`, 비선형 `4.43049e-8`/`1.54565e-7`로,
|
|
둘 다 시작 cursor보다 컸다. 다른 gates는 모두 통과했다. Native exit0의 두 관측 검사는
|
|
수렴 성공이 아니며, 독립 Python 검산 exit0은 원시201개 SHA·carry 산술·연산/경로·r/Si와
|
|
게이트를 검증한 것이다. TEMP source는 실행 전 복원하고 실제 object를 재컴파일했다.
|
|
이 결과는 production carry 도입이나 반복 횟수 확대를 뒷받침하지 않는다.
|
|
|
|
이 진단 종료 시점에는 low를 물리 변위로 사용하는 변경안을 채택하지 않았다.
|
|
이후 사용자가 2026-10-09 선택 A로 [내부 정밀도 변경안](precision-proposal.md)을 승인했다.
|
|
단순 carry와 구분해 전체 계산 상태를 high+low로 유지하고 Float64는 반올림 observable로
|
|
출력한다. 기존 실패 evidence는 새 방식의 통과 증거가 아니며 물리 기준·원본은 유지한다.
|
|
|
|
원시 capture·정확 산술·backsolve·이웃 예측·native replay의 재현 자료와 독립 raw 검산은
|
|
로컬 `.harness/hex8-evidence/t6-independent-frozen/`에 보존한다. 기능 checklist는
|
|
그대로 미완료다.
|
|
|
|
## 승인된 전체 high+low 요소의 첫 검증
|
|
|
|
2026-10-09 승인 A 후, low를 누락하는 대조 kernel에서 실제 요소 assertion3개가 실패했다.
|
|
전체 pair로 H/Green strain/응력/힘/에너지/접선을 계산한 kernel은 native build0/CTest0이다.
|
|
원래 요소27개와 새 검사17개의 최종 묶음44/44가 통과했고, quarter-turn 작은 전단의 힘
|
|
covariance와 독립 exact-dyadic primitive oracle을 포함한다. Native 산술6/6은 RN/FTZ/DAZ
|
|
실행 전제와 normal high에 최소 subnormal FMA error가 붙는 경계까지 확인했다.
|
|
|
|
동적 선형과 비선형은 같은 상대변위 gradient의 미분을 사용한다. 기존 rounded K0를 새 힘에
|
|
혼합하지 않는다. 기준 절점0의 signed 방향 차분은 접선·에너지 gradient와 일치했고,
|
|
두 brick의 공유 면 힘, linear/NL zero-state Hessian 및 low만 남은 현재 셀의 ±폭을 검사했다.
|
|
중앙 에너지 차분의 StVK cubic 오차는 step²로 감소한다. 이를 exact 미분값으로 간주해
|
|
과도한 test bound를 적용했던 실패를 구분하고 분석적 truncation bound를 적용했다.
|
|
|
|
큰 반복 비용을 줄이기 위해 선형 Hessian은 같은 paired zero-state graph의 결과를
|
|
immutable cache로 보관한다. Cache 생성 실패는 기존 Float64 Create 지원을 거부하지 않는다.
|
|
변형·실패 trial 후에도 high/low Hessian은 같고 힘·에너지·복구와 비선형 접선은 같은 전체
|
|
trial에서 계산한다. 독립 reviewer가 이 캐시와 native44/44의 원시 로그도 확인했다.
|
|
|
|
독립 numerical reviewer는 실제 shared arithmetic·kernel·geometry의 한정된 범위를 PASS로
|
|
판정했다. 재현 로그는 `.harness/hex8-evidence/precision/`에 보존한다. 이 결과는 동적 전체
|
|
상태·시간수렴·원본 endpoint·공식 출력의 완료를 뜻하지 않는다. 현재 checklist는 미완료다.
|