/usr/share/axiom-20170501/src/algebra/AN.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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | )abbrev domain AN AlgebraicNumber
++ Author: James Davenport
++ Date Created: 9 October 1995
++ Date Last Updated: 10 October 1995 (JHD)
++ Description:
++ Algebraic closure of the rational numbers, with mathematical =
AlgebraicNumber(): SIG == CODE where
Z ==> Integer
P ==> SparseMultivariatePolynomial(Z, Kernel %)
SUP ==> SparseUnivariatePolynomial
SIG ==> Join(ExpressionSpace, AlgebraicallyClosedField,
RetractableTo Z, RetractableTo Fraction Z,
LinearlyExplicitRingOver Z, RealConstant,
LinearlyExplicitRingOver Fraction Z,
CharacteristicZero,
ConvertibleTo Complex Float, DifferentialRing) with
coerce : P -> %
++ coerce(p) returns p viewed as an algebraic number.
numer : % -> P
++ numer(f) returns the numerator of f viewed as a
++ polynomial in the kernels over Z.
++
++X t1:=sqrt(3)/sqrt(5)
++X numer t1
denom : % -> P
++ denom(f) returns the denominator of f viewed as a
++ polynomial in the kernels over Z.
++
++X t1:=sqrt(3)/sqrt(5)
++X denom t1
reduce : % -> %
++ reduce(f) simplifies all the unreduced algebraic numbers
++ present in f by applying their defining relations.
norm : (SUP(%),Kernel %) -> SUP(%)
++ norm(p,k) computes the norm of the polynomial p
++ with respect to the extension generated by kernel k
norm : (SUP(%),List Kernel %) -> SUP(%)
++ norm(p,l) computes the norm of the polynomial p
++ with respect to the extension generated by kernels l
norm : (%,Kernel %) -> %
++ norm(f,k) computes the norm of the algebraic number f
++ with respect to the extension generated by kernel k
norm : (%,List Kernel %) -> %
++ norm(f,l) computes the norm of the algebraic number f
++ with respect to the extension generated by kernels l
CODE ==> InnerAlgebraicNumber add
Rep:=InnerAlgebraicNumber
a,b:%
zero? a ==
trueEqual(a::Rep,0::Rep)
one? a ==
trueEqual(a::Rep,1::Rep)
a=b ==
trueEqual((a-b)::Rep,0::Rep)
|