Raising a power to another power multiplies the two exponents.
Natural powers of a nonzero element stay nonzero in every nontrivial exact-division ring.
The executable binary power agrees with the lightweight semiring power.
The executable natural power of a nonzero element stays nonzero.
Brown's scalar update x^n / y^(n-1), with the same total zero behavior
as exactDiv.
Equations
- Hex.divExp x y n = Hex.exactDiv (Hex.powNat x n) (Hex.powNat y (n - 1))
Instances For
A nonzero scalar does not change the normalized dense size.
Scaling a nonzero polynomial by a nonzero coefficient remains nonzero.
The leading coefficient scales with a nonzero coefficient scalar.
Divide every coefficient by the same scalar.
Kernel-facing specification: one map over the coefficient list. Compiled code
runs the Array.map pass divScalarImpl via divScalar_eq_impl.
Equations
Instances For
Runtime array implementation of coefficientwise exact scalar division.
Equations
- p.divScalarImpl b = if b = 0 then 0 else Hex.DensePoly.ofCoeffs (Array.map (fun (a : R) => a / b) p.toArray)
Instances For
The list specification and array implementation of scalar division agree.
Coefficientwise scalar division cannot increase the stored polynomial size.
Register the array pass as the compiled scalar-division implementation.
Coefficient law for exact scalar division by a nonzero factor.
Exact scalar division undoes scalar multiplication by a nonzero factor.
Scaling by a nonzero coefficient is cancellable.
Exact coefficient division lifts recursively to exact dense-polynomial division, including nonunit constants and nonmonic polynomial factors.