Soundness of the packed Bernstein test #
bernGE P m checks that every quadratic Bernstein coefficient of the packed polynomial P
(layout L3) is at least m. On [-1,1]⁵ such a polynomial is a convex combination of its
Bernstein coefficients, so it is at least m there.
Digits of layout L3 #
theorem
Cayley.Pack.sum_fiber
{M : Type u_1}
[AddCommMonoid M]
{i e : ℕ}
(hi : i < 5)
(he : e < 3)
(g : ℕ → M)
:
The slots with digit i equal to e are those with digit 0, shifted.
The coefficient transform #
The Bernstein matrix on [-1,1]: row κ (Bernstein index), column e (power).
Equations
- Cayley.Pack.bM 0 1 = -1
- Cayley.Pack.bM 1 1 = 0
- Cayley.Pack.bM 1 2 = -1
- Cayley.Pack.bM x✝¹ x✝ = 1
Instances For
All five axes.
Equations
- Cayley.Pack.bT c = Cayley.Pack.axT 4 (Cayley.Pack.axT 3 (Cayley.Pack.axT 2 (Cayley.Pack.axT 1 (Cayley.Pack.axT 0 c))))
Instances For
The packed value #
The packed integer with slot coefficients c.
Equations
- Cayley.Pack.pv c = ∑ j ∈ Finset.range 243, c j * 2 ^ (Cayley.K.PW * j)
Instances For
@[reducible, inline]
The offset encoding of slot coefficients c.
Equations
Instances For
Decoding one axis #
theorem
Cayley.Pack.pv_axT
{i : ℕ}
(hi : i < 5)
(c : ℕ → ℤ)
:
pv (axT i c) = ∑ j ∈ Finset.range 243, (if dg i j = 0 then c (j + 0 * 3 ^ i) else 0) * 2 ^ (K.PW * j) - ∑ j ∈ Finset.range 243, (if dg i j = 0 then c (j + 1 * 3 ^ i) else 0) * 2 ^ (K.PW * j) + ∑ j ∈ Finset.range 243, (if dg i j = 0 then c (j + 2 * 3 ^ i) else 0) * 2 ^ (K.PW * j) + 2 ^ (K.PW * 3 ^ i) * (∑ j ∈ Finset.range 243, (if dg i j = 0 then c (j + 0 * 3 ^ i) else 0) * 2 ^ (K.PW * j) - ∑ j ∈ Finset.range 243, (if dg i j = 0 then c (j + 2 * 3 ^ i) else 0) * 2 ^ (K.PW * j)) + 2 ^ (K.PW * 3 ^ i) * 2 ^ (K.PW * 3 ^ i) * (∑ j ∈ Finset.range 243, (if dg i j = 0 then c (j + 0 * 3 ^ i) else 0) * 2 ^ (K.PW * j) + ∑ j ∈ Finset.range 243, (if dg i j = 0 then c (j + 1 * 3 ^ i) else 0) * 2 ^ (K.PW * j) + ∑ j ∈ Finset.range 243, (if dg i j = 0 then c (j + 2 * 3 ^ i) else 0) * 2 ^ (K.PW * j))
The digit-i grouping of pv (axT i c): the three Bernstein combinations of the
digit-0, 1, 2 parts, shifted into place.
All axes and the sign test #
The polynomial is a convex combination of its Bernstein coefficients #
theorem
Cayley.Pack.axis_real
{i : ℕ}
(hi : i < 5)
(c : ℕ → ℤ)
(φ : ℕ → ℕ → ℝ)
(g : ℕ → ℝ)
(hg : ∀ e < 3, ↑(bM 0 e) * g 0 + ↑(bM 1 e) * g 1 + ↑(bM 2 e) * g 2 = φ i e)
:
∑ j ∈ Finset.range 243, ↑(axT i c j) * ∏ a ∈ Finset.range 5, Function.update φ i g a (dg a j) = ∑ j ∈ Finset.range 243, ↑(c j) * ∏ a ∈ Finset.range 5, φ a (dg a j)
The weights after converting the first k axes.
Equations
- Cayley.Pack.φk t k a d = if a < k then Cayley.Pack.bβ d (t a) else t a ^ d
Instances For
theorem
Cayley.Pack.bern_real
(c : ℕ → ℤ)
(t : ℕ → ℝ)
:
∑ j ∈ Finset.range 243, ↑(bT c j) * ∏ a ∈ Finset.range 5, bβ (dg a j) (t a) = ∑ j ∈ Finset.range 243, ↑(c j) * ∏ a ∈ Finset.range 5, t a ^ dg a j