/usr/share/axiom-20170501/src/algebra/UPCDEN.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 | )abbrev package UPCDEN UnivariatePolynomialCommonDenominator
++ Author: Manuel Bronstein
++ Date Created: 2 May 1988
++ Date Last Updated: 22 Feb 1990
++ Description:
++ UnivariatePolynomialCommonDenominator provides
++ functions to compute the common denominator of the coefficients of
++ univariate polynomials over the quotient field of a gcd domain.
UnivariatePolynomialCommonDenominator(R, Q, UP) : SIG == CODE where
R : IntegralDomain
Q : QuotientFieldCategory R
UP : UnivariatePolynomialCategory Q
SIG ==> with
commonDenominator : UP -> R
++ commonDenominator(q) returns a common denominator d for
++ the coefficients of q.
clearDenominator : UP -> UP
++ clearDenominator(q) returns p such that \spad{q = p/d} where d is
++ a common denominator for the coefficients of q.
splitDenominator : UP -> Record(num: UP, den: R)
++ splitDenominator(q) returns \spad{[p, d]} such that
++ \spad{q = p/d} and d
++ is a common denominator for the coefficients of q.
CODE ==> add
import CommonDenominator(R, Q, List Q)
commonDenominator p == commonDenominator coefficients p
clearDenominator p ==
d := commonDenominator p
map(x +-> numer(d*x)::Q, p)
splitDenominator p ==
d := commonDenominator p
[map(x +-> numer(d*x)::Q, p), d]
|