/usr/share/axiom-20170501/src/algebra/MYUP.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 domain MYUP MyUnivariatePolynomial
++ Author: Mark Botch
++ Description:
++ This domain has no description
MyUnivariatePolynomial(x,R) : SIG == CODE where
x : Symbol
R : Ring
SIG ==> UnivariatePolynomialCategory(R) with
RetractableTo Symbol;
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
if R has univariate: (R, Symbol) -> SparseUnivariatePolynomial R
then
coerce : R -> %
coerce : Polynomial R -> %
CODE ==> SparseUnivariatePolynomial(R) add
Rep := SparseUnivariatePolynomial(R)
coerce(p: %):OutputForm == outputForm(p, outputForm x)
coerce(x: Symbol): % == monomial(1, 1)
coerce(v: Variable(x)):% == monomial(1, 1)
retract(p: %): Symbol ==
retract(p)@SingletonAsOrderedSet
x
if R has univariate: (R, Symbol) -> SparseUnivariatePolynomial R then
coerce(p: R): % == univariate(p, x)$R
coerce(p: Polynomial R): % ==
poly: SparseUnivariatePolynomial(Polynomial R)
:= univariate(p, x)$(Polynomial R)
map((z1:Polynomial R):R +-> retract(z1), poly)_
$UnivariatePolynomialCategoryFunctions2(Polynomial R,
SparseUnivariatePolynomial Polynomial R, R, %)
|