diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet index 2c8554c..44a6905 100644 --- a/books/bookvol10.2.pamphlet +++ b/books/bookvol10.2.pamphlet @@ -67292,7 +67292,7 @@ digraph pic { )set message auto off )clear all ---S 1 of 1 +--S 1 of 3 )show UnivariateLaurentSeriesCategory --R --R UnivariateLaurentSeriesCategory(Coef: Ring) is a category constructor @@ -67422,6 +67422,14 @@ digraph pic { --R --E 1 +--S 2 of 3 +w:SparseUnivariateLaurentSeries(Fraction(Integer),'z,0):=0 +--E 2 + +--S 3 of 3 +rationalFunction(w,0) +--E 3 + )spool )lisp (bye) \end{chunk} @@ -67433,6 +67441,9 @@ UnivariateLaurentSeriesCategory examples UnivariateLaurentSeriesCategory is the category of Laurent series in one variable. +w:SparseUnivariateLaurentSeries(Fraction(Integer),'z,0):=0 +rationalFunction(w,0) + See Also: o )show UnivariateLaurentSeriesCategory @@ -67801,44 +67812,59 @@ UnivariateLaurentSeriesCategory(Coef): Category == Definition where ++ \spad{series(st)} creates a series from a stream of non-zero terms, ++ where a term is an exponent-coefficient pair. The terms in the ++ stream should be ordered by increasing order of exponents. + multiplyCoefficients: (I -> Coef,%) -> % ++ \spad{multiplyCoefficients(f,sum(n = n0..infinity,a[n] * x**n)) = ++ sum(n = 0..infinity,f(n) * a[n] * x**n)}. ++ This function is used when Puiseux series are represented by ++ a Laurent series and an exponent. + if Coef has IntegralDomain then + rationalFunction: (%,I) -> Fraction Polynomial Coef ++ \spad{rationalFunction(f,k)} returns a rational function ++ consisting of the sum of all terms of f of degree <= k. + ++ + ++X w:SparseUnivariateLaurentSeries(Fraction(Integer),'z,0):=0 + ++X rationalFunction(w,0) + rationalFunction: (%,I,I) -> Fraction Polynomial Coef ++ \spad{rationalFunction(f,k1,k2)} returns a rational function ++ consisting of the sum of all terms of f of degree d with ++ \spad{k1 <= d <= k2}. if Coef has Algebra Fraction Integer then + integrate: % -> % ++ \spad{integrate(f(x))} returns an anti-derivative of the power ++ series \spad{f(x)} with constant coefficient 1. ++ We may integrate a series when we can divide coefficients ++ by integers. + if Coef has integrate: (Coef,Symbol) -> Coef and _ Coef has variables: Coef -> List Symbol then + integrate: (%,Symbol) -> % ++ \spad{integrate(f(x),y)} returns an anti-derivative of the power ++ series \spad{f(x)} with respect to the variable \spad{y}. + if Coef has TranscendentalFunctionCategory and _ Coef has PrimitiveFunctionCategory and _ Coef has AlgebraicallyClosedFunctionSpace Integer then + integrate: (%,Symbol) -> % ++ \spad{integrate(f(x),y)} returns an anti-derivative of ++ the power series \spad{f(x)} with respect to the variable ++ \spad{y}. + RadicalCategory --++ We provide rational powers when we can divide coefficients --++ by integers. + TranscendentalFunctionCategory --++ We provide transcendental functions when we can divide --++ coefficients by integers. + if Coef has Field then Field --++ Univariate Laurent series over a field form a field. --++ In fact, K((x)) is the quotient field of K[[x]]. diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet index 6b21e76..4d83d51 100644 --- a/books/bookvol10.3.pamphlet +++ b/books/bookvol10.3.pamphlet @@ -71003,7 +71003,7 @@ InnerPrimeField(p:PositiveInteger): Exports == Implementation where )set message auto off )clear all ---S 1 of 1 +--S 1 of 3 )show InnerSparseUnivariatePowerSeries --R --R InnerSparseUnivariatePowerSeries(Coef: Ring) is a domain constructor @@ -71110,6 +71110,24 @@ InnerPrimeField(p:PositiveInteger): Exports == Implementation where --R --E 1 +-- test fix to iOrder internal function for finite case + +--S 2 of 5 +L := SparseUnivariateLaurentSeries(Fraction(Integer),'z,0) +--E 2 + +--S 3 of 5 +w:L := 0 +--E 3 + +--S 4 of 5 +order(w,0) +--E 4 + +--S 5 of 5 +rationalFunction(w,0) +--E 5 + )spool )lisp (bye) \end{chunk} @@ -71501,7 +71519,9 @@ InnerSparseUnivariatePowerSeries(Coef): Exports == Implementation where elt(x:%,n:Integer) == coefficient(x,n) iOrder(st,n,refer) == - explicitlyEmpty? st => error "order: series has infinite order" + explicitlyEmpty? st => + finite?(n) => retract(n)@Integer + error "order: series has infinite order" explicitEntries? st => ((r := getExpon frst st) :: COM) >= n => retract(n)@Integer r @@ -76606,26 +76626,42 @@ LaurentPolynomial(R, UP): Exports == Implementation where Exports ==> Join(DifferentialExtension UP, IntegralDomain, ConvertibleTo RF, FullyRetractableTo R, RetractableTo UP) with - monomial? : % -> B + + monomial? : % -> B ++ monomial?(x) is not documented - degree : % -> Z + + degree : % -> Z ++ degree(x) is not documented - order : % -> Z + + order : % -> Z ++ order(x) is not documented - reductum : % -> % + ++ + ++X w:SparseUnivariateLaurentSeries(Fraction(Integer),'z,0):=0 + ++X order(w,0) + + reductum : % -> % ++ reductum(x) is not documented + leadingCoefficient : % -> R ++ leadingCoefficient is not documented + trailingCoefficient: % -> R ++ trailingCoefficient is not documented - coefficient : (%, Z) -> R + + coefficient : (%, Z) -> R ++ coefficient(x,n) is not documented - monomial : (R, Z) -> % + + monomial : (R, Z) -> % ++ monomial(x,n) is not documented + if R has CharacteristicZero then CharacteristicZero + if R has CharacteristicNonZero then CharacteristicNonZero + if R has Field then + EuclideanDomain + separate: RF -> Record(polyPart:%, fracPart:RF) ++ separate(x) is not documented diff --git a/changelog b/changelog index 53c8269..597476f 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +20141123 wxh src/axiom-website/patches.html 20141123.03.wxh.patch +20141123 wxh books/bookvol10.3 fix iOrder in ISUPS for finite args +20141123 wxh books/bookvol10.2 rationalFunction from ULSCAT example 20141123 tpd src/axiom-website/patches.html 20141123.02.tpd.patch 20141123 tpd books/bookvol10.3 add help for AntiSymm 20141123 tpd src/axiom-website/patches.html 20141123.01.tpd.patch diff --git a/patch b/patch index 9a19ba3..f1abbf5 100644 --- a/patch +++ b/patch @@ -1,3 +1,11 @@ -books/bookvol10.3 add help for AntiSymm +books/bookvol10.3 fix iOrder in ISUPS for finite args -add help for exported functions in AntiSymm + iOrder(st,n,refer) == + explicitlyEmpty? st => + finite?(n) => retract(n)@Integer + error "order: series has infinite order" + +in order to make this work: + w:SparseUnivariateLaurentSeries(Fraction(Integer),'z,0):=0 + order(w,0) + rationalFunction(w,0) diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 8ca95fb..57547ca 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -4722,6 +4722,8 @@ buglist add bug 7262: bad expression parse ^/2
buglist add bug 7263: missing function from POLY(ANTISYM)
20141123.02.tpd.patch books/bookvol10.3 add help for AntiSymm
+20141123.03.wxh.patch +books/bookvol10.3 fix iOrder in ISUPS for finite args