/usr/share/axiom-20170501/src/algebra/ULSCCAT.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 71 72 73 74 75 76 | )abbrev category ULSCCAT UnivariateLaurentSeriesConstructorCategory
++ Author: Clifton J. Williamson
++ Date Created: 6 February 1990
++ Date Last Updated: 10 May 1990
++ Description:
++ This is a category of univariate Laurent series constructed from
++ univariate Taylor series. A Laurent series is represented by a pair
++ \spad{[n,f(x)]}, where n is an arbitrary integer and \spad{f(x)}
++ is a Taylor series. This pair represents the Laurent series
++ \spad{x**n * f(x)}.
UnivariateLaurentSeriesConstructorCategory(Coef,UTS) : Category == SIG where
Coef: Ring
UTS : UnivariateTaylorSeriesCategory Coef
I ==> Integer
SIG ==> Join(UnivariateLaurentSeriesCategory(Coef),_
RetractableTo UTS) with
laurent : (I,UTS) -> %
++ \spad{laurent(n,f(x))} returns \spad{x**n * f(x)}.
degree : % -> I
++ \spad{degree(f(x))} returns the degree of the lowest order term of
++ \spad{f(x)}, which may have zero as a coefficient.
taylorRep : % -> UTS
++ \spad{taylorRep(f(x))} returns \spad{g(x)}, where
++ \spad{f = x**n * g(x)} is represented by \spad{[n,g(x)]}.
removeZeroes : % -> %
++ \spad{removeZeroes(f(x))} removes leading zeroes from the
++ representation of the Laurent series \spad{f(x)}.
++ A Laurent series is represented by (1) an exponent and
++ (2) a Taylor series which may have leading zero coefficients.
++ When the Taylor series has a leading zero coefficient, the
++ 'leading zero' is removed from the Laurent series as follows:
++ the series is rewritten by increasing the exponent by 1 and
++ dividing the Taylor series by its variable.
++ Note that \spad{removeZeroes(f)} removes all leading zeroes from f
removeZeroes : (I,%) -> %
++ \spad{removeZeroes(n,f(x))} removes up to n leading zeroes from
++ the Laurent series \spad{f(x)}.
++ A Laurent series is represented by (1) an exponent and
++ (2) a Taylor series which may have leading zero coefficients.
++ When the Taylor series has a leading zero coefficient, the
++ 'leading zero' is removed from the Laurent series as follows:
++ the series is rewritten by increasing the exponent by 1 and
++ dividing the Taylor series by its variable.
coerce : UTS -> %
++ \spad{coerce(f(x))} converts the Taylor series \spad{f(x)} to a
++ Laurent series.
taylor : % -> UTS
++ taylor(f(x)) converts the Laurent series f(x) to a Taylor series,
++ if possible. Error: if this is not possible.
taylorIfCan : % -> Union(UTS,"failed")
++ \spad{taylorIfCan(f(x))} converts the Laurent series \spad{f(x)}
++ to a Taylor series, if possible. If this is not possible,
++ "failed" is returned.
if Coef has Field then QuotientFieldCategory(UTS)
--++ the quotient field of univariate Taylor series over a field is
--++ the field of Laurent series
add
zero? x == zero? taylorRep x
retract(x:%):UTS == taylor x
retractIfCan(x:%):Union(UTS,"failed") == taylorIfCan x
|