The short Weierstrass curve y² = x³ + a x + b over a commutative ring R,
represented as a WeierstrassCurve with a₁ = a₂ = a₃ = 0, a₄ = a and a₆ = b.
Instances For
The Δ invariant of the short Weierstrass curve y² = x³ + a x + b equals
-16 (4 a³ + 27 b²).
The short Weierstrass curve over ℤ determined by params.
Instances For
The discriminant 4 a³ + 27 b² of the ECM curve defined by params.
Instances For
By construction, the chosen point (x₀, y₀) satisfies the affine Weierstrass
equation of params.curve.
Reduce the ECM curve modulo a prime p, viewing it as an affine curve over ZMod p.
Instances For
The exponent e such that ℓ^{e-1} ≤ (√M + 1)² < ℓ^e, as used by ECM
to ensure every smooth order ≤ (√M + 1)² divides the scaled scalar.
Instances For
Lower-bound side of the defining property: ℓ^{e-1} ≤ (√M + 1)² for e = ecmSmoothExponent ℓ M.
Strict upper-bound side: (√M + 1)² < ℓ^e for e = ecmSmoothExponent ℓ M.
Partial ECM scalar accumulated up to and including the prime ℓ₁: the product
∏_{ℓ ≤ ℓ₁ prime} ℓ^{ecmSmoothExponent ℓ M}.
Instances For
The ECM scalar ecmSmoothScalar B M is strictly positive.
The partial ECM scalar ecmPartialScalar ℓ₁ M is strictly positive.
The ECM scalar ecmSmoothScalar B M is itself B-smooth: all of its prime
factors are strictly less than B.
The partial ECM scalar ecmPartialScalar ℓ₁ M is (ℓ₁ + 1)-smooth: all of its
prime factors are at most ℓ₁.
The p-adic valuation of a positive integer is bounded by log_p n.
Each prime power factor p^{ecmSmoothExponent p M} (with p < B prime) divides
the ECM scalar ecmSmoothScalar B M.
Each prime power factor p^{ecmSmoothExponent p M} (with p ≤ ℓ₁ prime) divides
the partial ECM scalar ecmPartialScalar ℓ₁ M.
Key divisibility property: every nonzero B-smooth integer n ≤ (√M + 1)² divides
the ECM scalar ecmSmoothScalar B M.
Partial analogue: every nonzero (ℓ₁ + 1)-smooth integer n ≤ (√M + 1)² divides
the partial ECM scalar ecmPartialScalar ℓ₁ M.
ECMResult.isSuccess is True exactly when the result is a factor, False on failure.
Instances For
Correctness of ECM (Theorem 10.12): assume N has distinct prime divisors p₁, p₂
with p₁ ≤ M, the discriminant is not divisible by N, and reductions P₁ ∈ E(𝔽_{p₁}),
P₂ ∈ E(𝔽_{p₂}) are such that |P₁| is ℓ₁-smooth (with |P₁| ≤ (√p₁ + 1)²) but
|P₂| is not. Then the partial scalar kills P₁ modulo p₁ while leaving P₂
nonzero modulo p₂, so the gcd step exposes a nontrivial factor of N.