diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet index 3f0b4fd..3db5c68 100644 --- a/books/bookvol10.2.pamphlet +++ b/books/bookvol10.2.pamphlet @@ -41947,6 +41947,7 @@ digraph pic { {\bf See:} +\pageto{LocalPowerSeriesCategory}{LOCPOWC} \pageto{UnivariateLaurentSeriesCategory}{ULSCAT} \pageto{UnivariatePuiseuxSeriesCategory}{UPXSCAT} \pageto{UnivariateTaylorSeriesCategory}{UTSCAT} @@ -43123,6 +43124,476 @@ digraph pic { } @ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{LocalPowerSeriesCategory}{LOCPOWC} +\pagepic{ps/v102localpowerseriescategory.ps}{LOCPOWC}{0.70} +\pagepic{ps/v102pseudoalgebraicclosureofperfectfieldcategory.ps}{PACPERC}{0.50} +<>= +)set break resume +)sys rm -f LocalPowerSeriesCategory.output +)spool LocalPowerSeriesCategory.output +)set message test on +)set message auto off +)clear all + +--S 1 of 1 +)show LocalPowerSeriesCategory +--R LocalPowerSeriesCategory K: Field is a category constructor +--R Abbreviation for LocalPowerSeriesCategory is LOCPOWC +--R This constructor is exposed in this frame. +--R Issue )edit bookvol10.2.pamphlet to see algebra source code for LOCPOWC +--R +--R------------------------------- Operations -------------------------------- +--R ?*? : (%,K) -> % ?*? : (K,%) -> % +--R ?*? : (Fraction Integer,%) -> % ?*? : (%,Fraction Integer) -> % +--R ?*? : (%,%) -> % ?*? : (Integer,%) -> % +--R ?*? : (PositiveInteger,%) -> % ?**? : (%,Integer) -> % +--R ?**? : (%,PositiveInteger) -> % ?+? : (%,%) -> % +--R ?-? : (%,%) -> % -? : % -> % +--R ?/? : (%,%) -> % ?=? : (%,%) -> Boolean +--R 1 : () -> % 0 : () -> % +--R ?^? : (%,Integer) -> % ?^? : (%,PositiveInteger) -> % +--R associates? : (%,%) -> Boolean center : % -> K +--R coefOfFirstNonZeroTerm : % -> K coefficient : (%,Integer) -> K +--R coerce : Fraction Integer -> % coerce : % -> % +--R coerce : Integer -> % coerce : % -> OutputForm +--R complete : % -> % degree : % -> Integer +--R delay : (() -> %) -> % ?.? : (%,Integer) -> K +--R extend : (%,Integer) -> % factor : % -> Factored % +--R filterUpTo : (%,Integer) -> % findCoef : (%,Integer) -> K +--R gcd : List % -> % gcd : (%,%) -> % +--R hash : % -> SingleInteger inv : % -> % +--R latex : % -> String lcm : List % -> % +--R lcm : (%,%) -> % leadingCoefficient : % -> K +--R leadingMonomial : % -> % map : ((K -> K),%) -> % +--R monomial : (K,Integer) -> % monomial? : % -> Boolean +--R one? : % -> Boolean order : % -> Integer +--R order : % -> Integer order : (%,Integer) -> Integer +--R pole? : % -> Boolean posExpnPart : % -> % +--R prime? : % -> Boolean printInfo : () -> Boolean +--R printInfo : Boolean -> Boolean ?quo? : (%,%) -> % +--R recip : % -> Union(%,"failed") reductum : % -> % +--R ?rem? : (%,%) -> % removeFirstZeroes : % -> % +--R removeZeroes : % -> % removeZeroes : (Integer,%) -> % +--R sample : () -> % sbt : (%,%) -> % +--R series : (Integer,K,%) -> % shift : (%,Integer) -> % +--R sizeLess? : (%,%) -> Boolean squareFree : % -> Factored % +--R squareFreePart : % -> % truncate : (%,Integer) -> % +--R unit? : % -> Boolean unitCanonical : % -> % +--R variable : % -> Symbol zero? : % -> Boolean +--R ?~=? : (%,%) -> Boolean +--R ?*? : (NonNegativeInteger,%) -> % +--R ?**? : (%,NonNegativeInteger) -> % +--R ?/? : (%,K) -> % if K has FIELD +--R D : (%,List Symbol,List NonNegativeInteger) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K +--R D : (%,Symbol,NonNegativeInteger) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K +--R D : (%,List Symbol) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K +--R D : (%,Symbol) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K +--R D : (%,NonNegativeInteger) -> % if K has *: (Integer,K) -> K +--R D : % -> % if K has *: (Integer,K) -> K +--R ?^? : (%,NonNegativeInteger) -> % +--R approximate : (%,Integer) -> K if K has **: (K,Integer) -> K and K has coerce: Symbol -> K +--R characteristic : () -> NonNegativeInteger +--R charthRoot : % -> Union(%,"failed") if K has CHARNZ +--R coerce : % -> Stream Record(k: Integer,c: K) +--R coerce : Stream Record(k: Integer,c: K) -> % +--R coerce : K -> % if K has COMRING +--R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K +--R differentiate : (%,Symbol,NonNegativeInteger) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K +--R differentiate : (%,List Symbol) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K +--R differentiate : (%,Symbol) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K +--R differentiate : (%,NonNegativeInteger) -> % if K has *: (Integer,K) -> K +--R differentiate : % -> % if K has *: (Integer,K) -> K +--R divide : (%,%) -> Record(quotient: %,remainder: %) +--R ?.? : (%,%) -> % if Integer has SGROUP +--R euclideanSize : % -> NonNegativeInteger +--R eval : (%,K) -> Stream K if K has **: (K,Integer) -> K +--R expressIdealMember : (List %,%) -> Union(List %,"failed") +--R exquo : (%,%) -> Union(%,"failed") +--R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") +--R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) +--R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % +--R monomial : (%,SingletonAsOrderedSet,Integer) -> % +--R monomial : (%,List SingletonAsOrderedSet,List Integer) -> % +--R monomial2series : (List %,List NonNegativeInteger,Integer) -> % +--R multiEuclidean : (List %,%) -> Union(List %,"failed") +--R multiplyExponents : (%,PositiveInteger) -> % +--R orderIfNegative : % -> Union(Integer,"failed") +--R principalIdeal : List % -> Record(coef: List %,generator: %) +--R subtractIfCan : (%,%) -> Union(%,"failed") +--R terms : % -> Stream Record(k: Integer,c: K) +--R truncate : (%,Integer,Integer) -> % +--R unitNormal : % -> Record(unit: %,canonical: %,associate: %) +--R variables : % -> List SingletonAsOrderedSet +--R +--E 1 + +)spool +)lisp (bye) +@ +<>= +==================================================================== +LocalPowerSeriesCategory examples +==================================================================== + +See Also: +o )show LocalPowerSeriesCategory + +@ + +{\bf See:} + +\pagefrom{CharacteristicZero}{CHARZ} +\pagefrom{EuclideanDomain}{EUCDOM} +\pagefrom{UnivariatePowerSeriesCategory}{UPSCAT} + +{\bf Exports:}\\ + +\begin{tabular}{lll} +\cross{LOCPOWC}{0} & +\cross{LOCPOWC}{1} & +\cross{LOCPOWC}{-?} \\ +\cross{LOCPOWC}{?**?} & +\cross{LOCPOWC}{?+?} & +\cross{LOCPOWC}{?-?} \\ +\cross{LOCPOWC}{?.?} & +\cross{LOCPOWC}{?/?} & +\cross{LOCPOWC}{?=?} \\ +\cross{LOCPOWC}{?\^{}?} & +\cross{LOCPOWC}{?\~{}=?} & +\cross{LOCPOWC}{?quo?} \\ +\cross{LOCPOWC}{?rem?} & +\cross{LOCPOWC}{D} & +\cross{LOCPOWC}{approximate} \\ +\cross{LOCPOWC}{associates?} & +\cross{LOCPOWC}{center} & +\cross{LOCPOWC}{characteristic} \\ +\cross{LOCPOWC}{charthRoot} & +\cross{LOCPOWC}{coefOfFirstNonZeroTerm} & +\cross{LOCPOWC}{coefficient} \\ +\cross{LOCPOWC}{coerce} & +\cross{LOCPOWC}{complete} & +\cross{LOCPOWC}{degree} \\ +\cross{LOCPOWC}{delay} & +\cross{LOCPOWC}{differentiate} & +\cross{LOCPOWC}{divide} \\ +\cross{LOCPOWC}{euclideanSize} & +\cross{LOCPOWC}{eval} & +\cross{LOCPOWC}{expressIdealMember} \\ +\cross{LOCPOWC}{exquo} & +\cross{LOCPOWC}{extend} & +\cross{LOCPOWC}{extendedEuclidean} \\ +\cross{LOCPOWC}{factor} & +\cross{LOCPOWC}{filterUpTo} & +\cross{LOCPOWC}{findCoef} \\ +\cross{LOCPOWC}{gcd} & +\cross{LOCPOWC}{gcdPolynomial} & +\cross{LOCPOWC}{hash} \\ +\cross{LOCPOWC}{inv} & +\cross{LOCPOWC}{latex} & +\cross{LOCPOWC}{lcm} \\ +\cross{LOCPOWC}{leadingCoefficient} & +\cross{LOCPOWC}{leadingMonomial} & +\cross{LOCPOWC}{map} \\ +\cross{LOCPOWC}{monomial} & +\cross{LOCPOWC}{monomial2series} & +\cross{LOCPOWC}{monomial?} \\ +\cross{LOCPOWC}{multiEuclidean} & +\cross{LOCPOWC}{multiplyExponents} & +\cross{LOCPOWC}{one?} \\ +\cross{LOCPOWC}{order} & +\cross{LOCPOWC}{orderIfNegative} & +\cross{LOCPOWC}{pole?} \\ +\cross{LOCPOWC}{posExpnPart} & +\cross{LOCPOWC}{prime?} & +\cross{LOCPOWC}{principalIdeal} \\ +\cross{LOCPOWC}{printInfo} & +\cross{LOCPOWC}{recip} & +\cross{LOCPOWC}{reductum} \\ +\cross{LOCPOWC}{removeFirstZeroes} & +\cross{LOCPOWC}{removeZeroes} & +\cross{LOCPOWC}{sample} \\ +\cross{LOCPOWC}{sbt} & +\cross{LOCPOWC}{series} & +\cross{LOCPOWC}{shift} \\ +\cross{LOCPOWC}{sizeLess?} & +\cross{LOCPOWC}{squareFree} & +\cross{LOCPOWC}{squareFreePart} \\ +\cross{LOCPOWC}{subtractIfCan} & +\cross{LOCPOWC}{terms} & +\cross{LOCPOWC}{truncate} \\ +\cross{LOCPOWC}{unit?} & +\cross{LOCPOWC}{unitCanonical} & +\cross{LOCPOWC}{unitNormal} \\ +\cross{LOCPOWC}{variable} & +\cross{LOCPOWC}{variables} & +\cross{LOCPOWC}{zero?} +\end{tabular} + +{\bf Attributes Exported:} +\begin{itemize} +\item {\bf \cross{LOCPOWC}{noZeroDivisors}} +is true if $x * y \ne 0$ implies both x and y are non-zero. +\item {\bf \cross{LOCPOWC}{commutative(``*'')}} +is true if it has an operation $"*": (D,D) -> D$ +which is commutative. +\item {\bf \cross{LOCPOWC}{unitsKnown}} +is true if a monoid (a multiplicative semigroup with a 1) has +unitsKnown means that the operation {\tt recip} can only return +``failed'' if its argument is not a unit. +\item {\bf \cross{LOCPOWC}{leftUnitary}} +is true if $1 * x = x$ for all x. +\item {\bf \cross{LOCPOWC}{rightUnitary}} +is true if $x * 1 = x$ for all x. +\item {\bf \cross{LOCPOWC}{canonicalUnitNormal}} +is true if we can choose a canonical representative for each class +of associate elements, that is {\tt associates?(a,b)} returns true +if and only if {\tt unitCanonical(a) = unitCanonical(b)}. +\item {\bf \cross{LOCPOWC}{canonicalsClosed}} +is true if\hfill\\ +{\tt unitCanonical(a)*unitCanonical(b) = unitCanonical(a*b)}. +\end{itemize} + +These are directly exported but not implemented +\begin{verbatim} + coefOfFirstNonZeroTerm : % -> K + coerce : % -> Stream Record(k: Integer,c: K) + coerce : Stream Record(k: Integer,c: K) -> % + delay : (() -> %) -> % + filterUpTo : (%,Integer) -> % + findCoef : (%,Integer) -> K + monomial2series : (List %,List NonNegativeInteger,Integer) -> % + order : % -> Integer + orderIfNegative : % -> Union(Integer,"failed") + posExpnPart : % -> % + printInfo : () -> Boolean + printInfo : Boolean -> Boolean + removeFirstZeroes : % -> % + removeZeroes : % -> % + removeZeroes : (Integer,%) -> % + sbt : (%,%) -> % + series : (Integer,K,%) -> % + shift : (%,Integer) -> % +\end{verbatim} + +These exports come from \refto{UnivariatePowerSeriesCategory}(): +\begin{verbatim} + -? : % -> % + 0 : () -> % + 1 : () -> % + ?**? : (%,NonNegativeInteger) -> % + ?**? : (%,PositiveInteger) -> % + ?*? : (%,%) -> % + ?*? : (%,Fraction Integer) -> % + ?*? : (Fraction Integer,%) -> % + ?*? : (Integer,%) -> % + ?*? : (NonNegativeInteger,%) -> % + ?*? : (PositiveInteger,%) -> % + ?+? : (%,%) -> % + ?-? : (%,%) -> % + ?.? : (%,%) -> % if Integer has SGROUP + ?.? : (%,Integer) -> K + ?/? : (%,%) -> % + ?=? : (%,%) -> Boolean + ?^? : (%,NonNegativeInteger) -> % + ?^? : (%,PositiveInteger) -> % + ?~=? : (%,%) -> Boolean + D : % -> % if K has *: (Integer,K) -> K + D : (%,List Symbol) -> % + if K has PDRING SYMBOL and K has *: (Integer,K) -> K + D : (%,List Symbol,List NonNegativeInteger) -> % + if K has PDRING SYMBOL and K has *: (Integer,K) -> K + D : (%,NonNegativeInteger) -> % if K has *: (Integer,K) -> K + D : (%,Symbol) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K + D : (%,Symbol,NonNegativeInteger) -> % + if K has PDRING SYMBOL and K has *: (Integer,K) -> K + approximate : (%,Integer) -> K + if K has **: (K,Integer) -> K and K has coerce: Symbol -> K + associates? : (%,%) -> Boolean + center : % -> K + characteristic : () -> NonNegativeInteger + charthRoot : % -> Union(%,"failed") if K has CHARNZ + coefficient : (%,Integer) -> K + coerce : % -> % + coerce : % -> OutputForm + coerce : Fraction Integer -> % + coerce : Integer -> % + coerce : K -> % if K has COMRING + complete : % -> % + degree : % -> Integer + differentiate : % -> % if K has *: (Integer,K) -> K + differentiate : (%,List Symbol) -> % + if K has PDRING SYMBOL and K has *: (Integer,K) -> K + differentiate : (%,List Symbol,List NonNegativeInteger) -> % + if K has PDRING SYMBOL and K has *: (Integer,K) -> K + differentiate : (%,NonNegativeInteger) -> % + if K has *: (Integer,K) -> K + differentiate : (%,Symbol) -> % + if K has PDRING SYMBOL and K has *: (Integer,K) -> K + differentiate : (%,Symbol,NonNegativeInteger) -> % + if K has PDRING SYMBOL and K has *: (Integer,K) -> K + eval : (%,K) -> Stream K if K has **: (K,Integer) -> K + exquo : (%,%) -> Union(%,"failed") + extend : (%,Integer) -> % + hash : % -> SingleInteger + latex : % -> String + leadingCoefficient : % -> K + leadingMonomial : % -> % + map : ((K -> K),%) -> % + monomial : (%,List SingletonAsOrderedSet,List Integer) -> % + monomial : (%,SingletonAsOrderedSet,Integer) -> % + monomial : (K,Integer) -> % + monomial? : % -> Boolean + multiplyExponents : (%,PositiveInteger) -> % + one? : % -> Boolean + order : % -> Integer + order : (%,Integer) -> Integer + pole? : % -> Boolean + recip : % -> Union(%,"failed") + reductum : % -> % + sample : () -> % + subtractIfCan : (%,%) -> Union(%,"failed") + terms : % -> Stream Record(k: Integer,c: K) + truncate : (%,Integer) -> % + truncate : (%,Integer,Integer) -> % + unit? : % -> Boolean + unitCanonical : % -> % + unitNormal : % -> Record(unit: %,canonical: %,associate: %) + variable : % -> Symbol + variables : % -> List SingletonAsOrderedSet + zero? : % -> Boolean +\end{verbatim} + +These exports come from \refto{Field}(): +\begin{verbatim} + ?**? : (%,Integer) -> % + ?*? : (%,K) -> % + ?*? : (K,%) -> % + ?/? : (%,K) -> % if K has FIELD + ?^? : (%,Integer) -> % + ?quo? : (%,%) -> % + ?rem? : (%,%) -> % + divide : (%,%) -> Record(quotient: %,remainder: %) + euclideanSize : % -> NonNegativeInteger + expressIdealMember : (List %,%) -> Union(List %,"failed") + extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) + extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") + factor : % -> Factored % + gcd : (%,%) -> % + gcd : List % -> % + gcdPolynomial : + (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> + SparseUnivariatePolynomial % + inv : % -> % + lcm : (%,%) -> % + lcm : List % -> % + multiEuclidean : (List %,%) -> Union(List %,"failed") + prime? : % -> Boolean + principalIdeal : List % -> Record(coef: List %,generator: %) + sizeLess? : (%,%) -> Boolean + squareFree : % -> Factored % + squareFreePart : % -> % +\end{verbatim} + +<>= +)abbrev category LOCPOWC LocalPowerSeriesCategory +LocalPowerSeriesCategory(K:Field):Category == Implementation where + + INT ==> Integer + TERM ==> Record(k:INT,c:K) + SER ==> Stream(TERM) + NNI ==> NonNegativeInteger + + Implementation ==> + Join(Field,UnivariatePowerSeriesCategory(K,INT)) with + + order: % -> Integer + ++ order(s) returns the order of s. + + findCoef: (%,Integer) -> K + + coerce: SER -> % + + coerce: % -> SER + + posExpnPart: % -> % + ++ posExpnPart(s) returns the series s less the terms with + ++ negative exponant. + + orderIfNegative: % -> Union(Integer,"failed") + + removeFirstZeroes: % -> % + + sbt: (%,%) -> % + + delay: ( () -> % ) -> % + ++ delay delayed the computation of the next term of the series given + ++ by the input function. + + monomial2series: (List %, List NNI, INT) -> % + ++ monomial2series(ls,le,n) returns + ++ t**n * reduce("*",[s ** e for s in ls for e in le]) + + removeZeroes: (INT,%) -> % + ++ removeZeroes(n,s) removes the zero terms in the first n terms of s. + + removeZeroes: % -> % + ++ removeZeroes(s) removes the zero terms in s. + + series: (INT,K,%) -> % + ++ series(e,c,s) create the series c*t**e + s. + + shift: (%,INT) -> % + ++ shift(s,n) returns t**n * s + + filterUpTo : (%,INT) -> % + ++ filterUpTo(s,n) returns the series consisting of the terms + ++ of s having degree strictly less than n. + + coefOfFirstNonZeroTerm: % -> K + ++ coefOfFirstNonZeroTerm(s) returns the first non zero coefficient + ++ of the series. + + printInfo: Boolean -> Boolean + ++ printInfo(b) set a flag such that when true (b <- true) prints + ++ some information during some critical computation. + + printInfo: () -> Boolean + ++ returns the value of the \spad{printInfo} flag. + +@ +<>= +"LOCPOWC" + [color=lightblue,href="bookvol10.2.pdf#nameddest=LOCPOWC"]; +"LOCPOWC" -> "UPSCAT" + +@ +<>= +"LocalPowerSeriesCategory(f:Field)" + [color=lightblue,href="bookvol10.2.pdf#nameddest=LOCPOWC"]; +"LocalPowerSeriesCategory(f:Field)" -> + "UnivariatePowerSeriesCategory(c:Ring,e:OrderedAbelianMonoid)" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"LocalPowerSeriesCategory(f:Field)" [color=lightblue]; +"LocalPowerSeriesCategory(f:Field)" -> + "UnivariatePowerSeriesCategory(c:Ring,e:OrderedAbelianMonoid)" + +"Ring" [color=lightblue]; +"OrderedAbelianMonoid" [color=lightblue]; + +} + +@ + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pagehead{PAdicIntegerCategory}{PADICCT} \pagepic{ps/v102padicintegercategory.ps}{PADICCT}{0.70} @@ -75383,6 +75854,7 @@ Note that this code is not included in the generated catdef.spad file. <> <> <> +<> <> <> diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index d8f951b..c79ee67 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -24427,6 +24427,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|LinearOrdinaryDifferentialOperatorCategory| . LODOCAT) (|LiouvillianFunctionCategory| . LFCAT) (|ListAggregate| . LSAGG) + (|LocalPowerSeriesCategory| . LOCPOWC) (|Logic| . LOGIC) (|MatrixCategory| . MATCAT) (|Module| . MODULE) diff --git a/books/ps/v102localpowerseriescategory.ps b/books/ps/v102localpowerseriescategory.ps new file mode 100644 index 0000000..bfe6592 --- /dev/null +++ b/books/ps/v102localpowerseriescategory.ps @@ -0,0 +1,263 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Graphviz version 2.20.2 (Mon Mar 30 10:09:11 UTC 2009) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: (atend) +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw text fitted to its expected width +/alignedtext { % width text + /text exch def + /width exch def + gsave + width 0 gt { + [] 0 setdash + text stringwidth pop width exch sub text length div 0 text ashow + } if + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +setupLatin1 +%%Page: 1 1 +%%PageBoundingBox: 36 36 134 152 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 98 116 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% LOCPOWC +gsave +[ /Rect [ 0 72 90 108 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=LOCPOWC) >> + /Subtype /Link +/ANN pdfmark +0.537 0.247 0.902 nodecolor +newpath 90 108 moveto +0 108 lineto +0 72 lineto +90 72 lineto +closepath fill +1 setlinewidth +filled +0.537 0.247 0.902 nodecolor +newpath 90 108 moveto +0 108 lineto +0 72 lineto +90 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +8 85.9 moveto 74 (LOCPOWC) alignedtext +grestore +% UPSCAT +gsave +0.537 0.247 0.902 nodecolor +newpath 81 36 moveto +9 36 lineto +9 0 lineto +81 0 lineto +closepath fill +1 setlinewidth +filled +0.537 0.247 0.902 nodecolor +newpath 81 36 moveto +9 36 lineto +9 0 lineto +81 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +17 13.9 moveto 56 (UPSCAT) alignedtext +grestore +% LOCPOWC->UPSCAT +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 45 72 moveto +45 64 45 55 45 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 48.5 46 moveto +45 36 lineto +41.5 46 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 48.5 46 moveto +45 36 lineto +41.5 46 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +%%BoundingBox: 36 36 134 152 +end +restore +%%EOF diff --git a/changelog b/changelog index 1d80e34..46f3ba8 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20100511 tpd src/axiom-website/patches.html 20100511.07.tpd.patch +20100511 tpd src/algebra/Makefile help and test files for LOCPOWC +20100511 tpd books/bookvol5 expose LocalPowerSeriesCategory +20100511 tpd books/bookvol10.2 add LocalPowerSeriesCategory +20100511 tpd books/ps/v102localpowerseriescategory.ps added 20100511 tpd src/axiom-website/patches.html 20100511.06.tpd.patch 20100511 tpd src/input/Makefile remove duplicate curl.input invocation 20100511 tpd src/axiom-website/patches.html 20100511.05.tpd.patch diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 80f7d2f..12e67c6 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -4326,7 +4326,8 @@ Used by next layer: IVECTOR PTCAT STRICAT LAYER9=\ ${OUT}/BITS.o ${OUT}/DIRPROD2.o ${OUT}/IMATRIX.o ${OUT}/INTRVL.o \ - ${OUT}/IVECTOR.o ${OUT}/LODO1.o ${OUT}/LODO2.o ${OUT}/LPOLY.o \ + ${OUT}/IVECTOR.o ${OUT}/LOCPOWC.o \ + ${OUT}/LODO1.o ${OUT}/LODO2.o ${OUT}/LPOLY.o \ ${OUT}/LSMP.o ${OUT}/LSMP1.o ${OUT}/MATCAT2.o \ ${OUT}/PTCAT.o ${OUT}/STRICAT.o ${OUT}/TRIMAT.o \ layer9done @@ -4396,6 +4397,19 @@ LAYER9=\ /*"IVECTOR" -> {"OAGROUP"; "OCAMON"; "OAMON"; "OASGP"; "DIFRING"; "RETRACT"}*/ /*"IVECTOR" -> {"LINEXP"; "PATMAB"; "CFCAT"; "REAL"; "CHARZ"; "STEP"; "OM"}*/ +"LOCPOWC" [color="#4488FF",href="bookvol10.2.pdf#nameddest=LOCPOWC"] +/*"LOCPOWC" -> {"FIELD"; "EUCDOM"; "PID"; "GCDDOM"; "INTDOM"}*/ +/*"LOCPOWC" -> {"COMRING"; "RING"; "RNG"; "ABELGRP"; "CABMON"*/ +/*"LOCPOWC" -> {"ABELMON"; "ABELSG"; "SETCAT"; "BASTYPE"; "KOERCE"}*/ +/*"LOCPOWC" -> {"SGROUP"; "MONOID"; "LMODULE"; "BMODULE"; "RMODULE"}*/ +/*"LOCPOWC" -> {"ALGEBRA"; "MODULE"; "ENTIRER"; "UFD"; "DIVRING"}*/ +/*"LOCPOWC" -> {"INS"; "OINTDOM"; "ORDRING"; "OAGROUP"; "OCAMON"}*/ +/*"LOCPOWC" -> {"OAMON"; "OASGP"; "ORDSET"; "DIFRING"; "KONVERT"}*/ +/*"LOCPOWC" -> {"RETRACT"; "LINEXP"; "PATMAB"; "CFCAT"; "REAL"}*/ +/*"LOCPOWC" -> {"CHARZ"; "STEP"}*/ +"LOCPOWC" -> "UPSCAT" +/*"LOCPOWC" -> {"PSCAT"; "AMR"; "CHARNZ"; "ELTAB"; "PDRING"}*/ + "LODO1" [color="#88FF44",href="bookvol10.3.pdf#nameddest=LODO1"] /*"LODO1" -> {"DIFRING"; "RING"; "RNG"; "ABELGRP"; "CABMON"; "ABELMON"}*/ /*"LODO1" -> {"ABELSG"; "SETCAT"; "BASTYPE"; "KOERCE"; "SGROUP"; "MONOID"}*/ @@ -16892,6 +16906,7 @@ SPADHELP=\ ${HELP}/LinearOrdinaryDifferentialOperator2.help \ ${HELP}/List.help \ ${HELP}/LinesOpPack.help \ + ${HELP}/LocalPowerSeriesCategory.help \ ${HELP}/LyndonWord.help \ ${HELP}/Magma.help \ ${HELP}/MakeFunction.help \ @@ -17062,6 +17077,7 @@ REGRESS= \ LinearOrdinaryDifferentialOperator2.regress \ List.regress \ LinesOpPack.regress \ + LocalPowerSeriesCategory.regress \ LyndonWord.regress \ Magma.regress \ MathMLFormat.regress \ @@ -17894,6 +17910,18 @@ ${HELP}/LinesOpPack.help: ${BOOKS}/bookvol10.4.pamphlet >${INPUT}/LinesOpPack.input @echo "LinesOpPack (LOP)" >>${HELPFILE} +${HELP}/LocalPowerSeriesCategory.help: ${BOOKS}/bookvol10.2.pamphlet + @echo 7577 create LocalPowerSeriesCategory.help from \ + ${BOOKS}/bookvol10.2.pamphlet + @${TANGLE} -R"LocalPowerSeriesCategory.help" \ + ${BOOKS}/bookvol10.2.pamphlet \ + >${HELP}/LocalPowerSeriesCategory.help + @cp ${HELP}/LocalPowerSeriesCategory.help ${HELP}/LOCPOWC.help + @${TANGLE} -R"LocalPowerSeriesCategory.input" \ + ${BOOKS}/bookvol10.2.pamphlet \ + >${INPUT}/LocalPowerSeriesCategory.input + @echo "LocalPowerSeriesCategory (LOCPOWC)" >>${HELPFILE} + ${HELP}/LyndonWord.help: ${BOOKS}/bookvol10.3.pamphlet @echo 7570 create LyndonWord.help from \ ${BOOKS}/bookvol10.3.pamphlet diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 8fee62d..c0f6928 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2695,5 +2695,7 @@ books/bookvolbib add Soren L. Buhl [Buh05]
src/input/curry.input add regression test
20100511.06.tpd.patch src/input/Makefile remove duplicate curl.input invocation
+20100511.07.tpd.patch +books/bookvol10.2 add LocalPowerSeriesCategory