diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet index 11a9259..0cdf86d 100644 --- a/books/bookvol10.2.pamphlet +++ b/books/bookvol10.2.pamphlet @@ -55885,6 +55885,7 @@ These exports come from \refto{FiniteFieldCategory}(): ++ a set of related tour extensions. PseudoAlgebraicClosureOfFiniteFieldCategory:Category == Join(FiniteFieldCategory, PseudoAlgebraicClosureOfPerfectFieldCategory) + @ <>= "PACFFC" [color=lightblue,href="bookvol10.2.pdf#nameddest=PACFFC"]; @@ -55894,8 +55895,10 @@ PseudoAlgebraicClosureOfFiniteFieldCategory:Category == <>= "PseudoAlgebraicClosureOfFiniteFieldCategory" [color=lightblue,href="bookvol10.2.pdf#nameddest=PACFFC"]; -"PseudoAlgebraicClosureOfFiniteFieldCategory" -> "PACPERC" -"PseudoAlgebraicClosureOfFiniteFieldCategory" -> "FFIELDC" +"PseudoAlgebraicClosureOfFiniteFieldCategory" -> + "PseudoAlgebraicClosureOfPerfectFieldCategory()" +"PseudoAlgebraicClosureOfFiniteFieldCategory" -> + "FiniteFieldCategory()" @ <>= @@ -58177,6 +58180,376 @@ digraph pic { } @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{PseudoAlgebraicClosureOfRationalNumberCategory}{PACRATC} +\pagepic{ps/v102pseudoalgebraicclosureofrationalnumbercategory.ps}{PACRATC}{0.50} +<>= +)set break resume +)sys rm -f PseudoAlgebraicClosureOfRationalNumberCategory.output +)spool PseudoAlgebraicClosureOfRationalNumberCategory.output +)set message test on +)set message auto off +)clear all + +--S 1 of 1 +)show PseudoAlgebraicClosureOfRationalNumberCategory +--R PseudoAlgebraicClosureOfRationalNumberCategory is a category constructor +--R Abbreviation for PseudoAlgebraicClosureOfRationalNumberCategory is PACRATC +--R This constructor is exposed in this frame. +--R Issue )edit bookvol10.2.pamphlet to see algebra source code for PACRATC +--R +--R------------------------------- Operations -------------------------------- +--R ?*? : (%,Fraction Integer) -> % ?*? : (Fraction Integer,%) -> % +--R ?*? : (Fraction Integer,%) -> % ?*? : (%,Fraction Integer) -> % +--R ?*? : (%,%) -> % ?*? : (Integer,%) -> % +--R ?*? : (PositiveInteger,%) -> % ?**? : (%,Integer) -> % +--R ?**? : (%,PositiveInteger) -> % ?+? : (%,%) -> % +--R ?-? : (%,%) -> % -? : % -> % +--R ?/? : (%,Fraction Integer) -> % ?/? : (%,%) -> % +--R ?=? : (%,%) -> Boolean 1 : () -> % +--R 0 : () -> % ?^? : (%,Integer) -> % +--R ?^? : (%,PositiveInteger) -> % algebraic? : % -> Boolean +--R associates? : (%,%) -> Boolean coerce : Fraction Integer -> % +--R coerce : Fraction Integer -> % coerce : Integer -> % +--R coerce : Fraction Integer -> % coerce : % -> % +--R coerce : Integer -> % coerce : % -> OutputForm +--R conjugate : % -> % definingPolynomial : % -> SUP % +--R definingPolynomial : () -> SUP % dimension : () -> CardinalNumber +--R extDegree : % -> PI factor : % -> Factored % +--R fullOutput : % -> OutputForm gcd : List % -> % +--R gcd : (%,%) -> % ground? : % -> Boolean +--R hash : % -> SingleInteger inGroundField? : % -> Boolean +--R inv : % -> % latex : % -> String +--R lcm : List % -> % lcm : (%,%) -> % +--R lift : (%,%) -> SUP % lift : % -> SUP % +--R maxTower : List % -> % newElement : (SUP %,Symbol) -> % +--R one? : % -> Boolean previousTower : % -> % +--R prime? : % -> Boolean ?quo? : (%,%) -> % +--R recip : % -> Union(%,"failed") reduce : SUP % -> % +--R ?rem? : (%,%) -> % retract : % -> Fraction Integer +--R retract : % -> Fraction Integer retract : % -> Integer +--R sample : () -> % setTower! : % -> Void +--R sizeLess? : (%,%) -> Boolean squareFree : % -> Factored % +--R squareFreePart : % -> % transcendent? : % -> Boolean +--R unit? : % -> Boolean unitCanonical : % -> % +--R vectorise : (%,%) -> Vector % zero? : % -> Boolean +--R ?~=? : (%,%) -> Boolean +--R ?*? : (NonNegativeInteger,%) -> % +--R ?**? : (%,NonNegativeInteger) -> % +--R Frobenius : % -> % if Fraction Integer has FINITE +--R Frobenius : (%,NonNegativeInteger) -> % if Fraction Integer has FINITE +--R ?^? : (%,NonNegativeInteger) -> % +--R characteristic : () -> NonNegativeInteger +--R charthRoot : % -> Union(%,"failed") if Fraction Integer has CHARNZ or Fraction Integer has FINITE +--R degree : % -> OnePointCompletion PositiveInteger +--R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if Fraction Integer has CHARNZ or Fraction Integer has FINITE +--R distinguishedRootsOf : (SparseUnivariatePolynomial %,%) -> List % +--R divide : (%,%) -> Record(quotient: %,remainder: %) +--R euclideanSize : % -> NonNegativeInteger +--R expressIdealMember : (List %,%) -> Union(List %,"failed") +--R exquo : (%,%) -> Union(%,"failed") +--R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") +--R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) +--R extensionDegree : () -> OnePointCompletion PositiveInteger +--R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % +--R multiEuclidean : (List %,%) -> Union(List %,"failed") +--R newElement : (SUP %,%,Symbol) -> % +--R order : % -> OnePointCompletion PositiveInteger if Fraction Integer has CHARNZ or Fraction Integer has FINITE +--R primeFrobenius : % -> % if Fraction Integer has CHARNZ or Fraction Integer has FINITE +--R primeFrobenius : (%,NonNegativeInteger) -> % if Fraction Integer has CHARNZ or Fraction Integer has FINITE +--R principalIdeal : List % -> Record(coef: List %,generator: %) +--R retractIfCan : % -> Union(Fraction Integer,"failed") +--R retractIfCan : % -> Union(Fraction Integer,"failed") +--R retractIfCan : % -> Union(Integer,"failed") +--R subtractIfCan : (%,%) -> Union(%,"failed") +--R transcendenceDegree : () -> NonNegativeInteger +--R unitNormal : % -> Record(unit: %,canonical: %,associate: %) +--R +--E 1 + +)spool +)lisp (bye) +@ +<>= +==================================================================== +PseudoAlgebraicClosureOfRationalNumberCategory examples +==================================================================== + +See Also: +o )show PseudoAlgebraicClosureOfRationalNumberCategory + +@ + +\pagefrom{ExtensionField}{XF} + +{\bf Exports:}\\ +\begin{tabular}{lll} +\cross{PACRATC}{0} & +\cross{PACRATC}{1} & +\cross{PACRATC}{algebraic?} \\ +\cross{PACRATC}{associates?} & +\cross{PACRATC}{characteristic} & +\cross{PACRATC}{charthRoot} \\ +\cross{PACRATC}{coerce} & +\cross{PACRATC}{conjugate} & +\cross{PACRATC}{definingPolynomial} \\ +\cross{PACRATC}{degree} & +\cross{PACRATC}{dimension} & +\cross{PACRATC}{discreteLog} \\ +\cross{PACRATC}{distinguishedRootsOf} & +\cross{PACRATC}{divide} & +\cross{PACRATC}{euclideanSize} \\ +\cross{PACRATC}{expressIdealMember} & +\cross{PACRATC}{exquo} & +\cross{PACRATC}{extDegree} \\ +\cross{PACRATC}{extendedEuclidean} & +\cross{PACRATC}{extensionDegree} & +\cross{PACRATC}{factor} \\ +\cross{PACRATC}{Frobenius} & +\cross{PACRATC}{fullOutput} & +\cross{PACRATC}{gcd} \\ +\cross{PACRATC}{gcdPolynomial} & +\cross{PACRATC}{ground?} & +\cross{PACRATC}{hash} \\ +\cross{PACRATC}{inGroundField?} & +\cross{PACRATC}{inv} & +\cross{PACRATC}{latex} \\ +\cross{PACRATC}{lcm} & +\cross{PACRATC}{lift} & +\cross{PACRATC}{maxTower} \\ +\cross{PACRATC}{multiEuclidean} & +\cross{PACRATC}{newElement} & +\cross{PACRATC}{one?} \\ +\cross{PACRATC}{order} & +\cross{PACRATC}{previousTower} & +\cross{PACRATC}{prime?} \\ +\cross{PACRATC}{primeFrobenius} & +\cross{PACRATC}{principalIdeal} & +\cross{PACRATC}{?quo?} \\ +\cross{PACRATC}{recip} & +\cross{PACRATC}{reduce} & +\cross{PACRATC}{?rem?} \\ +\cross{PACRATC}{retract} & +\cross{PACRATC}{retractIfCan} & +\cross{PACRATC}{sample} \\ +\cross{PACRATC}{setTower!} & +\cross{PACRATC}{sizeLess?} & +\cross{PACRATC}{squareFree} \\ +\cross{PACRATC}{squareFreePart} & +\cross{PACRATC}{subtractIfCan} & +\cross{PACRATC}{transcendenceDegree} \\ +\cross{PACRATC}{transcendent?} & +\cross{PACRATC}{unit?} & +\cross{PACRATC}{unitCanonical} \\ +\cross{PACRATC}{unitNormal} & +\cross{PACRATC}{vectorise} & +\cross{PACRATC}{zero?} \\ +\cross{PACRATC}{?*?} & +\cross{PACRATC}{?**?} & +\cross{PACRATC}{?+?} \\ +\cross{PACRATC}{?-?} & +\cross{PACRATC}{-?} & +\cross{PACRATC}{?/?} \\ +\cross{PACRATC}{?=?} & +\cross{PACRATC}{?\~{}=?} & +\cross{PACRATC}{?\^{}?} +\end{tabular} + +{\bf Attributes Exported:} +\begin{itemize} +\item {\bf \cross{PACRATC}{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{PACRATC}{canonicalsClosed}} +is true if\hfill\\ +{\tt unitCanonical(a)*unitCanonical(b) = unitCanonical(a*b)}. +\item {\bf \cross{PACRATC}{noZeroDivisors}} +is true if $x * y \ne 0$ implies both x and y are non-zero. +\item {\bf \cross{PACRATC}{commutative(``*'')}} +is true if it has an operation $"*": (D,D) -> D$ +which is commutative. +\item {\bf \cross{PACRATC}{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{PACRATC}{leftUnitary}} +is true if $1 * x = x$ for all x. +\item {\bf \cross{PACRATC}{rightUnitary}} +is true if $x * 1 = x$ for all x. +\end{itemize} + +These exports come from \refto{PseudoAlgebraicClosureOfPerfectFieldCategory}(): +\begin{verbatim} + ?*? : (Fraction Integer,%) -> % + ?*? : (%,Fraction Integer) -> % + ?*? : (%,%) -> % + ?*? : (Integer,%) -> % + ?*? : (PositiveInteger,%) -> % + ?**? : (%,Integer) -> % + ?**? : (%,PositiveInteger) -> % + ?+? : (%,%) -> % + ?-? : (%,%) -> % + -? : % -> % + ?/? : (%,%) -> % + ?=? : (%,%) -> Boolean + 1 : () -> % + 0 : () -> % + ?^? : (%,Integer) -> % + ?^? : (%,PositiveInteger) -> % + associates? : (%,%) -> Boolean + characteristic : () -> NonNegativeInteger + coerce : Fraction Integer -> % + coerce : Integer -> % + coerce : % -> % + coerce : % -> OutputForm + conjugate : % -> % + definingPolynomial : % -> SUP % + definingPolynomial : () -> SUP % + distinguishedRootsOf : (SparseUnivariatePolynomial %,%) -> List % + divide : (%,%) -> Record(quotient: %,remainder: %) + euclideanSize : % -> NonNegativeInteger + expressIdealMember : (List %,%) -> Union(List %,"failed") + exquo : (%,%) -> Union(%,"failed") + extDegree : % -> PI + extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") + extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) + factor : % -> Factored % + fullOutput : % -> OutputForm + gcd : List % -> % + gcd : (%,%) -> % + gcdPolynomial : + (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> + SparseUnivariatePolynomial % + ground? : % -> Boolean + hash : % -> SingleInteger + inv : % -> % + latex : % -> String + lcm : List % -> % + lcm : (%,%) -> % + lift : (%,%) -> SUP % + lift : % -> SUP % + maxTower : List % -> % + multiEuclidean : (List %,%) -> Union(List %,"failed") + newElement : (SUP %,Symbol) -> % + newElement : (SUP %,%,Symbol) -> % + one? : % -> Boolean + previousTower : % -> % + prime? : % -> Boolean + principalIdeal : List % -> Record(coef: List %,generator: %) + ?quo? : (%,%) -> % + recip : % -> Union(%,"failed") + reduce : SUP % -> % + ?rem? : (%,%) -> % + sample : () -> % + setTower! : % -> Void + sizeLess? : (%,%) -> Boolean + squareFree : % -> Factored % + squareFreePart : % -> % + subtractIfCan : (%,%) -> Union(%,"failed") + unit? : % -> Boolean + unitCanonical : % -> % + unitNormal : % -> Record(unit: %,canonical: %,associate: %) + vectorise : (%,%) -> Vector % + zero? : % -> Boolean + ?~=? : (%,%) -> Boolean + ?*? : (NonNegativeInteger,%) -> % + ?**? : (%,NonNegativeInteger) -> % + ?^? : (%,NonNegativeInteger) -> % +\end{verbatim} + +These exports come from \refto{CharacteristicZero}(): +\begin{verbatim} +\end{verbatim} + +These exports come from \refto{RetractableTo}(Integer): +\begin{verbatim} + retract : % -> Integer + retractIfCan : % -> Union(Integer,"failed") +\end{verbatim} + +These exports come from \refto{RetractableTo}(Fraction(Integer)): +\begin{verbatim} + retract : % -> Fraction Integer + retractIfCan : % -> Union(Fraction Integer,"failed") +\end{verbatim} + +These exports come from \refto{ExtensionField}(Fraction(Integer)): +\begin{verbatim} + ?/? : (%,Fraction Integer) -> % + algebraic? : % -> Boolean + charthRoot : % -> Union(%,"failed") + if Fraction Integer has CHARNZ or Fraction Integer has FINITE + degree : % -> OnePointCompletion PositiveInteger + dimension : () -> CardinalNumber + discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") + if Fraction Integer has CHARNZ or Fraction Integer has FINITE + extensionDegree : () -> OnePointCompletion PositiveInteger + Frobenius : % -> % if Fraction Integer has FINITE + Frobenius : (%,NonNegativeInteger) -> % if Fraction Integer has FINITE + inGroundField? : % -> Boolean + order : % -> OnePointCompletion PositiveInteger + if Fraction Integer has CHARNZ or Fraction Integer has FINITE + primeFrobenius : % -> % + if Fraction Integer has CHARNZ or Fraction Integer has FINITE + transcendent? : % -> Boolean + primeFrobenius : (%,NonNegativeInteger) -> % + if Fraction Integer has CHARNZ or Fraction Integer has FINITE + retractIfCan : % -> Union(Fraction Integer,"failed") + transcendenceDegree : () -> NonNegativeInteger +\end{verbatim} + +<>= +)abbrev category PACRATC PseudoAlgebraicClosureOfRationalNumberCategory +++ Authors: Gaetan Hache +++ Date Created: feb 1997 +++ Date Last Updated: +++ Description: This category exports the function for the domain +++ PseudoAlgebraicClosureOfRationalNumber +++ which implement dynamic extension using the simple notion of tower +++ extensions. A tower extension T of the ground +++ field K is any sequence of field extension (T : K_0, K_1, ..., K_i...,K_n) +++ where K_0 = K and for i =1,2,...,n, K_i is an extension +++ of K_{i-1} of degree > 1 and defined by an irreducible polynomial +++ p(Z) in K_{i-1}. +++ Two towers (T_1: K_01, K_11,...,K_i1,...,K_n1) +++ and (T_2: K_02, K_12,...,K_i2,...,K_n2) +++ are said to be related if T_1 <= T_2 (or T_1 >= T_2), +++ that is if K_i1 = K_i2 for i=1,2,...,n1 +++ (or i=1,2,...,n2). Any algebraic operations defined for several elements +++ are only defined if all of the concerned elements are comming from +++ a set of related tour extensions. +PseudoAlgebraicClosureOfRationalNumberCategory:Category == + Join(PseudoAlgebraicClosureOfPerfectFieldCategory, + CharacteristicZero,RetractableTo(Integer), + RetractableTo(Fraction(Integer)),ExtensionField(Fraction(Integer))) + +@ +<>= +"PACRATC" [color=lightblue,href="bookvol10.2.pdf#nameddest=PACRATC"]; +"PACRATC" -> "XF" + +@ +<>= +"PseudoAlgebraicClosureOfRationalNumberCategory" + [color=lightblue,href="bookvol10.2.pdf#nameddest=PACRATC"]; +"PseudoAlgebraicClosureOfRationalNumberCategory" -> "ExtensionField(F:Field)" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"PseudoAlgebraicClosureOfRationalNumberCategory" [color=lightblue]; +"PseudoAlgebraicClosureOfRationalNumberCategory" -> "XF" + +"XF" [color=lightblue]; + +} + +@ \chapter{Category Layer 19} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pagehead{ComplexCategory}{COMPCAT} @@ -74603,6 +74976,7 @@ Note that this code is not included in the generated catdef.spad file. <> <> <> +<> <> <> @@ -74877,6 +75251,7 @@ digraph dotabb { <> <> <> +<> } @ <>= @@ -75094,6 +75469,7 @@ digraph dotfull { <> <> <> +<> } @ \eject diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index e0bb2d8..3aa9b6e 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -24471,6 +24471,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|PriorityQueueAggregate| . PRQAGG) (|PseudoAlgebraicClosureOfFiniteFieldCategory| . PACFFC) (|PseudoAlgebraicClosureOfPerfectFieldCategory| . PACPERC) + (|PseudoAlgebraicClosureOfRationalNumberCategory| . PACRATC) (|QuaternionCategory| . QUATCAT) (|QueueAggregate| . QUAGG) (|QuotientFieldCategory| . QFCAT) diff --git a/books/ps/v102pseudoalgebraicclosureofrationalnumbercategory.ps b/books/ps/v102pseudoalgebraicclosureofrationalnumbercategory.ps new file mode 100644 index 0000000..56eff47 --- /dev/null +++ b/books/ps/v102pseudoalgebraicclosureofrationalnumbercategory.ps @@ -0,0 +1,258 @@ +%!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 414 152 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 378 116 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% PseudoAlgebraicClosureOfRationalNumberCategory +gsave +0.537 0.247 0.902 nodecolor +newpath 370 108 moveto +0 108 lineto +0 72 lineto +370 72 lineto +closepath fill +1 setlinewidth +filled +0.537 0.247 0.902 nodecolor +newpath 370 108 moveto +0 108 lineto +0 72 lineto +370 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +7.5 85.9 moveto 355 (PseudoAlgebraicClosureOfRationalNumberCategory) alignedtext +grestore +% XF +gsave +0.537 0.247 0.902 nodecolor +newpath 212 36 moveto +158 36 lineto +158 0 lineto +212 0 lineto +closepath fill +1 setlinewidth +filled +0.537 0.247 0.902 nodecolor +newpath 212 36 moveto +158 36 lineto +158 0 lineto +212 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +175.5 13.9 moveto 19 (XF) alignedtext +grestore +% PseudoAlgebraicClosureOfRationalNumberCategory->XF +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 185 72 moveto +185 64 185 55 185 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 188.5 46 moveto +185 36 lineto +181.5 46 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 188.5 46 moveto +185 36 lineto +181.5 46 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +%%BoundingBox: 36 36 414 152 +end +restore +%%EOF diff --git a/changelog b/changelog index c928b43..0aea284 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20100503 tpd src/axiom-website/patches.html 20100503.02.tpd.patch +20100503 tpd src/algebra/Makefile help and regression for PACRATC +20100503 tpd books/bookvol5 expose PACRATC +20100503 tpd books/bookvol10.2 add PACRATC +20100503 tpd books/ps/v102pseudoalgebraicclosureofrationalnumbercategory.ps 20100503 tpd src/axiom-website/patches.html 20100503.01.tpd.patch 20100503 tpd src/algebra/Makefile add PACFFC help and regression 20100503 tpd books/bookvol5 add PACFFC diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 3226cdc..060ae4a 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -4320,15 +4320,15 @@ LAYER8=\ @ \subsection{Layer9} -Depends on: BTAGG FLALG LODOCAT MATCAT SRAGG VECTCAT\\ +Depends on: BTAGG FLALG LODOCAT MATCAT SRAGG VECTCAT XF\\ 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}/LSMP.o ${OUT}/LSMP1.o ${OUT}/MATCAT2.o ${OUT}/PTCAT.o \ - ${OUT}/STRICAT.o ${OUT}/TRIMAT.o \ + ${OUT}/LSMP.o ${OUT}/LSMP1.o ${OUT}/MATCAT2.o \ + ${OUT}/PTCAT.o ${OUT}/STRICAT.o ${OUT}/TRIMAT.o \ layer9done @ @@ -5192,7 +5192,8 @@ LAYER11=\ ${OUT}/MPC2.o ${OUT}/MPC3.o ${OUT}/MPOLY.o ${OUT}/MPRFF.o \ ${OUT}/MRATFAC.o ${OUT}/MULTSQFR.o ${OUT}/NORMRETR.o ${OUT}/NPCOEF.o \ ${OUT}/NSUP.o ${OUT}/NTPOLFN.o ${OUT}/ODP.o ${OUT}/ODEPRIM.o \ - ${OUT}/ODEPRRIC.o ${OUT}/OMPKG.o ${OUT}/OMSERVER.o ${OUT}/PADEPAC.o \ + ${OUT}/ODEPRRIC.o ${OUT}/OMPKG.o ${OUT}/OMSERVER.o ${OUT}/PACRATC.o \ + ${OUT}/PADEPAC.o \ ${OUT}/PADICRAT.o ${OUT}/PADICRC.o ${OUT}/PCOMP.o ${OUT}/PDECOMP.o \ ${OUT}/PF.o ${OUT}/PFBR.o ${OUT}/PFBRU.o ${OUT}/PFOTOOLS.o \ ${OUT}/PFRPAC.o ${OUT}/PGCD.o ${OUT}/PINTERPA.o ${OUT}/PLEQN.o \ @@ -7430,6 +7431,10 @@ LAYER11=\ "OMSERVER" -> "STRING" /*"OMSERVER" -> {"CHAR"; "SINT"; "OUTFORM"; "LIST"; "PRIMARR"; "A1AGG-"}*/ +"PACRATC" [color="#4488FF",href="bookvol10.2.pdf#nameddest=PACRATC"] +"PACRATC" -> "XF" +/*"PACRATC" -> {"VSPACE"; "FPC"; "FINITE"; "PACPERC"}*/ + "PADEPAC" [color="#FF4488",href="bookvol10.4.pdf#nameddest=PADEPAC"] /*"PADEPAC" -> {"FIELD"; "EUCDOM"; "PID"; "GCDDOM"; "INTDOM"; "COMRING"}*/ /*"PADEPAC" -> {"RING"; "RNG"; "ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"}*/ @@ -15857,7 +15862,7 @@ the required file to be loaded, thus defining the function. PACFFCDEPS = PACPERC ${MID}/PACFFC.nrlib/code.o: ${MID}/PACFFC.spad - @echo P1 making ${MID}/PACFFC.nrlib/code.o from ${MID}/PACFFC.spad + @echo P2 making ${MID}/PACFFC.nrlib/code.o from ${MID}/PACFFC.spad @ (cd ${MID} ; \ if [ -z "${NOISE}" ] ; then \ echo -e ")lib ${PACFFCDEPS} \n )co PACFFC.spad" | ${INTERPSYS} ; \ @@ -15866,6 +15871,26 @@ ${MID}/PACFFC.nrlib/code.o: ${MID}/PACFFC.spad | ${INTERPSYS} >${TMP}/trace ; \ fi ) @ +The PACRATC routine expects PseudoAlgebraicClosureOfPerfectFieldCategory +to be autoloaded. However this function is not picked up by the +MakeConstructorsAutoLoad function (bookvol5). The correct fix is to +dynamically update the databases at compile time. This fix just causes +the required file to be loaded, thus defining the function. +<>= + +PACRATCDEPS = PACPERC + +${MID}/PACRATC.nrlib/code.o: ${MID}/PACRATC.spad + @echo P3 making ${MID}/PACRATC.nrlib/code.o from ${MID}/PACRATC.spad + @ (cd ${MID} ; \ + if [ -z "${NOISE}" ] ; then \ + echo -e ")lib ${PACRATCDEPS} \n )co PACRATC.spad" \ + | ${INTERPSYS} ; \ + else \ + echo -e ")lib ${PACRATCDEPS} \n )co PACRATC.spad" \ + | ${INTERPSYS} >${TMP}/trace ; \ + fi ) +@ \section{Broken Files} These files are Aldor files @@ -16677,6 +16702,7 @@ SPADHELP=\ ${HELP}/Product.help \ ${HELP}/PseudoAlgebraicClosureOfFiniteFieldCategory.help \ ${HELP}/PseudoAlgebraicClosureOfPerfectFieldCategory.help \ + ${HELP}/PseudoAlgebraicClosureOfRationalNumberCategory.help \ ${HELP}/Quaternion.help \ ${HELP}/QuaternionCategoryFunctions2.help \ ${HELP}/Queue.help \ @@ -16823,6 +16849,7 @@ REGRESS= \ Product.regress \ PseudoAlgebraicClosureOfFiniteFieldCategory.regress \ PseudoAlgebraicClosureOfPerfectFieldCategory.regress \ + PseudoAlgebraicClosureOfRationalNumberCategory.regress \ Quaternion.regress \ QuaternionCategoryFunctions2.regress \ Queue.regress \ @@ -17994,6 +18021,21 @@ ${HELP}/PseudoAlgebraicClosureOfPerfectFieldCategory.help: \ @echo "PseudoAlgebraicClosureOfPerfectFieldCategory (PACPERC)" \ >>${HELPFILE} +${HELP}/PseudoAlgebraicClosureOfRationalNumberCategory.help: \ + ${BOOKS}/bookvol10.2.pamphlet + @echo 7938 create PseudoAlgebraicClosureOfRationalNumberCategory.help \ + from ${BOOKS}/bookvol10.2.pamphlet + @${TANGLE} -R"PseudoAlgebraicClosureOfRationalNumberCategory.help" \ + ${BOOKS}/bookvol10.2.pamphlet \ + >${HELP}/PseudoAlgebraicClosureOfRationalNumberCategory.help + @cp ${HELP}/PseudoAlgebraicClosureOfRationalNumberCategory.help \ + ${HELP}/PACRATC.help + @${TANGLE} -R"PseudoAlgebraicClosureOfRationalNumberCategory.input" \ + ${BOOKS}/bookvol10.2.pamphlet \ + >${INPUT}/PseudoAlgebraicClosureOfRationalNumberCategory.input + @echo "PseudoAlgebraicClosureOfRationalNumberCategory (PACRATC)" \ + >>${HELPFILE} + ${HELP}/Quaternion.help: ${BOOKS}/bookvol10.3.pamphlet @echo 7940 create Quaternion.help from ${BOOKS}/bookvol10.3.pamphlet @${TANGLE} -R"Quaternion.help" ${BOOKS}/bookvol10.3.pamphlet \ diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 49690cc..d963bfc 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2667,5 +2667,7 @@ src/axiom-website/hyperdoc/Makefile deleted
books/ps/v102pseudoalgebraicclosureofperfectfieldcategory.ps add
20100503.01.tpd.patch books/bookvol10.2 PseudoAlgebraicClosureOfFiniteFieldCategory added +20100503.02.tpd.patch +books/bookvol10.2 PseudoAlgebraicClosureOfRationalNumberCategory added