Commit ef0066c
committed
einsum: expression route is now the default for general products
With the strided-scale-path fix in place, the TA_EINSUM_DIFFERENTIAL
audit of c6h14 PNO-CCSD shows the two routes agree except for:
- sub-threshold result tiles that the legacy path implicitly hard-zeroes
(its result shape derives from the harvested tile norms) while the
expression route keeps them (standard estimate-derived contraction
shape). Per the TA screening philosophy, norms are trusted as genuine
and no implicit truncation is performed; users wanting the tighter
shape call truncate() explicitly.
- floating-point summation-order noise in tiny, heavily-cancelling
tensors (absolute tile-norm^2 differences <= 1e-9, no structural
pattern).
Neither is a defect, so general products in einsum now default to the
expression-layer evaluation (TensorProduct::General -> batched Summa:
one task graph in one World, ZERO per-slab sub-Worlds). The legacy path
remains available via TA_EINSUM_LEGACY_SUBWORLD (or
detail::einsum_legacy_subworld()) as the reference implementation for
differential testing.
All suites pass with the new default (einsum suites against their
reference data; the 2 pre-existing assign_subblock_block_base1 failures
are unrelated); np = 1, 2, 3.1 parent 0e04820 commit ef0066c
1 file changed
Lines changed: 15 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
39 | 46 | | |
40 | 47 | | |
41 | 48 | | |
42 | | - | |
43 | | - | |
| 49 | + | |
44 | 50 | | |
45 | 51 | | |
46 | 52 | | |
| |||
0 commit comments