/usr/share/axiom-20170501/src/algebra/RDIV.spad is in axiom-source 20170501-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | )abbrev package RDIV ReducedDivisor
++ Author: Manuel Bronstein
++ Date Created: 1988
++ Date Last Updated: 8 November 1994
++ Description:
++ Finds the order of a divisor over a finite field
ReducedDivisor(F1, UP, UPUP, R, F2) : SIG == CODE where
F1 : Field
UP : UnivariatePolynomialCategory F1
UPUP : UnivariatePolynomialCategory Fraction UP
R : FunctionFieldCategory(F1, UP, UPUP)
F2 : Join(Finite, Field)
N ==> NonNegativeInteger
FD ==> FiniteDivisor(F1, UP, UPUP, R)
UP2 ==> SparseUnivariatePolynomial F2
UPUP2 ==> SparseUnivariatePolynomial Fraction UP2
SIG ==> with
order : (FD, UPUP, F1 -> F2) -> N
++ order(f,u,g) \undocumented
CODE ==> add
algOrder : (FD, UPUP, F1 -> F2) -> N
rootOrder: (FD, UP, N, F1 -> F2) -> N
-- pp is not necessarily monic
order(d, pp, f) ==
(r := retractIfCan(reductum pp)@Union(Fraction UP, "failed"))
case "failed" => algOrder(d, pp, f)
rootOrder(d, - retract(r::Fraction(UP) / leadingCoefficient pp)@UP,
degree pp, f)
algOrder(d, modulus, reduce) ==
redmod := map(reduce, modulus)$MultipleMap(F1,UP,UPUP,F2,UP2,UPUP2)
curve := AlgebraicFunctionField(F2, UP2, UPUP2, redmod)
order(map(reduce,
d)$FiniteDivisorFunctions2(F1,UP,UPUP,R,F2,UP2,UPUP2,curve)
)$FindOrderFinite(F2, UP2, UPUP2, curve)
rootOrder(d, radicand, n, reduce) ==
redrad := map(reduce,
radicand)$UnivariatePolynomialCategoryFunctions2(F1,UP,F2,UP2)
curve := RadicalFunctionField(F2, UP2, UPUP2, redrad::Fraction UP2, n)
order(map(reduce,
d)$FiniteDivisorFunctions2(F1,UP,UPUP,R,F2,UP2,UPUP2,curve)
)$FindOrderFinite(F2, UP2, UPUP2, curve)
|