Kronecker-packed kernel checker #
A polynomial in t₀, …, t₄ with every exponent ≤ 2 is stored as the integer obtained by
evaluating it at tᵢ = 2^(W·3ⁱ). This is a ring homomorphism, so polynomial arithmetic is a
handful of big-integer operations, which the kernel evaluates with GMP. Coefficient statistics
(constant term, sums of absolute values over a set of monomials) are read off with masks:
after adding the offset 2^(W-1) to every slot, slot j holds coeff_j + 2^(W-1), its top
bit is the sign, and a horizontal sum of slots is a remainder modulo 2^W - 1.
Layouts #
Layout L3: tᵢ = 2^(PW·3ⁱ) (243 slots, exponents ≤ 2). Layout L5: t₀ = 2^PW,
t₁ = 2^(5PW), t₂, t₃, t₄ = 2^(25PW), 2^(75PW), 2^(225PW) (675 slots, exponents ≤ 4 in
t₀, t₁ and ≤ 2 in the others).
1 + y + y² + y³ + y⁴ and 1 + y² + y⁴.
Equations
- Cayley.K.geo5 y = ((y.mul y).mul (Cayley.K.geo3 y)).add (Nat.add 1 y)
Instances For
Equations
- Cayley.K.ev5 y = Nat.add 1 ((y.mul y).mul (Cayley.K.ev3 y))
Instances For
Slot indicators (Σ 2^(PW j) over all slots, and over the all-even monomials).
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Lower bound of a packed polynomial on [-1,1]⁵.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Bernstein coefficients (layout L3) #
On [-1,1] the quadratic Bernstein coefficients of a₀ + a₁t + a₂t² are
(a₀ − a₁ + a₂, a₀ − a₂, a₀ + a₁ + a₂); baxis i applies this along variable i to every
slot, and a polynomial is at least its least Bernstein coefficient. The transform works on the
offset encoding (every slot holds coeff + 2^(PW-1)) in Nat arithmetic only, which the
kernel evaluates much faster than Int.
Slot indicator of the slots whose digit i is 0.
Equations
Instances For
The Bernstein transform along variable i of an offset-encoded packed polynomial.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Bernstein coefficients of an offset-encoded packed polynomial.
Equations
- Cayley.K.bern3 N = Cayley.K.baxis 4 (Cayley.K.baxis 3 (Cayley.K.baxis 2 (Cayley.K.baxis 1 (Cayley.K.baxis 0 N))))
Instances For
Every Bernstein coefficient of the packed polynomial P is at least m.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The per-box polynomials of a gap leaf, over any arithmetic: α₀, α₁, α₂ (outer rows,
weighted by w), β = M N(r) S, κD, and the paired inner vector L (blown-up charts).
- a0 : R
- a1 : R
- a2 : R
- b0 : R
- b1 : R
- b2 : R
- kd : R
- l0 : R
- l1 : R
- l2 : R
Instances For
M_j v; the Klein charts are sign flips.
Equations
- One or more equations did not get rendered due to their size.
- Cayley.K.gChart sub mul c add 0 y0 y1 y2 = (y0, y1, y2)
- Cayley.K.gChart sub mul c add 1 y0 y1 y2 = (y0, sub (c 0) y1, sub (c 0) y2)
- Cayley.K.gChart sub mul c add 2 y0 y1 y2 = (sub (c 0) y0, y1, sub (c 0) y2)
- Cayley.K.gChart sub mul c add 3 y0 y1 y2 = (sub (c 0) y0, sub (c 0) y1, y2)
Instances For
The gap-leaf polynomials, generic in the arithmetic (x i is the variable tᵢ), with the
box data (scale U, centres cc, radii hh), the inner vertex and the direction as inputs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The gap-leaf data in packed integers.
Equations
- Cayley.K.pGapData b S w0 w1 = Cayley.K.gapGen Int.add Int.sub Int.mul (fun (z : Int) => z) (fun (i : Fin 5) => Cayley.K.pX ↑i) b S w0 w1
Instances For
The norm guard of a gap leaf: the box scale and the direction are small enough that the
coefficient norms of every polynomial the leaf decodes stay below 2^390 (proved once, on the
worst box, in Cayley.Pack.gapNrmOK_worst).
Instances For
The gap leaf #
The error allowance of a gap leaf (for A) and of the paired test (for L).
Equations
- Cayley.K.gErr b w0 w1 = 128 * Cayley.K.chartKI b.chart * (↑w0.natAbs + ↑w1.natAbs) * Cayley.K.p2 (Cayley.K.gapSc b + 100)
Instances For
Equations
- Cayley.K.gErrL b w0 w1 = 128 * Cayley.K.chartKI b.chart * (↑w0.natAbs + ↑w1.natAbs) * Cayley.K.p2 (Cayley.K.gapScL b + 100)
Instances For
Vertex s, read from the packed tables (cheaper in the kernel than indexing vtxI).
Equations
- Cayley.K.vS s = (Cayley.K.slot Cayley.K.tpx s - ↑(2 ^ 170), Cayley.K.slot Cayley.K.tpy s - ↑(2 ^ 170), Cayley.K.slot Cayley.K.tpz s - ↑(2 ^ 170))
Instances For
The quick test's constant part c₀(A) − slack(A) − err, and the statistics of Eₖ.
Equations
- Cayley.K.quickQ b S w0 w1 = (Cayley.K.pStats (Cayley.K.gA (Cayley.K.pGapData b S w0 w1))).c0 - ↑(Cayley.K.pStats (Cayley.K.gA (Cayley.K.pGapData b S w0 w1))).slack - Cayley.K.gErr b w0 w1
Instances For
The packed quick-test number: slot t is 2^639 + quick_T when the packing bounds hold.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Domain leaves #
A 3×3 matrix of polynomials and a scalar.
- n00 : R
- n01 : R
- n02 : R
- n10 : R
- n11 : R
- n12 : R
- n20 : R
- n21 : R
- n22 : R
- d : R
Instances For
The scale R² of N (U⁴ blown up, U² plain).
Equations
- Cayley.K.numSc b = if b.chart = 0 ∨ b.chart = 4 then Cayley.K.p2 b.K * Cayley.K.p2 b.K * (Cayley.K.p2 b.K * Cayley.K.p2 b.K) else Cayley.K.p2 b.K * Cayley.K.p2 b.K
Instances For
C = M_a · 2^80 R̂z(g)ᵀ (integer).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Σ_ab H_ab W_ab.
Equations
- One or more equations did not get rendered due to their size.
Instances For
H = N_oᵀ diag(-1,-1,1) N_o for the outer numerator N_o = N(v, -u, 0)·U².
Equations
- One or more equations did not get rendered due to their size.
Instances For
The norm guard of a domain polynomial (the Nat instance).
Equations
- Cayley.K.chartNrmOK b k = (Cayley.K.chartGen Nat.add Nat.add Nat.mul Int.natAbs (fun (x : Fin 5) => 1) b k).blt (2 ^ 399)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Kernel chart test: chart k beats the box's chart j on the whole box.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The orbit-test error allowance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Kernel orbit test: the orbit element H^e Q ĝ_g (score base a) beats Q.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Packed kernel domain leaf.
Equations
- One or more equations did not get rendered due to their size.