graph TD P[Polynomial Root-Finding] --> AB["Aberth-Ehrlich ๐\noperates on complex roots"] P --> BS["Bairstow / PAID โ๏ธ\noperates on quadratic factors"] AB --> ABJ["Jacobi: frozen state\norder-independent"] AB --> ABG["Gauss-Seidel: live state\norder-dependent"] BS --> BSJ["Jacobi (_mt): frozen snapshot\norder-independent"] BS --> BSG["Gauss-Seidel (ST): live array\norder-dependent"] style AB fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style BS fill:#fff3e0,stroke:#e65100,stroke-width:3px style ABJ fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style BSJ fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style ABG fill:#ffcdd2,stroke:#c62828,stroke-width:3px style BSG fill:#ffcdd2,stroke:#c62828,stroke-width:3px
graph LR DOC[order-matter.md experiment] --> MULT["Polynomial Multiplication\nA ร B ร C vs C ร B ร A"] CODE[Actual ginger-rs code] --> SUPP["Sequential 2ร2 solves\nsuppress_old(j1) then suppress_old(j2)"] MULT --> |commutative, trivially| TRIV[~1e-14 diff โ ] SUPP --> |order-dependence?| Q[UNVERIFIED โ] style MULT fill:#fff3e0,stroke:#e65100,stroke-width:3px style SUPP fill:#ffcdd2,stroke:#c62828,stroke-width:3px style TRIV fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style Q fill:#ffcdd2,stroke:#c62828,stroke-width:3px
graph TD subgraph GS["Gauss-Seidel (pbairstow_even) โ live"] F0["Factor 0 updated"] --> F1["Factor 1 reads NEW 0"] F1 --> F2["Factor 2 reads NEW 0,1"] end subgraph JC["Jacobi (pbairstow_even_mt) โ frozen"] S["vrsc = snapshot"] --> J0["Job 0 โ snapshot"] S --> J1["Job 1 โ snapshot"] S --> J2["Job 2 โ snapshot"] end style GS fill:#ffcdd2,stroke:#c62828,stroke-width:3px style JC fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px
graph TD Q["Is parallel Bairstow order-independent?"] --> A1["YES for Jacobi/_mt ๐ข"] Q --> A2["NO for Gauss-Seidel/ST ๐ด"] A1 --> B1["bit-identical next state (E3)"] A1 --> B2["suppression exactly commutative (E1)"] A2 --> B3["next-state diff ~ 9.8 (E4)"] A2 --> B4["iteration count varies 6โ10 (E5)"] style A1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style A2 fill:#ffcdd2,stroke:#c62828,stroke-width:3px