/usr/share/axiom-20170501/src/algebra/UP.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 | )abbrev domain UP UnivariatePolynomial
++ Author: Mark Botch
++ Description:
++ This domain represents univariate polynomials in some symbol
++ over arbitrary (not necessarily commutative) coefficient rings.
++ The representation is sparse
++ in the sense that only non-zero terms are represented.
++ Note that if the coefficient ring is a field, then this domain
++ forms a euclidean domain.
UnivariatePolynomial(x,R) : SIG == CODE where
x : Symbol
R : Ring
SIG ==> UnivariatePolynomialCategory(R) with
coerce : Variable(x) -> %
++ coerce(x) converts the variable x to a univariate polynomial.
fmecg : (%,NonNegativeInteger,R,%) -> %
++ fmecg(p1,e,r,p2) finds x : p1 - r * x**e * p2
CODE ==> SparseUnivariatePolynomial(R) add
Rep:=SparseUnivariatePolynomial(R)
coerce(p:%):OutputForm == outputForm(p, outputForm x)
coerce(v:Variable(x)):% == monomial(1, 1)
|