aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/pfo.spad.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra/pfo.spad.pamphlet')
-rw-r--r--src/algebra/pfo.spad.pamphlet18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/algebra/pfo.spad.pamphlet b/src/algebra/pfo.spad.pamphlet
index 493a68e4..5a36f184 100644
--- a/src/algebra/pfo.spad.pamphlet
+++ b/src/algebra/pfo.spad.pamphlet
@@ -190,8 +190,7 @@ PointsOfFiniteOrderRational(UP, UPUP, R): Exports == Implementation where
n := rat(modulus, d, p := getGoodPrime bad)
-- if n > 1 then it is cheaper to compute the order modulo a second prime,
-- since computing n * d could be very expensive
--- one? n => n
- (n = 1) => n
+ one? n => n
m := rat(modulus, d, getGoodPrime(p * bad))
n = m => n
0
@@ -203,8 +202,7 @@ PointsOfFiniteOrderRational(UP, UPUP, R): Exports == Implementation where
-- returns the potential order of d, 0 if d is of infinite order
possibleOrder d ==
--- zero?(genus()) or one?(#(numer ideal d)) => 1
- zero?(genus()) or (#(numer ideal d) = 1) => 1
+ zero?(genus()) or one?(#(numer ideal d)) => 1
r := polyred definingPolynomial()$R
ratcurve(d, r, doubleDisc r)
@@ -447,8 +445,7 @@ PointsOfFiniteOrder(R0, F, UP, UPUP, R): Exports == Implementation where
gf := InnerPrimeField p
m := map(retract(#1)@Z :: gf,
mm)$SparseUnivariatePolynomialFunctions2(Q, gf)
--- one? degree m =>
- (degree m = 1) =>
+ one? degree m =>
alpha := - coefficient(m, 0) / leadingCoefficient m
order(d, pp,
(map(numer(#1)::gf / denom(#1)::gf,
@@ -476,8 +473,7 @@ PointsOfFiniteOrder(R0, F, UP, UPUP, R): Exports == Implementation where
n := rat(pp, d, p := getGoodPrime bad)
-- if n > 1 then it is cheaper to compute the order modulo a second prime,
-- since computing n * d could be very expensive
--- one? n => n
- (n = 1) => n
+ one? n => n
m := rat(pp, d, getGoodPrime(p * bad))
n = m => n
0
@@ -490,8 +486,7 @@ PointsOfFiniteOrder(R0, F, UP, UPUP, R): Exports == Implementation where
-- returns the potential order of d, 0 if d is of infinite order
possibleOrder d ==
--- zero?(genus()) or one?(#(numer ideal d)) => 1
- zero?(genus()) or (#(numer ideal d) = 1) => 1
+ zero?(genus()) or one?(#(numer ideal d)) => 1
empty?(la := alglist d) => ratcurve(d, selIntegers())
not(empty? rest la) =>
error "PFO::possibleOrder: more than 1 algebraic constant"
@@ -548,8 +543,7 @@ PointsOfFiniteOrder(R0, F, UP, UPUP, R): Exports == Implementation where
l := [f.factor for f in factors factor(map(retract(#1)@Z :: gf,
rec.dfpoly)$SparseUnivariatePolynomialFunctions2(Q,
gf))$DistinctDegreeFactorize(gf,
--- SparseUnivariatePolynomial gf) | one?(f.exponent)]
- SparseUnivariatePolynomial gf) | (f.exponent = 1)]
+ SparseUnivariatePolynomial gf) | one?(f.exponent)]
empty? l => "failed"
mdg := first l
for ff in rest l repeat