diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet index 41005c6..ffc18ab 100644 --- a/books/bookvol10.3.pamphlet +++ b/books/bookvol10.3.pamphlet @@ -25750,6 +25750,425 @@ DirectProductModule(n, R, S): DPcategory == DPcapsule where @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain DIRRING DirichletRing} +The Dirichlet Ring is the ring of arithmetical functions +$$ f: \mathbb N_+ \rightarrow R$$ +(see {\bf \verb|http://en.wikipedia.org/wiki/Arithmetic_function|}) together +with the Dirichlet convolution (see +{\bf \verb|http://en.wikipedia.org/wiki/Dirichlet_convolution|}) as +multiplication and component-wise addition. Since we can consider +the values an arithmetic functions assumes as the coefficients of a +Dirichlet generating series, we call $R$ the coefficient ring of a +function. + +In general we only assume that the coefficient ring $R$ is a ring. +If $R$ happens to be commutative, then so is the Dirichlet ring, and +in this case it is even an algebra. + +Apart from the operations inherited from those categories, we only +provide some convenient coercion functions. + +<>= +)set break resume +)sys rm -f DirichletRing.output +)spool DirichletRing.output +)set message test on +)set message auto off +)clear all + +--S 1 of 21 +t1:DIRRING INT := (n:PI):INT +-> moebiusMu n +--R +--R +--R (1) [1,- 1,- 1,0,- 1,1,- 1,0,0,1,...] +--R Type: DirichletRing Integer +--E 1 + +--S 2 of 21 +[t1.i for i in 1..4] +--R +--R +--R (2) [1,- 1,- 1,0] +--R Type: List Integer +--E 2 + +--S 3 of 21 +t2:DIRRING INT := [moebiusMu n for n in 1..] +--R +--R +--R (3) [1,- 1,- 1,0,- 1,1,- 1,0,0,1,...] +--R Type: DirichletRing Integer +--E 3 + +--S 4 of 21 +[t2.i for i in 1..4] +--R +--R +--R (4) [1,- 1,- 1,0] +--R Type: List Integer +--E 4 + +--S 5 of 21 +DIRRING INT has CommutativeRing +--R +--R +--R (5) true +--R Type: Boolean +--E 5 + +--S 6 of 21 +mu:DIRRING FRAC INT := (n:PI):FRAC INT +-> moebiusMu n +--R +--R +--R (6) [1,- 1,- 1,0,- 1,1,- 1,0,0,1,...] +--R Type: DirichletRing Fraction Integer +--E 6 + +--S 7 of 21 +phi:DIRRING FRAC INT := (n:PI):FRAC INT +-> eulerPhi n +--R +--R +--R (7) [1,1,2,2,4,2,6,4,6,4,...] +--R Type: DirichletRing Fraction Integer +--E 7 + +--S 8 of 21 +t3:=[(recip mu * phi).n for n in 1..10] +--R +--R +--R (8) [1,2,3,4,5,6,7,8,9,10] +--R Type: List Fraction Integer +--E 8 + +--S 9 of 21 +t4:=[(phi * recip mu).n for n in 1..10] +--R +--R +--R (9) [1,2,3,4,5,6,7,8,9,10] +--R Type: List Fraction Integer +--E 9 + +--S 10 of 21 +reduce(_and,[(x = y)@Boolean for x in t3 for y in t4]) +--R +--R +--R (10) true +--R Type: Boolean +--E 10 + +--S 11 of 21 +DIRRING FRAC INT has Algebra FRAC INT +--R +--R +--R (11) true +--R Type: Boolean +--E 11 + +--S 12 of 21 +t5:=[(1/2 * phi).n for n in 1..10] +--R +--R +--R 1 1 +--R (12) [-,-,1,1,2,1,3,2,3,2] +--R 2 2 +--R Type: List Fraction Integer +--E 12 + +--S 13 of 21 +t6:=[eulerPhi n/2 for n in 1..10] +--R +--R +--R 1 1 +--R (13) [-,-,1,1,2,1,3,2,3,2] +--R 2 2 +--R Type: List Fraction Integer +--E 13 + +--S 14 of 21 +reduce(_and,[(x = y)@Boolean for x in t5 for y in t6]) +--R +--R +--R (14) true +--R Type: Boolean +--E 14 + +--S 15 of 21 +t7:=[(recip mu).n for n in 1..10] +--R +--R +--R (15) [1,1,1,1,1,1,1,1,1,1] +--R Type: List Fraction Integer +--E 15 + +--S 16 of 21 +t8:=[1 for n in 1..10] +--R +--R +--R (16) [1,1,1,1,1,1,1,1,1,1] +--R Type: List PositiveInteger +--E 16 + +--S 17 of 21 +reduce(_and,[(x = y)@Boolean for x in t7 for y in t8]) +--R +--R +--R (17) true +--R Type: Boolean +--E 17 + +--S 18 of 21 +t9:=[(recip mu * phi).n for n in 1..10] +--R +--R +--R (18) [1,2,3,4,5,6,7,8,9,10] +--R Type: List Fraction Integer +--E 18 + +--S 19 of 21 +t10:=[n for n in 1..10] +--R +--R +--R (19) [1,2,3,4,5,6,7,8,9,10] +--R Type: List PositiveInteger +--E 19 + +--S 20 of 21 +reduce(_and,[(x = y)@Boolean for x in t9 for y in t10]) +--R +--R +--R (20) true +--R Type: Boolean +--E 20 + +--S 21 of 21 +)show DirichletRing +--R DirichletRing Coef: Ring is a domain constructor +--R Abbreviation for DirichletRing is DIRRING +--R This constructor is exposed in this frame. +--R Issue )edit bookvol10.3.pamphlet to see algebra source code for DIRRING +--R +--R------------------------------- Operations -------------------------------- +--R ?*? : (%,%) -> % ?*? : (Integer,%) -> % +--R ?*? : (PositiveInteger,%) -> % ?**? : (%,PositiveInteger) -> % +--R ?+? : (%,%) -> % ?-? : (%,%) -> % +--R -? : % -> % ?=? : (%,%) -> Boolean +--R 1 : () -> % 0 : () -> % +--R ?^? : (%,PositiveInteger) -> % coerce : % -> Stream Coef +--R coerce : Stream Coef -> % coerce : Integer -> % +--R coerce : % -> OutputForm ?.? : (%,PositiveInteger) -> Coef +--R hash : % -> SingleInteger latex : % -> String +--R one? : % -> Boolean recip : % -> Union(%,"failed") +--R sample : () -> % zero? : % -> Boolean +--R zeta : () -> % ?~=? : (%,%) -> Boolean +--R ?*? : (%,Coef) -> % if Coef has COMRING +--R ?*? : (Coef,%) -> % if Coef has COMRING +--R ?*? : (NonNegativeInteger,%) -> % +--R ?**? : (%,NonNegativeInteger) -> % +--R ?^? : (%,NonNegativeInteger) -> % +--R additive? : (%,PositiveInteger) -> Boolean +--R associates? : (%,%) -> Boolean if Coef has COMRING +--R characteristic : () -> NonNegativeInteger +--R coerce : % -> % if Coef has COMRING +--R coerce : Coef -> % if Coef has COMRING +--R coerce : % -> (PositiveInteger -> Coef) +--R coerce : (PositiveInteger -> Coef) -> % +--R exquo : (%,%) -> Union(%,"failed") if Coef has COMRING +--R multiplicative? : (%,PositiveInteger) -> Boolean +--R subtractIfCan : (%,%) -> Union(%,"failed") +--R unit? : % -> Boolean if Coef has COMRING +--R unitCanonical : % -> % if Coef has COMRING +--R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if Coef has COMRING +--R +--E 21 + +)spool +)lisp (bye) +@ +<>= +==================================================================== +DirichletRing examples +==================================================================== + +See Also: +o )show DirichletRing + +@ + +\pagehead{DirichletRing}{DIRRING} +\pagepic{ps/v103dirichletring.ps}{DIRRING}{1.00} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{DIRRING}{0} & +\cross{DIRRING}{1} & +\cross{DIRRING}{?*?} & +\cross{DIRRING}{?**?} & +\cross{DIRRING}{?+?} \\ +\cross{DIRRING}{?-?} & +\cross{DIRRING}{-?} & +\cross{DIRRING}{?=?} & +\cross{DIRRING}{?\^{}?} & +\cross{DIRRING}{?.?} \\ +\cross{DIRRING}{?$~=$?} & +\cross{DIRRING}{additive?} & +\cross{DIRRING}{associates?} & +\cross{DIRRING}{characteristic} & +\cross{DIRRING}{coerce} \\ +\cross{DIRRING}{exquo} & +\cross{DIRRING}{hash} & +\cross{DIRRING}{latex} & +\cross{DIRRING}{multiplicative?} & +\cross{DIRRING}{one?} \\ +\cross{DIRRING}{recip} & +\cross{DIRRING}{sample} & +\cross{DIRRING}{subtractIfCan} & +\cross{DIRRING}{unit?} & +\cross{DIRRING}{unitCanonical} \\ +\cross{DIRRING}{unitNormal} & +\cross{DIRRING}{zero?} & +\cross{DIRRING}{zeta} && +\end{tabular} + +<>= +)abbrev domain DIRRING DirichletRing +++ Author: Martin Rubey +++ Description: DirichletRing is the ring of arithmetical functions +++ with Dirichlet convolution as multiplication +DirichletRing(Coef: Ring): + Exports == Implementation where + + PI ==> PositiveInteger + FUN ==> PI -> Coef + + Exports ==> Join(Ring, Eltable(PI, Coef)) with + + if Coef has CommutativeRing then + IntegralDomain + + if Coef has CommutativeRing then + Algebra Coef + + coerce: FUN -> % + coerce: % -> FUN + coerce: Stream Coef -> % + coerce: % -> Stream Coef + + zeta: constant -> % + ++ zeta() returns the function which is constantly one + + multiplicative?: (%, PI) -> Boolean + ++ multiplicative?(a, n) returns true if the first + ++ n coefficients of a are multiplicative + + additive?: (%, PI) -> Boolean + ++ additive?(a, n) returns true if the first + ++ n coefficients of a are additive + + Implementation ==> add + + Rep := Record(function: FUN) + + per(f: Rep): % == f pretend % + rep(a: %): Rep == a pretend Rep + + elt(a: %, n: PI): Coef == + f: FUN := (rep a).function + f n + + coerce(a: %): FUN == (rep a).function + + coerce(f: FUN): % == per [f] + + indices: Stream Integer + := integers(1)$StreamTaylorSeriesOperations(Integer) + + coerce(a: %): Stream Coef == + f: FUN := (rep a).function + map((n: Integer): Coef +-> f(n::PI), indices) + $StreamFunctions2(Integer, Coef) + + coerce(f: Stream Coef): % == + ((n: PI): Coef +-> f.(n::Integer))::% + + coerce(f: %): OutputForm == f::Stream Coef::OutputForm + + 1: % == + ((n: PI): Coef +-> (if one? n then 1$Coef else 0$Coef))::% + + 0: % == + ((n: PI): Coef +-> 0$Coef)::% + + zeta: % == + ((n: PI): Coef +-> 1$Coef)::% + + (f: %) + (g: %) == + ((n: PI): Coef +-> f(n)+g(n))::% + + - (f: %) == + ((n: PI): Coef +-> -f(n))::% + + (a: Integer) * (f: %) == + ((n: PI): Coef +-> a*f(n))::% + + (a: Coef) * (f: %) == + ((n: PI): Coef +-> a*f(n))::% + + import IntegerNumberTheoryFunctions + + (f: %) * (g: %) == + conv := (n: PI): Coef +-> _ + reduce((a: Coef, b: Coef): Coef +-> a + b, _ + [f(d::PI) * g((n quo d)::PI) for d in divisors(n::Integer)], 0) + $ListFunctions2(Coef, Coef) + conv::% + + unit?(a: %): Boolean == not (recip(a(1$PI))$Coef case "failed") + + qrecip: (%, Coef, PI) -> Coef + qrecip(f: %, f1inv: Coef, n: PI): Coef == + if one? n then f1inv + else + -f1inv * reduce(_+, [f(d::PI) * qrecip(f, f1inv, (n quo d)::PI) _ + for d in rest divisors(n)], 0) _ + $ListFunctions2(Coef, Coef) + + recip f == + if (f1inv := recip(f(1$PI))$Coef) case "failed" then "failed" + else + mp := (n: PI): Coef +-> qrecip(f, f1inv, n) + + mp::%::Union(%, "failed") + + multiplicative?(a, n) == + for i in 2..n repeat + fl := factors(factor i)$Factored(Integer) + rl := [a.(((f.factor)::PI)**((f.exponent)::PI)) for f in fl] + if a.(i::PI) ~= reduce((r:Coef, s:Coef):Coef +-> r*s, rl) + then + output(i::OutputForm)$OutputPackage + output(rl::OutputForm)$OutputPackage + return false + true + + additive?(a, n) == + for i in 2..n repeat + fl := factors(factor i)$Factored(Integer) + rl := [a.(((f.factor)::PI)**((f.exponent)::PI)) for f in fl] + if a.(i::PI) ~= reduce((r:Coef, s:Coef):Coef +-> r+s, rl) + then + output(i::OutputForm)$OutputPackage + output(rl::OutputForm)$OutputPackage + return false + true + +@ +<>= +"DIRRING" [color="#88FF44",href="bookvol10.3.pdf#nameddest=DIRRING"] +"FLAGG" [color="#4488FF",href="bookvol10.2.pdf#nameddest=FLAGG"] +"DIRRING" -> "FLAGG" + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain DMP DistributedMultivariatePolynomial} <>= @@ -147694,6 +148113,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 fb71ff0..21b4e7a 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -23905,6 +23905,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|DesingTree| . DSTREE) (|DesingTreePackage| . DTP) (|DiophantineSolutionPackage| . DIOSP) + (|DirichletRing| . DIRRING) (|DirectProductFunctions2| . DIRPROD2) (|DisplayPackage| . DISPLAY) (|DistinctDegreeFactorize| . DDFACT) diff --git a/books/ps/v103dirichletring.ps b/books/ps/v103dirichletring.ps new file mode 100644 index 0000000..ef04ac9 --- /dev/null +++ b/books/ps/v103dirichletring.ps @@ -0,0 +1,266 @@ +%!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: 1 +%%BoundingBox: 36 36 122 152 +%%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 122 152 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 86 116 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% DIRRING +gsave +[ /Rect [ 0 72 78 108 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=DIRRING) >> + /Subtype /Link +/ANN pdfmark +0.273 0.733 1.000 nodecolor +newpath 78 108 moveto +0 108 lineto +0 72 lineto +78 72 lineto +closepath fill +1 setlinewidth +filled +0.273 0.733 1.000 nodecolor +newpath 78 108 moveto +0 108 lineto +0 72 lineto +78 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +8 85.9 moveto 62 (DIRRING) alignedtext +grestore +% FLAGG +gsave +[ /Rect [ 7 0 71 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=FLAGG) >> + /Subtype /Link +/ANN pdfmark +0.606 0.733 1.000 nodecolor +newpath 71 36 moveto +7 36 lineto +7 0 lineto +71 0 lineto +closepath fill +1 setlinewidth +filled +0.606 0.733 1.000 nodecolor +newpath 71 36 moveto +7 36 lineto +7 0 lineto +71 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +14.5 13.9 moveto 49 (FLAGG) alignedtext +grestore +% DIRRING->FLAGG +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 39 72 moveto +39 64 39 55 39 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 42.5 46 moveto +39 36 lineto +35.5 46 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 42.5 46 moveto +39 36 lineto +35.5 46 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +end +restore +%%EOF diff --git a/changelog b/changelog index 49b7b79..f674b9f 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20100702 mxr src/axiom-website/patches.html 20100702.01.mxr.patch +20100702 mxr src/algebra/Makefile test and help for Dirichlet ring +20100702 mxr books/bookvol5 expose Dirichlet ring +20100702 mxr books/bookvol10.3 add Dirichlet ring +20100702 mxr books/ps/v103dirichletring.ps add Dirichlet ring 20100701 myb src/axiom-website/patches.html 20100701.02.myb.patch 20100701 myb src/algebra/Makefile test and help files for Export3D 20100701 myb books/bookvol5 expose Export3D diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index bd287c5..b5eba6c 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -2276,8 +2276,8 @@ LAYER7=\ ${OUT}/A1AGG.o ${OUT}/A1AGG-.o ${OUT}/ARR2CAT.o ${OUT}/ARR2CAT-.o \ ${OUT}/ASP34.o ${OUT}/BBTREE.o ${OUT}/BFUNCT.o ${OUT}/BLAS1.o \ ${OUT}/BPADIC.o \ - ${OUT}/BTREE.o ${OUT}/CRAPACK.o ${OUT}/DEQUEUE.o ${OUT}/DIV.o \ - ${OUT}/DLIST.o \ + ${OUT}/BTREE.o ${OUT}/CRAPACK.o ${OUT}/DEQUEUE.o ${OUT}/DIRRING.o \ + ${OUT}/DIV.o ${OUT}/DLIST.o \ ${OUT}/DRAWCX.o ${OUT}/DRAWPT.o ${OUT}/D01GBFA.o ${OUT}/D02EJFA.o \ ${OUT}/D03FAFA.o ${OUT}/FAMR.o ${OUT}/FAMR-.o ${OUT}/FIELD.o \ ${OUT}/FLASORT.o \ @@ -2471,6 +2471,20 @@ LAYER7=\ "DEQUEUE" -> "FLAGG" /*"DEQUEUE" -> "ELAGG"*/ +"DIRRING" [color="#88FF44",href="bookvol10.3.pdf#nameddest=DIRRING"] +"DIRRING" -> "FLAGG" +/*"DIRRING" -> {"RING"; "RNG"; "ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"}*/ +/*"DIRRING" -> {"SETCAT"; "BASTYPE"; "KOERCE"; "SGROUP"; "MONOID"; "LMODULE"}*/ +/*"DIRRING" -> {"ELTAB"; "INTDOM"; "COMRING"; "BMODULE"; "RMODULE"}*/ +/*"DIRRING" -> {"ALGEBRA"; "MODULE"; "ENTIRER"; "INT"; "INS"; "UFD"}*/ +/*"DIRRING" -> {"GCDDOM"; "EUCDOM"; "PID"; "OINTDOM"; "ORDRING"; "OAGROUP"}*/ +/*"DIRRING" -> {"OCAMON"; "OAMON"; "OASGP"; "ORDSET"; "DIFRING"; "KONVERT"}*/ +/*"DIRRING" -> {"RETRACT"; "LINEXP"; "PATMAB"; "CFCAT"; "REAL"; "CHARZ"}*/ +/*"DIRRING" -> {"STEP"; "PI"; "NNI"; "BOOLEAN"; "LIST"; "ILIST"; "INS-"}*/ +/*"DIRRING" -> {"MONOID-"; "ABELSG-"; "SGROUP-"; "LSAGG"; "STAGG"; "URAGG"}*/ +/*"DIRRING" -> {"RCAGG"; "HOAGG"; "AGG"; "TYPE"; "EVALAB"; IEVALAB"}*/ +/*"DIRRING" -> {"LNAGG"; "IXAGG"; "ELTAGG"; "CLAGG"; "ELAGG"; "OM"; "LSAGG-"}*/ + "DIV" [color="#88FF44",href="bookvol10.3.pdf#nameddest=DIV"] "DIV" -> "DIVCAT" "DIV" -> "FLAGG" @@ -16473,6 +16487,8 @@ ${MID}/clique2.spad: ${CLIQUE2FILES} | ${INTERPSYS} >${TMP}/trace ; \ echo ")co clique2.spad" | ${INTERPSYS} >${TMP}/trace ; \ fi ) + @ cp ${MID}/PAFF.nrlib/code.o ${OUT}/PAFF.o + @ cp ${MID}/PAFFFF.nrlib/code.o ${OUT}/PAFFFF.o @ \section{Broken Files} @@ -17303,6 +17319,7 @@ SPADHELP=\ ${HELP}/DirectProductCategory.help \ ${HELP}/DirectProductMatrixModule.help \ ${HELP}/DirectProductModule.help \ + ${HELP}/DirichletRing.help \ ${HELP}/DistributedMultivariatePolynomial.help \ ${HELP}/DivisionRing.help \ ${HELP}/Divisor.help \ @@ -17989,6 +18006,7 @@ REGRESS= \ DirectProductCategory.regress \ DirectProductMatrixModule.regress \ DirectProductModule.regress \ + DirichletRing.regress \ DistributedMultivariatePolynomial.regress \ DivisionRing.regress \ Divisor.regress \ @@ -20023,6 +20041,19 @@ ${HELP}/DirectProductModule.help: ${BOOKS}/bookvol10.3.pamphlet >${INPUT}/DirectProductModule.input @echo "DirectProductModule (DPMO)" >>${HELPFILE} +${HELP}/DirichletRing.help: \ + ${BOOKS}/bookvol10.3.pamphlet + @echo 7299 create DirichletRing.help \ + from ${BOOKS}/bookvol10.3.pamphlet + @${TANGLE} -R"DirichletRing.help" \ + ${BOOKS}/bookvol10.3.pamphlet \ + >${HELP}/DirichletRing.help + @cp ${HELP}/DirichletRing.help ${HELP}/DIRRING.help + @${TANGLE} -R"DirichletRing.input" \ + ${BOOKS}/bookvol10.3.pamphlet \ + >${INPUT}/DirichletRing.input + @echo "DirichletRing (DIRRING)" >>${HELPFILE} + ${HELP}/DistributedMultivariatePolynomial.help: \ ${BOOKS}/bookvol10.3.pamphlet @echo 7299 create DistributedMultivariatePolynomial.help \ diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index f0f9e15..21506c5 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2960,5 +2960,7 @@ src/input/exampleagcode.input additional PAFF testing
src/input/paffexample.input additional PAFF testing
20100701.02.myb.patch books/bookvol10.4 add Export3D
+20100702.01.mxr.patch +books/bookvol10.3 add Dirichlet ring