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.
This commit is contained in:
@@ -0,0 +1,505 @@
|
||||
# 고정 초기 null 기저의 sparse reduced HHT 정식화
|
||||
|
||||
상태: `implementation-ready; independent-review-and-runtime-pending`, 2026-10-13.
|
||||
승인 범위는 [고정 null 기저 제안](fixed-null-basis-proposal.md)과
|
||||
[HHT-ADR-018](ADR.md)의 사용자 결정이다. 본 문서는 수식·연산 계약이며
|
||||
자기 수치 승인이나 현재 production PASS 기록이 아니다.
|
||||
[기존 축소 정식화](formulation-reduced-coordinate.md)의 fully-free rotation
|
||||
component selector를 아래 고정 ON 기저로 대체한다. 기존
|
||||
[N1–N7](numerical-controls.md), [제한 Newton](c09-channel-newton-proposal.md),
|
||||
[독립 검토](numerical-review-channel-newton.md)와 허용값은 유지한다.
|
||||
|
||||
## 1. 적용 가정과 물리 계약
|
||||
|
||||
Total Lagrangian MITC4, 큰 변위·유한회전·작은 탄성 변형률, 등방 선형 탄성,
|
||||
objective drilling potential, `nodal-lumped-kinetic`, 기존 공간 적분·두께 적분과
|
||||
fixed-initial total rotation vector를 유지한다. 재료 history update는 없다.
|
||||
관성·내력·공간 각속도·단면력은 [기존 물리 정식화](formulation.md)와
|
||||
[관성 상세](formulation-inertia.md)가 소유한다. 좌표 변경은 constitutive law,
|
||||
mass measure, drilling stiffness 또는 recovery formula를 바꾸지 않는다.
|
||||
|
||||
Full node-major ordering은 `q_i=(u_x,u_y,u_z,phi_X,phi_Y,phi_Z)`다.
|
||||
`u`: length, `phi`: rad, `v=dot q`, `a=ddot q`이며 `v_phi`와 `a_phi`는
|
||||
공간 각속도·각가속도가 아니다. Zero fixed BC를 제거한 공간에서
|
||||
|
||||
\[
|
||||
E=I(q,v,a)+g(q,t),\quad I=M(q)a+c(q,v),\quad
|
||||
g=f_{int}(q)-F(t),\quad \delta q^T E=0. \tag{FB-01}
|
||||
\]
|
||||
|
||||
Residual 부호는 internal+inertia−external이고 Newton RHS는 −residual이다.
|
||||
공개 CLOAD는 constant global force이고 damping/follower load/nonzero BC/initial
|
||||
condition 입력을 확대하지 않는다. `Fdot,Fddot`는 C08a private oracle에만
|
||||
사용하며 원 analytic 시간미분을 보존한다. 이 변경은 continuous equation의
|
||||
roots를 유지하는 **승인된 private 좌표 시간 이산화 변경**이다.
|
||||
|
||||
## 2. 고정 기저와 혼합 chart
|
||||
|
||||
Frame0의 actual rotation kinematics에서
|
||||
|
||||
\[
|
||||
n_{raw}=J_l(\phi_0)^{-1}d(\phi_0),\quad
|
||||
n_0=n_{raw}/\|n_{raw}\|_2,\quad
|
||||
k=\arg\min_{X,Y,Z}|n_0[k]|,
|
||||
\]
|
||||
\[
|
||||
b=e_k-(e_k^Tn_0)n_0,\quad t_1=b/\|b\|_2,\quad
|
||||
t_2=n_0\times t_1,\quad B_p=[t_1,t_2],\quad B_z=n_0. \tag{FB-02}
|
||||
\]
|
||||
|
||||
Exact tie는 X,Y,Z 순서다. Norm은 finite positive이며 scaled sum-of-squares를
|
||||
사용한다. `||b||>=sqrt(2/3)`이므로 tiny-vector fallback/floor는 필요 없다.
|
||||
기존 `1e-12` ON/Gram 검사를 적용한다. Model director/phi를 정규화하지 않고
|
||||
reference geometric director를 actual analytic null 대신 사용하지 않는다.
|
||||
기저는 run 내 불변이며 current null에 맞추어 회전·pivot 변경·rechart하지 않는다.
|
||||
|
||||
| 절점의 실제 free rotation/null | 고정 분해 |
|
||||
| --- | --- |
|
||||
| 세 회전 모두 free, admissible analytic null 1개 | `phi=Bp p_rot+Bz z`, 두 angular p와 한 z |
|
||||
| 부분 회전 BC, admissible null 1개 | 기존 maximum-null-component pivot 및 component selector 유지 |
|
||||
| 부분 회전 BC가 null을 절단하여 admissible null 0개 | 모든 free component를 p에 유지 |
|
||||
| 세 회전 fixed | rotation private unknown 없음; exact prescribed0 유지 |
|
||||
|
||||
Null 교집합은 기존 exact component 계약이다. Tiny constrained null 성분을
|
||||
0으로 자르지 않는다. Initial admissible-node inventory와 각 trial inventory가
|
||||
달라지면 fixed-rank branch 실패다. Partial global BC를 `p_rot`의 같은 번호에
|
||||
복사하면 다른 BC가 되므로 금지한다. 일반 partial-BC frame covariance는 주장하지 않는다.
|
||||
|
||||
Full에 대한 constant sparse injection을 `Lp,Lz`로 표기한다. 병진과 기존
|
||||
component-chart 열은 identity support, 고정 plane 열은 세 global rotation
|
||||
성분 support다. Constrained rows는 exact0이고 free 공간에서
|
||||
|
||||
\[
|
||||
q= L_p p+L_z z,\quad L_p^TL_p=I,\quad L_z^TL_z=I,\quad
|
||||
L_p^TL_z=0,\quad L_pL_p^T+L_zL_z^T=I_f. \tag{FB-03}
|
||||
\]
|
||||
|
||||
이는 exact-arithmetic identity이며 stored binary64 Gram은 기존 gate로 검산한다.
|
||||
Production full dense basis matrix는 요구하지 않는다. Projection `Lp^T y`,
|
||||
lift `Lp x+Lz w` 및 `Lp^T K Lz` 등은 동일 sparse support의 source-ordered
|
||||
product/sum이다. 한 full DOF가 두 p 및 한 z에 기여할 수 있으므로 direct index
|
||||
scatter나 one-index reverse map으로 대체하지 않는다.
|
||||
|
||||
Private column metadata에는 immutable canonical node/source identity,
|
||||
`U`/`angular` channel, full support와 coefficient, fixed-plane/component-chart
|
||||
구분을 둔다. z/constraint rows는 initial null-node canonical order다.
|
||||
정확 저장 타입은 구현 owner가 결정한다. Plane column 번호를 full DOF 번호로
|
||||
간주하거나 `%6`로 channel을 판정하지 않는다. Public equation/source identity는
|
||||
기존 DofManager 계약이며 private ordering을 영속 결과에 노출하지 않는다.
|
||||
|
||||
Proper `Q`에서 `n0'=s Q n0` (`s=±1`)이면 retained planes 사이
|
||||
`T2=Bp'^T Q Bp∈O(2)`, `p_rot'=T2 p_rot`, `z'=s z`다.
|
||||
`Bp'=Q Bp` 자체는 필수 조건이 아니다. Axis/tie 선택이 달라도 이 전환은
|
||||
상수 선형이며 HHT recurrence와 exact arithmetic에서 commute한다. Floating
|
||||
rounding·infinity norm·mode branching의 실제 `1e-10` 통과는 별도 검증이다.
|
||||
|
||||
## 3. Graph, hidden rates와 서로 다른 regularity
|
||||
|
||||
Current normalized analytic null의 lift를 `N(q)`로 둔다. 물리 inertia의 null
|
||||
identity `N^T I=0`와 기존 direct scalar primitive
|
||||
|
||||
\[
|
||||
\psi=N^Tg=N^TE,\quad C=\psi_q,\quad G=C L_z,
|
||||
\]
|
||||
\[
|
||||
G z_v=-C L_p v_p-\psi_t,\quad v=L_pv_p+L_z z_v,
|
||||
\]
|
||||
\[
|
||||
G z_a=-C L_p a_p-\psi_{qq}[v,v]-2\psi_{qt}v-\psi_{tt},
|
||||
\quad a=L_pa_p+L_z z_a \tag{FB-04}
|
||||
\]
|
||||
|
||||
를 사용한다. Position graph `psi(Lp p+Lz z,t)=0`은 coupled global solve다.
|
||||
Gradient/Hessian/third·external time-mixed terms는 기존 RC-02, RC-13–15의
|
||||
analytic primitive를 그대로 사용하고 모든 injection을 FB-03으로 일반화한다.
|
||||
Shared node external term은 한 번만 추가한다. Numerical FD는 production tangent가 아니다.
|
||||
|
||||
검사는 다음처럼 분리한다.
|
||||
|
||||
| Operator / 조건 | 의미 |
|
||||
| --- | --- |
|
||||
| `G=psi_q Lz` 및 기존 `W^-1 G W^-1` conditioning | 선택된 graph의 implicit derivative/rate solve 가능성 |
|
||||
| `N(q)^T Lz`와 아래 normalized spanning matrix S | selector residual의 full-root equivalence와 정량적 횡단성 |
|
||||
| `psi_q N(q)`의 N4 null-coordinate conditioning | 실제 moving null 방향의 물리 대수 regularity |
|
||||
| `J=Lp+Lz z_p` rank, `J^T M J` positivity 및 기존 mass/N4 검사 | 축소 물리 range의 비퇴화 |
|
||||
|
||||
여기서 `W_i=sqrt(k_i)`, `k_i=N_i^T Kdrill_metric N_i>0`는 원 N4 scale다.
|
||||
G 검사와 moving-null 검사는 기존 `2^-32` 정책·finite-first·실제 operator로
|
||||
수행하며 하나의 PASS를 다른 operator의 PASS로 승계하지 않는다.
|
||||
Node-local `N^T Lz`는 fixed-plane node의 `n(q)^T n0`, component node의 원
|
||||
nonzero pivot component다. Exact0/nonfinite는 실패다. 작은 비영 내적의 정량적
|
||||
검사는 `D_f`를 N1의 free-row scale로 둔 다음 무차원 square matrix에서 수행한다.
|
||||
|
||||
\[
|
||||
S=[D_f^{-1}L_{p,f}D_p,\ D_f^{-1}N_f(q)],\qquad
|
||||
rcond_\infty(S)=1/(\|S\|_\infty\|S^{-1}\|_\infty)\ge2^{-32}. \tag{FB-04a}
|
||||
\]
|
||||
|
||||
S의 all-free angular block은 `[t1,t2,n(q)]`이고 부분 null block은
|
||||
`[retained component axes,n_free(q)]`, null이 없는 block은 identity다.
|
||||
병진 열은 ell로 정규화되어 identity다. Canonical node/block 순서의 inverse-action
|
||||
solves로 S와 inverse의 최대 row-sum을 계산하고 global dense inverse는 만들지 않는다.
|
||||
1×1 `N^T Lz`의 rcond는 비영일 때1이므로 작은 횡단각을 검출하지 못한다.
|
||||
S 대신 `S^TS`에 동일 threshold를 대입하면 conditioning 의미가 바뀌므로 하지 않는다.
|
||||
이 검사는 기존 `2^-32` 기준을 새 fixed-plane complement의 실제 normalized operator에
|
||||
적용한다. 임의 cosine cutoff를 추가하지 않는다. G/moving-null/range 검사는 별도다.
|
||||
Principal `||phi||<pi`는 횡단성을 보장하지 않는다.
|
||||
|
||||
Full-root 동등성: `Ep=Lp^T E=0`이면 FB-03으로 `E=Lz e_z`이고
|
||||
`psi=N^T E=(N^T Lz)e_z=0`이다. `N^T Lz`가 가역이면 `E_f=0`이다.
|
||||
`G`가 가역이라는 사실만으로 이 논증을 대체할 수 없다. 이 selector Newton은
|
||||
`J^TE`의 exact Newton RC-11과 root가 같지만 off-root correction은 다르다.
|
||||
|
||||
Hidden residual은 `psi0=psi`, `psi1=Cv+psi_t`,
|
||||
`psi2=Ca+psiqq[v,v]+2psiqt v+psitt`다. Raw defect와 원 uncancelled scale
|
||||
`S0=sum |N| s_full`,
|
||||
`S1=sum |C_i v_i|+|psi_t|`,
|
||||
`S2=sum |C_i a_i|+sum |H_ij v_i v_j|+2sum |psiqt_i v_i|+|psitt|`
|
||||
를 같은 units로 기록한다. S0의 `s_full`은 N2의 원 element/load 상쇄 전 scale다.
|
||||
Basis로 축소한 force나 취소된 graph RHS를 scale로 대신하지 않는다. 초기 gate,
|
||||
endpoint hidden0 gate 및 C08a hidden1/2 판정은 원 N3/ADR-015 그대로이며
|
||||
새 무조건 hidden1/2 Newton 종료 gate를 추가하지 않는다.
|
||||
|
||||
## 4. Augmented exact tangent와 스케일
|
||||
|
||||
`cv=gamma/(beta h)`, `ca=1/[(1+alpha)beta h²]`, `Kq=Iq+Kint`, `Kv=Iv`다.
|
||||
현 승인 load의 q derivative는0이며 새로운 follower-load 항은 없다.
|
||||
같은 trial에서 `Wext=(v,1)`이고
|
||||
|
||||
\[
|
||||
V=\psi_{qq}v+\psi_{qt},\qquad
|
||||
H=\psi_{qq}a+D^3\Psi[\,\cdot,W_{ext},W_{ext}].
|
||||
\]
|
||||
|
||||
Unknown `d=(delta p,delta z,delta vz,delta az)`의 **물리 단위** block은
|
||||
|
||||
\[
|
||||
K_{aug}=\begin{bmatrix}
|
||||
L_p^T(K_q+c_vK_v+c_aM)L_p&L_p^TK_qL_z&L_p^TK_vL_z&L_p^TML_z\\
|
||||
CL_p&CL_z&0&0\\
|
||||
(V+c_vC)L_p&VL_z&CL_z&0\\
|
||||
(H+2c_vV+c_aC)L_p&HL_z&2VL_z&CL_z
|
||||
\end{bmatrix}. \tag{FB-05}
|
||||
\]
|
||||
|
||||
Actual Newton trial은 graph/rate를 먼저 복구하므로 production solve RHS는
|
||||
`baug=(-Ep,0,0,0)`인 기존 tangent-on-graph 정책이다. 측정된 hidden roundoff를
|
||||
production auxiliary RHS에 넣어 endpoint를 polishing하지 않는다. N7 fresh full
|
||||
defect RHS는 별도로 `(-Ep,-psi0,-psi1,-psi2)`를 모두 포함한다.
|
||||
|
||||
N1의 `D=diag(ell I3,I3)`와 channel metadata에서
|
||||
`Dp=diag(ell for U,1 for angular)`를 정의한다. z는 rotational rad이고
|
||||
|
||||
\[
|
||||
S_x=\operatorname{diag}(D_p,I,h^{-1}I,h^{-2}I),\quad
|
||||
S_r=\operatorname{diag}(D_p,I,hI,h^2I),
|
||||
\]
|
||||
\[
|
||||
\widehat K=S_rK_{aug}S_x,\quad \widehat b=S_rb_{aug},\quad
|
||||
\widehat d=S_x^{-1}d,\quad \widehat K\widehat d=\widehat b. \tag{FB-06}
|
||||
\]
|
||||
|
||||
Scaled row units는 모두 energy다. First physical row는 N1의 virtual-work
|
||||
scale이고 hidden1/2 행은 각각 h/h²를 곱한다. Scaled auxiliary unknowns는
|
||||
`delta z,h delta vz,h² delta az`다. h/ell은 finite positive여야 하며 nonzero
|
||||
scale underflow/overflow는 실패다. 역변환 `d=Sx dhat` 후 다음 map을 적용한다.
|
||||
별도 adaptive equilibration/floor를 도입하지 않는다.
|
||||
|
||||
\[
|
||||
\delta q=L_p\delta p+L_z\delta z,\quad
|
||||
\delta v=L_pc_v\delta p+L_z\delta v_z,\quad
|
||||
\delta a=L_pc_a\delta p+L_z\delta a_z,
|
||||
\]
|
||||
\[
|
||||
\delta Ar=\delta p/(\beta h^2),\quad
|
||||
\delta A_{full}=(1+\alpha)\delta a. \tag{FB-07}
|
||||
\]
|
||||
|
||||
N2-L의 분자/분모는 **실제로 factor/solve한 operator**에서
|
||||
`||Khat dhat-bhat||inf / || |Khat||dhat|+|bhat| ||inf`, 원 `1e-12`다.
|
||||
대조 시점의 read-only source augmented assembly/solve는 raw `Kaug,baug`를 전달하고
|
||||
explicit FB-06이 없다. Raw 검산 evidence는 FB-06 scaled 검산의 증거가 아니다.
|
||||
FB-06은 승인된 scaled-operator 계약의 동등 representation으로 구현하며 actual
|
||||
scaling/undo를 source 및 focused evidence로 닫아야 한다. Full physical N2 residual/correction은 기존 global
|
||||
free channels에서 FB-07로 평가하며 selector `Ep`만으로 endpoint를 통과시키지 않는다.
|
||||
|
||||
ADR-017 restricted operator는 **actual scaled** `Khat[J,J]`이며 J에는 angular p와
|
||||
모든 z/vz/az 및 hidden rows를 보존한다. Omitted U unknown은 exact0으로 embed하고
|
||||
scale undo한다. Metadata를 trigger/copy/thaw/CA/N7가 공통으로 사용한다.
|
||||
Trigger의 initial explicit correction0, U 네 mapped metric/private-Ar gate,
|
||||
phi residual 실패, U thaw, combined100과 failure rollback은 원 계약 그대로다.
|
||||
|
||||
## 5. 초기화·시간 update·표현 evidence
|
||||
|
||||
Frame0의 independently initialized full `q0/v0/a0/A0`, force와 accepted frame는
|
||||
원본 그대로 보존한다. Private initialization은
|
||||
`p0=Lp^T q0`, `z0=Lz^T q0`, `vp0=Lp^T v0`, `ap0=Lp^T a0`, `Ar0=ap0`이며
|
||||
`Lz^T v0/Lz^T a0`는 rate roundtrip evidence에도 사용한다. 이 projection은 private
|
||||
좌표 표현 변환이다. Lift/reconstructed state를 original frame0에 덮어쓰거나
|
||||
초기 acceleration/force를 보정하는 projection은 금지한다.
|
||||
|
||||
공개 `q0=v0=0`에서는 원 exact q/v 초기 검사·constrained0이 그대로 성립하며
|
||||
이 exact gate를 유지한다.
|
||||
비영 q0/v0의 private fixture는 basis product/sum과 roundtrip defect/radius를
|
||||
별도로 기록하며 새 공개 initial-condition 지원이나 arbitrary roundtrip tolerance를
|
||||
추론하지 않는다. Original 및 reconstructed a0의 full N2, hidden0/1/2, G와
|
||||
moving-null/range evidence를 각각 검사한다. Independent solves가 bitwise 같은
|
||||
a0를 반환한다고 가정하지 않는다. 기존 gate 실패는 fail-closed다.
|
||||
|
||||
이력은 private `(p,vp,ap,Ar,z_seed)`이고 `s=beta h²`, `r=gamma h`, `k=1+alpha`로
|
||||
|
||||
\[
|
||||
p_{pred}=p_n+h v_{p,n}+h^2(1/2-\beta)Ar_n,\quad
|
||||
v_{pred}=v_{p,n}+h(1-\gamma)Ar_n,
|
||||
\]
|
||||
\[
|
||||
Ar_{n+1}=k a_{p,n+1}-\alpha a_{p,n},\quad
|
||||
v_p=v_{pred}+rAr,\quad a_p=(Ar+\alpha a_{p,n})/k. \tag{FB-08}
|
||||
\]
|
||||
|
||||
Production carried-Ar update는 `delta Ar=delta p/s`를 실제 가산한다.
|
||||
Graph/rates는 갱신된 p와 같은 endpoint 시간에서 매 trial 재평가하고 FB-04로 full
|
||||
q/v/a를 복구한다. z/vz/az corrections는 same-trial 보조변수이며 독립 history가 아니다.
|
||||
Public `Afull=k a-alpha a_old` (`Afull0=a0`)는 full-chart diagnostic filter이며
|
||||
private Ar나 `Lp Ar`를 대입하지 않는다. State/history/recovery는 검증 후 함께 commit한다.
|
||||
첫 predictor/old-p 시작 비교와 genuine geometry failure 제한 fallback도 유지한다.
|
||||
Accepted private p/vp/ap/Ar를 매 increment full q/v/a에 재투영하여 생성하지 않는다.
|
||||
Initial 한 번의 projection과 이후 private history recurrence는 다른 연산이다.
|
||||
|
||||
N3 private p pair는 actual `(p_high+p_low)-old_accepted_high`의 whole/requested
|
||||
increment를 EFT로 검사한다. Old accepted low를 암묵적으로 history에 더하지 않는다.
|
||||
Absolute private 검사는 `p_high≈p_pred+s Ar`, `vp≈v_pred+r Ar`,
|
||||
`k ap≈Ar+alpha ap_old`다. Pair의 whole 우변은
|
||||
`h vp_old+h²(.5-beta)Ar_old+s Ar`이며 scale는 이 세 항의 절댓값 합이다.
|
||||
Requested 우변은 actual start-offset/각 correction의 independent trace sum과
|
||||
compensation이며 scale는 trace 원 항의 상쇄 전 절댓값 합이다.
|
||||
Global lift 검사는 `q≈Lp p_high+Lz z`, `v≈Lp vp+Lz zv`,
|
||||
`a≈Lp ap+Lz za`의 actual product/sum이다. 모든 global phi에
|
||||
`q=q_pred+s Afull`을 강제하지 않는다. Dependent z에는 그 Newmark 식이 적용되지 않는다.
|
||||
Private high는 pair의 RN-even인지 별도로 검사한다. Global q는 sparse lift의
|
||||
product/sum 결과이며 plane coordinate high를 public global component와 동일시하지
|
||||
않는다. Global reconstruction absolute defect, actual full A filter identity,
|
||||
constrained exact0, 원 uncancelled scale/`1e-12`/scale0 exact-zero를 각각 보존한다.
|
||||
Pair low를 global state에 새로 주입하는 운용은 추가하지 않는다.
|
||||
|
||||
보정의 기존 private-Ar consistency는 `k delta ap`와 `delta Ar`를 원
|
||||
`1e-12`/`|delta Ar|` 및 scale0 exact-zero로 검사한다. Component chart의 기존
|
||||
mapped full-A consistency도 보존한다. 추가 basis-lift consistency는
|
||||
`Lp^T delta Afull`과 `delta Ar`를 비교한다.
|
||||
각 p열 i에서 분자는 `|sum_j Lp[j,i]*delta Afull[j]-delta Ar[i]|`이고 분모는
|
||||
`sum_j |Lp[j,i]*delta Afull[j]|+|delta Ar[i]|`다. 원 `1e-12`, finite-first,
|
||||
scale0 exact-zero를 적용한다. 먼저 상쇄한 projection을 분모로 사용하지 않는다.
|
||||
이 추가 검사는 rounded Gram leakage를 포함하며 identity column에서도 분모가
|
||||
기존 private gate와 다르므로 기존 gate의 동일 표현이나 대체로 해석하지 않는다. 별도로 실제
|
||||
`delta Ar=delta p/(beta h²)` recurrence, FB-07의 global mapped delta A 및
|
||||
`delta ap=ca delta p`, `k delta ap=delta Ar`, FB-08/full-A absolute update 검사를
|
||||
유지한다. Private recurrence에 `Lp^T full delta a`를 새 exact-zero 요구값으로
|
||||
사용하지 않는다. Algebraic leakage가 섞이는 projection과 private rate는 다르다.
|
||||
하나의 검사로 다른 검사를 대신하지 않는다.
|
||||
|
||||
CA는 [기존 primitive radius](formulation-carried-a-noise.md)를 따라 actual initial
|
||||
projection, basis 구성계수의 측정오차, 각 sparse product/sum, predictor/seed,
|
||||
모든 correction 가산, graph/rate/full-A 재구성과 history 상속을 추적한다.
|
||||
Bound 자체의 rounding도 보수적으로 포함한다. Stored basis를 exact input으로
|
||||
고정한 CA와 ideal analytic basis의 차이는 별도 증거이며 전자만으로 후자를
|
||||
인증하지 않는다. Basis coefficient uncertainty를 매 step0으로 reset하지 않는다.
|
||||
Graph/primitive assembly 산술 INDICATOR와 fixed-operation-path history bound도
|
||||
구분한다. Restricted U는 high/low/Ar/vp/ap·trace·radius를 bitwise copy하고
|
||||
zero 보정 EFT/Neumaier를 호출하지 않는다. Inherited U radius는 downstream
|
||||
graph/rates에 남는다. Index-only radius의 과거 증명이나 frozen-step bound를
|
||||
새 whole-history 증명으로 승계하지 않는다.
|
||||
|
||||
### 5.1 고정 basis coefficient radius의 실행 계약
|
||||
|
||||
실용적인 certificate의 입력은 frame0에서 이미 계산된 actual analytic
|
||||
`drill_null`의 세 binary64 값이다. 이 입력은 exact로 고정하여 `Braw=0`으로
|
||||
시작한다. 비교 대상은 **그 저장된 입력에 FB-02를 exact arithmetic으로 적용한
|
||||
기저**다. 전체 FE/AD/kinematics가 이상적인 real-input null을 얼마나 정확하게
|
||||
계산했는지의 rigorous bound를 주장하지 않는다. 그런 입력 radius가 별도 근거로
|
||||
주어지면 아래 `Bx`에 상속할 수 있지만 새 public API나 필수 지원범위를 만들지 않는다.
|
||||
|
||||
Normalize에 필요한 norm은 production/controller가 동일한 명시적 연산으로
|
||||
계산한다. `hat`은 actual rounded value, `B`는 같은 fixed-path exact target의
|
||||
component radius다. 세 성분에서
|
||||
|
||||
\[
|
||||
m=\max_c|\hat x_c|>0,\quad
|
||||
\hat y_c=fl(\hat x_c/m),\quad
|
||||
\hat s=fl(fl(fl(\hat y_0^2)+fl(\hat y_1^2))+fl(\hat y_2^2)),
|
||||
\]
|
||||
\[
|
||||
\hat r=fl(\sqrt{\hat s}),\qquad \widehat{norm}=fl(m\hat r). \tag{FB-CA-01}
|
||||
\]
|
||||
|
||||
m은 이 replay에서 선택한 exact binary64 scale로 고정하여 `Bm=0`으로 둔다.
|
||||
변동된 ideal x에도 같은 positive m을 사용하는 scaled norm의 수학적 값은
|
||||
`||x||2`이므로 max branch의 perturbation 미분은 필요 없다. 각 division/product/sum의
|
||||
radius는 CA-03으로 순서대로 전파한다. Finite positive m·norm, `hat s-Bs>0`을
|
||||
요구하며 floor나 fallback norm을 넣지 않는다. Absolute value/max는 유한한 stored
|
||||
입력의 exact branch operation이다. Product 자체는 `pow` 대신 실제 multiply다.
|
||||
|
||||
Sqrt는 확인된 실행환경의 correctly-rounded IEEE operation으로 취급한다.
|
||||
`epsilon_r=rho(hat r)`는 CA-02의 실제 sqrt rounding bound다. 보수적인 간단한 식은
|
||||
|
||||
\[
|
||||
d_{sqrt}=\hat r-\epsilon_r>0,\qquad
|
||||
B_r\le B_s/d_{sqrt}+\epsilon_r,\qquad
|
||||
B_{norm}\le |m|B_r+\rho(\widehat{norm}). \tag{FB-CA-02}
|
||||
\]
|
||||
|
||||
이는 `|sqrt(s*)-sqrt(hat s)|=|s*-hat s|/(sqrt(s*)+sqrt(hat s))` 및
|
||||
`sqrt(hat s)>=hat r-epsilon_r`의 보수적 bound다. Denominator는 lower enclosure,
|
||||
분자와 최종 radius는 upper enclosure로 계산하여 radius 산술 자체의 rounding을
|
||||
포함한다. 더 날카로운 denominator를 쓰려면 두 sqrt의 검증된 lower enclosure가
|
||||
필요하다. FTZ/DAZ 또는 subnormal sqrt/product를 지원할 때는 원 CA-02의 eta와
|
||||
실제 실행 의미를 확인한다. 확인되지 않은 연산의 `1u` 오차를 가정하지 않는다.
|
||||
기존 opaque `std::hypot`를 유지한다면 그 실제 norm의 독립 enclosure가 필요하며,
|
||||
FB-CA-01의 radius를 다른 hypot 연산 경로의 증거로 승계하지 않는다.
|
||||
|
||||
계수 생성은 actual FB-02의 순서를 그대로 replay한다: `n=raw/norm(raw)`,
|
||||
선택된 k에서 `b_c=e_k[c]-n_k*n_c`, `t1=b/norm(b)`,
|
||||
`t2_c=n_i*t1_j-n_j*t1_i` (cyclic c,i,j)다. `e_k`의0/1은 exact 입력이고,
|
||||
division은 `|hat denominator|-Bdenominator>0`을 요구한다. 각 operation의
|
||||
CA-03과 FB-CA-01/02로 얻는 radius를 `BLp[c,i]`, `BLz[c]`로 보존한다.
|
||||
FMA를 실제 사용하면 multiply/add 둘의 임의 replay 대신 그 actual fused operation의
|
||||
rounding contract를 사용한다. 선택된 k와 tie/source order는 고정 path metadata다.
|
||||
Exact target도 같은 k를 사용하며 다른 ideal min-axis branch의 민감도는 이
|
||||
certificate 범위 밖이다. 전체 initial Gram/finite gate는 별도로 유지한다.
|
||||
|
||||
각 sparse basis action의 product `hat w=fl(hat L*hat p)`에서
|
||||
|
||||
\[
|
||||
B_w\le |\hat L|B_p+|\hat p|B_L+B_LB_p+\rho(\hat w) \tag{FB-CA-03}
|
||||
\]
|
||||
|
||||
를 적용하고 actual canonical sum 또는 compensated sum의 모든 연산 radius를
|
||||
누적한다. Initial projection `Lp^T q0/Lz^T q0/Lp^T v0/Lp^T a0`, global lift,
|
||||
mapped correction 및 rate reconstruction에서 같은 coefficient와 BL을 사용한다.
|
||||
`BL`은 불변 basis와 함께 history 전체에 보존하며 step 시작에0으로 재설정하지 않는다.
|
||||
`hat L=0`이어도 `BL>0`이면 `|hat p|BL` 항이 남으므로 해당 coefficient의 radius
|
||||
support를 버리지 않는다. 기존 identity component 열의 exact0/1 coefficient는 `BL=0`이다.
|
||||
Constrained rows는 실제 basis support 밖의 exact0이며 불필요한 rounding radius를
|
||||
만들지 않는다. Basis construction certificate, graph arithmetic INDICATOR,
|
||||
solve noise 및 whole-history recurrence certificate는 서로 다른 증거다.
|
||||
|
||||
구현 검산은 stored binary64 raw input과 actual selected branch/operation 순서에 대한
|
||||
독립 고정밀 또는 interval replay로 coefficient마다 `|hat L-L*|<=BL`을 확인한다.
|
||||
Nonzero phi null, min-axis tie, 작은/큰 norm scale, coefficient0의 nonzero BL,
|
||||
projection/lift 및 inherited radius omission을 포함한다. 이 검산은 생산 state나
|
||||
원 reference를 수정하는 polishing이 아니다.
|
||||
|
||||
고정 basis radius는 graph contraction과 solve에도 전달한다. 이 경로의 정확한
|
||||
scope는 endpoint에서 저장된 `C=psi_q`, Hessian/time/third 계수를 exact input으로
|
||||
고정한 **fixed-operator arithmetic indicator**다. C/AD 자체의 ideal input 오차나
|
||||
nonlinear graph/root의 전체 forward error를 엄밀히 포함한다고 주장하지 않는다.
|
||||
그 scope 안에서는 다음 linear solve radius를 검증된 bound로 구성할 수 있다.
|
||||
|
||||
각 entry의 `G=C Lz`, `P=C Lp` product/sum은 FB-CA-03으로 계산한다.
|
||||
Stored C 계수에는 `BC=0`을 적용하지만 `BL`과 actual contraction rounding은
|
||||
유지하여 `|G*-hat G|<=BG`, `|P*-hat P|<=BP`를 entrywise로 얻는다.
|
||||
`*`는 같은 stored operator를 ideal fixed basis와 fixed inputs에 적용한 값이다.
|
||||
Initial rate partition, `P vp/P ap`, first/second/third implicit derivative,
|
||||
rate reconstruction의 반복 contraction마다 같은 inherited BL/BG/BP를 사용한다.
|
||||
RHS의 `P vp`에는 `|hat P|Bvp+|hat vp|BP+BP Bvp`와 actual product/sum rounding을
|
||||
포함한다. Hessian/time contraction도 저장된 계수는 고정하되 이미 얻은 v/a 등의
|
||||
input radius와 실제 product/sum을 전파한다. C를 고정한다는 scope가 basis product
|
||||
radius나 input history radius를0으로 놓는 근거는 아니다.
|
||||
|
||||
실제로 푼 matrix와 RHS를 `hat G,hat b`, computed solution을 `hat x`로 둔다.
|
||||
Small private verification chart에서는 다음 inverse-action certificate를 구성한다.
|
||||
각 canonical unit RHS의 actual solve로 얻은 approximate inverse columns를 R에
|
||||
보존하며 기존 finite/N2-L 검사를 유지한다. **R은 exact inverse가 아니다.**
|
||||
R의 stored entries를 exact inputs로 보아 `I-hat G R`의 각 product/sum을 replay하고,
|
||||
반올림을 포함하는 nonnegative enclosure와 norm을 계산한다.
|
||||
|
||||
\[
|
||||
\overline H\ge|I-\hat G R|,\quad
|
||||
\theta_H=\|\overline H\|_\infty<1,\quad
|
||||
c=|R|\overline H\mathbf1,
|
||||
\]
|
||||
\[
|
||||
Q_{ij}=|R_{ij}|+c_i/(1-\theta_H)
|
||||
\quad\Longrightarrow\quad Q\ge|\hat G^{-1}|. \tag{FB-CA-04}
|
||||
\]
|
||||
|
||||
이는 `H=I-hat G R`, `hat G^-1=R(I-H)^-1=R sum_(k>=0) H^k`의 Neumann
|
||||
bound다. `thetaH<1`은 center G의 invertibility도 인증한다. 각 inverse entry의
|
||||
tail은 `( |R| Hbar 1 )_i/(1-thetaH)` 이하이므로 computed R의 forward accuracy를
|
||||
별도로 가정하지 않는다. Q 산술은 upper enclosure, `1-thetaH`는 positive lower
|
||||
enclosure로 계산한다. 보통 N2-L을 통과한 small inverse-action이면 tail이 작지만
|
||||
N2-L PASS 자체를 이 certificate의 대체로 사용하지 않는다.
|
||||
|
||||
RHS에 `|b*-hat b|<=Bb`가 있고 matrix uncertainty가 BG일 때 actual stored x에
|
||||
대한 residual도 actual product/sum rounding을 포함해 검산한다.
|
||||
Bb는 실제 RHS의 P/input/time/Hessian contraction replay에서 얻으며 이미
|
||||
상쇄된 최종 RHS의 크기만으로 추정하지 않는다. Center residual은 stored G/b/x를
|
||||
exact inputs로 둔 `rhat=fl(bhat-Ghat xhat)`의 실제 연산 replay에서 Br를 얻어
|
||||
`rbar_i=|rhat_i|+Br_i`로 계산한다. Product·각 sum/compensation의 상쇄 전 rounding
|
||||
항을 유지하며 N2-L의 작은 normalized residual을 raw absolute radius로 대신하지 않는다.
|
||||
|
||||
\[
|
||||
\overline r\ge|\hat b-\hat G\hat x|,\quad
|
||||
y=Q(\overline r+B_b+B_G|\hat x|),\quad
|
||||
A=Q B_G,\quad\theta_G=\|A\|_\infty<1,
|
||||
\]
|
||||
\[
|
||||
B_{x,i}=y_i+(A\mathbf1)_i\,\|y\|_\infty/(1-\theta_G)
|
||||
\quad\Longrightarrow\quad |x_i^*-\hat x_i|\le B_{x,i}. \tag{FB-CA-05}
|
||||
\]
|
||||
|
||||
실제로 `G* x*=b*`에서 `|x*-hat x|<=y+A|x*-hat x|`가 성립하고,
|
||||
그 infinity norm은 `||y||inf/(1-thetaG)` 이하이므로 위 component bound가 따른다.
|
||||
모든 component에 이 uniform norm을 적용해도 유효하지만 FB-CA-05는 row별
|
||||
`y_i`와 `A` row sum을 보존한다. Actual linear residual, uncertain basis matrix와
|
||||
RHS radius를 모두 포함하고, `BG|hat x|`나 perturbation feedback A를 누락하지 않는다.
|
||||
이 계산도 finite-first·upper radius·positive lower denominator 규칙을 적용한다.
|
||||
Matrix/unknown scaling을 사용하는 경우 G/R/BG/b/x는 **같은 actual solve 표현**에서
|
||||
계산한 뒤 physical rate radius로 scale undo한다.
|
||||
|
||||
두 `theta<1`은 bound의 수학적 성립조건이며 새 acceptance tolerance가 아니다.
|
||||
Norm의 upper enclosure가1 이상이거나 positive denominator를 증명할 수 없으면
|
||||
indicator certificate는 incomplete/INCONCLUSIVE다. 임의 floor, pseudoinverse,
|
||||
radius0, tolerance 완화로 통과시키지 않는다. 원 G/N4 regularity 및 N2-L gate는
|
||||
그대로이며 일반 production에 새 inverse/R 저장/public API를 요구하지 않는다.
|
||||
C08의 null1/null4 같은 작은 private chart에서 finite dense R/Q를 사용하는 것은 검증 실행의 책임이다.
|
||||
Empty G는 원 empty-null exact branch로 처리한다. 이 frozen-operator bound를
|
||||
전체 nonlinear/AD/branch-sensitive trajectory의 rigorous error bound로 승계하지 않는다.
|
||||
|
||||
## 6. N7과 독립 검증의 함의
|
||||
|
||||
Last full K/RHS와 actual selected K/RHS, actual correction은 같은 trial을 authority로
|
||||
보존한다. Fresh accepted full operator는 별도 authority다. Restricted-last는
|
||||
`eL=KJ dhatJ-bJ`, `KJ zL=-eL`을 zero-U embed하고,
|
||||
`eM=Kfull dhatfull-bfull`, `Kfull zM=-eM`을 omitted-U/hidden 전체 행에서 푼다.
|
||||
Fresh endpoint는 FB-05/06과 `(-Ep,-psi0,-psi1,-psi2)`에서 zN을 푼다.
|
||||
Full-last는 actual correction/zL/zN 세 항, restricted-last는
|
||||
actual correction/zL/zM/zN 네 항이다.
|
||||
|
||||
각 vector는 actual scaling을 undo한 뒤 FB-07로 q/v/a/Ar/A에 sparse map하고,
|
||||
원 length/time/case amplitude와 global channel/node에서 각 norm을 **먼저** 구한
|
||||
뒤 합한다. 다른 vector를 상쇄한 뒤 norm을 구하지 않는다. Full-last에서 zM=zL을
|
||||
이중 계산하지 않는다. 모든 defect solve에 각 actual domain의 finite/N2-L을 요구하며
|
||||
full defect solve 실패를 restricted 성공으로 대신하지 않는다. Read-only 해를 state에
|
||||
적용하지 않는다. Factor100·FAIL/INCONCLUSIVE와 grid간 radius 합산을 유지하고,
|
||||
보수성 때문에 factor100을 만족하지 못해도 항을 삭제하거나 clamp하지 않는다.
|
||||
|
||||
독립 검증에 필요한 새 경계는 다음과 같다.
|
||||
|
||||
- Nonzero initial analytic null, minimum-axis tie, ON Gram, constant O(2)
|
||||
frame transition, sparse projection/lift/transpose action과 exact constrained0.
|
||||
- 독립 소형 dense 계산과 FB-05/06/07 전체 block 비교, actual scale undo,
|
||||
mixed-time third 항, G와 `N^T Lz`/S를 각각 퇴화시키는 사례, partial-BC rank-change 거부.
|
||||
- Frame0 원본 보전, private pair/RN-even와 global reconstruction의 구분,
|
||||
basis product/sum omission mutation, CA 초기 projection/history/rate-copy 대응.
|
||||
- Actual N7 aggregator의 전체 auxiliary/omitted-U defect omission mutation,
|
||||
full-last 세 항/restricted-last 네 항, trigger/thaw/combined100/rollback.
|
||||
- Genuine nonzero-C1/warped/shared-node N5, 자연 C09 전체 trajectory/proper-Q/결정론,
|
||||
2/4/8-step 진단, C08a7/C08b8 원 grid/hidden/physical q-v-a/P-E-L/N7,
|
||||
configured full Debug/CTest와 원101-frame reference. 실행은 fresh source identity에 연결한다.
|
||||
|
||||
남은 증거: actual diagonal scaling, 비영 private 초기상태 roundtrip 운용,
|
||||
새 basis coefficient CA, condition/transversality 실측 및 전체 runtime 항목은
|
||||
implementation owner와 독립 review가 확인한다. 새 tolerance/physics/schema/reference
|
||||
변경은 정하지 않았다. Empty null은 원 full-coordinate HHT로, all-fixed는 empty
|
||||
free solve와 원 full reaction으로 환원한다. 문서 정적 대조만 수행했으며
|
||||
build/test·외부 solver는 실행하지 않았다.
|
||||
Reference in New Issue
Block a user