/usr/share/axiom-20170501/src/algebra/NORMMA.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 | )abbrev package NORMMA NormInMonogenicAlgebra
++ Author: Manuel Bronstein
++ Date Created: 23 February 1995
++ Date Last Updated: 23 February 1995
++ Description:
++ This package implements the norm of a polynomial with coefficients
++ in a monogenic algebra (using resultants)
NormInMonogenicAlgebra(R, PolR, E, PolE) : SIG == CODE where
R : GcdDomain
PolR : UnivariatePolynomialCategory R
E : MonogenicAlgebra(R, PolR)
PolE : UnivariatePolynomialCategory E
SUP ==> SparseUnivariatePolynomial
SIG ==> with
norm : PolE -> PolR
++ norm q returns the norm of q,
++ the product of all the conjugates of q.
CODE ==> add
import UnivariatePolynomialCategoryFunctions2(R, PolR, PolR, SUP PolR)
PolR2SUP: PolR -> SUP PolR
PolR2SUP q == map(x +-> x::PolR, q)
defpol := PolR2SUP(definingPolynomial()$E)
norm q ==
p:SUP PolR := 0
while q ~= 0 repeat
p := p + monomial(1,degree q)$PolR * PolR2SUP lift leadingCoefficient q
q := reductum q
primitivePart resultant(p, defpol)
|