diff --git a/books/ps/v103antisymm.ps b/books/ps/v103antisymm.ps new file mode 100644 index 0000000..b9b4c31 --- /dev/null +++ b/books/ps/v103antisymm.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 122 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 122 80 +%%PageOrientation: Portrait +gsave +36 36 86 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +84 42 lineto +84 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +84 42 lineto +84 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% AntiSymm +[ /Rect [ 0 0 78 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=ANTISYM) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 78 36 moveto +0 36 lineto +0 0 lineto +78 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 78 36 moveto +0 36 lineto +0 0 lineto +78 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(AntiSymm) +[10.08 6.96 3.84 3.84 7.68 6.96 10.8 10.8] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d01ajfannatype.ps b/books/ps/v103d01ajfannatype.ps new file mode 100644 index 0000000..dec46d7 --- /dev/null +++ b/books/ps/v103d01ajfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 152 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 152 80 +%%PageOrientation: Portrait +gsave +36 36 116 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +114 42 lineto +114 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +114 42 lineto +114 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d01ajfAnnaType +[ /Rect [ 0 0 108 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D01AJFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 108 36 moveto +0 36 lineto +0 0 lineto +108 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 108 36 moveto +0 36 lineto +0 0 lineto +108 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(d01ajfAnnaType) +[6.96 6.24 6.96 5.76 3.84 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d01akfannatype.ps b/books/ps/v103d01akfannatype.ps new file mode 100644 index 0000000..ba55a83 --- /dev/null +++ b/books/ps/v103d01akfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 156 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 156 80 +%%PageOrientation: Portrait +gsave +36 36 120 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +118 42 lineto +118 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +118 42 lineto +118 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d01akfAnnaType +[ /Rect [ 0 0 112 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D01AKFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 112 36 moveto +0 36 lineto +0 0 lineto +112 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 112 36 moveto +0 36 lineto +0 0 lineto +112 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(d01akfAnnaType) +[6.96 6.24 6.96 6.24 6.96 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d01alfannatype.ps b/books/ps/v103d01alfannatype.ps new file mode 100644 index 0000000..de182fd --- /dev/null +++ b/books/ps/v103d01alfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 152 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 152 80 +%%PageOrientation: Portrait +gsave +36 36 116 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +114 42 lineto +114 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +114 42 lineto +114 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d01alfAnnaType +[ /Rect [ 0 0 108 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D01ALFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 108 36 moveto +0 36 lineto +0 0 lineto +108 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 108 36 moveto +0 36 lineto +0 0 lineto +108 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(d01alfAnnaType) +[6.96 6.24 6.96 6.24 3.84 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d01amfannatype.ps b/books/ps/v103d01amfannatype.ps new file mode 100644 index 0000000..1efe39b --- /dev/null +++ b/books/ps/v103d01amfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 160 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 160 80 +%%PageOrientation: Portrait +gsave +36 36 124 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +122 42 lineto +122 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +122 42 lineto +122 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d01amfAnnaType +[ /Rect [ 0 0 116 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D01AMFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 116 36 moveto +0 36 lineto +0 0 lineto +116 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 116 36 moveto +0 36 lineto +0 0 lineto +116 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(d01amfAnnaType) +[6.96 6.24 6.96 6.24 10.8 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d01anfannatype.ps b/books/ps/v103d01anfannatype.ps new file mode 100644 index 0000000..93d8549 --- /dev/null +++ b/books/ps/v103d01anfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 156 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 156 80 +%%PageOrientation: Portrait +gsave +36 36 120 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +118 42 lineto +118 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +118 42 lineto +118 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d01anfAnnaType +[ /Rect [ 0 0 112 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D01ANFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 112 36 moveto +0 36 lineto +0 0 lineto +112 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 112 36 moveto +0 36 lineto +0 0 lineto +112 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(d01anfAnnaType) +[6.96 6.24 6.96 6.24 6.96 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d01apfannatype.ps b/books/ps/v103d01apfannatype.ps new file mode 100644 index 0000000..c4e1e8f --- /dev/null +++ b/books/ps/v103d01apfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 156 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 156 80 +%%PageOrientation: Portrait +gsave +36 36 120 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +118 42 lineto +118 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +118 42 lineto +118 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d01apfAnnaType +[ /Rect [ 0 0 112 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D01APFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 112 36 moveto +0 36 lineto +0 0 lineto +112 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 112 36 moveto +0 36 lineto +0 0 lineto +112 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(d01apfAnnaType) +[6.96 6.24 6.96 6.24 6.96 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d01aqfannatype.ps b/books/ps/v103d01aqfannatype.ps new file mode 100644 index 0000000..b414a37 --- /dev/null +++ b/books/ps/v103d01aqfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 156 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 156 80 +%%PageOrientation: Portrait +gsave +36 36 120 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +118 42 lineto +118 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +118 42 lineto +118 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d01aqfAnnaType +[ /Rect [ 0 0 112 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D01AQFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 112 36 moveto +0 36 lineto +0 0 lineto +112 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 112 36 moveto +0 36 lineto +0 0 lineto +112 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(d01aqfAnnaType) +[6.96 6.24 6.96 6.24 6.96 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d01asfannatype.ps b/books/ps/v103d01asfannatype.ps new file mode 100644 index 0000000..7648839 --- /dev/null +++ b/books/ps/v103d01asfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 154 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 154 80 +%%PageOrientation: Portrait +gsave +36 36 118 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +116 42 lineto +116 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +116 42 lineto +116 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d01asfAnnaType +[ /Rect [ 0 0 110 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D01ASFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 110 36 moveto +0 36 lineto +0 0 lineto +110 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 110 36 moveto +0 36 lineto +0 0 lineto +110 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(d01asfAnnaType) +[6.96 6.24 6.96 6.24 5.52 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d01fcfannatype.ps b/books/ps/v103d01fcfannatype.ps new file mode 100644 index 0000000..768be3d --- /dev/null +++ b/books/ps/v103d01fcfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 154 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 154 80 +%%PageOrientation: Portrait +gsave +36 36 118 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +116 42 lineto +116 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +116 42 lineto +116 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d01fcfAnnaType +[ /Rect [ 0 0 110 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D01FCFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 110 36 moveto +0 36 lineto +0 0 lineto +110 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 110 36 moveto +0 36 lineto +0 0 lineto +110 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(d01fcfAnnaType) +[6.96 6.24 6.96 4.56 6.24 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d01gbfannatype.ps b/books/ps/v103d01gbfannatype.ps new file mode 100644 index 0000000..8bf14de --- /dev/null +++ b/books/ps/v103d01gbfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 156 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 156 80 +%%PageOrientation: Portrait +gsave +36 36 120 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +118 42 lineto +118 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +118 42 lineto +118 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d01gbfAnnaType +[ /Rect [ 0 0 112 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D01GBFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 112 36 moveto +0 36 lineto +0 0 lineto +112 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 112 36 moveto +0 36 lineto +0 0 lineto +112 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(d01gbfAnnaType) +[6.96 6.24 6.96 6.96 6.96 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d01transformfunctiontype.ps b/books/ps/v103d01transformfunctiontype.ps new file mode 100644 index 0000000..e343d48 --- /dev/null +++ b/books/ps/v103d01transformfunctiontype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 214 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 214 80 +%%PageOrientation: Portrait +gsave +36 36 178 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +176 42 lineto +176 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +176 42 lineto +176 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d01TransformFunctionType +[ /Rect [ 0 0 170 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D01TRNS) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 170 36 moveto +0 36 lineto +0 0 lineto +170 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 170 36 moveto +0 36 lineto +0 0 lineto +170 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(d01TransformFunctionType) +[6.96 6.24 6.96 7.92 4.8 6.24 6.96 5.52 4.08 6.96 5.04 10.8 7.44 6.96 6.96 6.24 3.84 3.84 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d02bbfannatype.ps b/books/ps/v103d02bbfannatype.ps new file mode 100644 index 0000000..6434fdb --- /dev/null +++ b/books/ps/v103d02bbfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 158 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 158 80 +%%PageOrientation: Portrait +gsave +36 36 122 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +120 42 lineto +120 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +120 42 lineto +120 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d02bbfAnnaType +[ /Rect [ 0 0 114 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D02BBFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 114 36 moveto +0 36 lineto +0 0 lineto +114 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 114 36 moveto +0 36 lineto +0 0 lineto +114 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(d02bbfAnnaType) +[6.96 6.96 6.96 6.96 6.96 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d02bhfannatype.ps b/books/ps/v103d02bhfannatype.ps new file mode 100644 index 0000000..3a91166 --- /dev/null +++ b/books/ps/v103d02bhfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 158 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 158 80 +%%PageOrientation: Portrait +gsave +36 36 122 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +120 42 lineto +120 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +120 42 lineto +120 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d02bhfAnnaType +[ /Rect [ 0 0 114 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D02BHFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 114 36 moveto +0 36 lineto +0 0 lineto +114 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 114 36 moveto +0 36 lineto +0 0 lineto +114 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(d02bhfAnnaType) +[6.96 6.96 6.96 6.96 6.96 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d02cjfannatype.ps b/books/ps/v103d02cjfannatype.ps new file mode 100644 index 0000000..360cb56 --- /dev/null +++ b/books/ps/v103d02cjfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 154 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 154 80 +%%PageOrientation: Portrait +gsave +36 36 118 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +116 42 lineto +116 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +116 42 lineto +116 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d02cjfAnnaType +[ /Rect [ 0 0 110 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D02CJFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 110 36 moveto +0 36 lineto +0 0 lineto +110 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 110 36 moveto +0 36 lineto +0 0 lineto +110 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(d02cjfAnnaType) +[6.96 6.96 6.96 6.24 3.84 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d02ejfannatype.ps b/books/ps/v103d02ejfannatype.ps new file mode 100644 index 0000000..84334be --- /dev/null +++ b/books/ps/v103d02ejfannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 154 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 154 80 +%%PageOrientation: Portrait +gsave +36 36 118 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +116 42 lineto +116 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +116 42 lineto +116 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d02ejfAnnaType +[ /Rect [ 0 0 110 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D02EJFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 110 36 moveto +0 36 lineto +0 0 lineto +110 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 110 36 moveto +0 36 lineto +0 0 lineto +110 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(d02ejfAnnaType) +[6.96 6.96 6.96 6.24 3.84 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d03eefannatype.ps b/books/ps/v103d03eefannatype.ps new file mode 100644 index 0000000..c4f501c --- /dev/null +++ b/books/ps/v103d03eefannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 156 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 156 80 +%%PageOrientation: Portrait +gsave +36 36 120 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +118 42 lineto +118 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +118 42 lineto +118 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d03eefAnnaType +[ /Rect [ 0 0 112 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D03EEFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 112 36 moveto +0 36 lineto +0 0 lineto +112 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 112 36 moveto +0 36 lineto +0 0 lineto +112 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(d03eefAnnaType) +[6.96 6.96 6.96 6.24 6.24 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103d03fafannatype.ps b/books/ps/v103d03fafannatype.ps new file mode 100644 index 0000000..b9fed78 --- /dev/null +++ b/books/ps/v103d03fafannatype.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 154 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 154 80 +%%PageOrientation: Portrait +gsave +36 36 118 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +116 42 lineto +116 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +116 42 lineto +116 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% d03fafAnnaType +[ /Rect [ 0 0 110 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=D03FAFA) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 110 36 moveto +0 36 lineto +0 0 lineto +110 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 110 36 moveto +0 36 lineto +0 0 lineto +110 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(d03fafAnnaType) +[6.96 6.96 6.96 4.32 6.24 4.56 10.08 6.96 6.96 6.24 7.2 6.96 6.96 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103derhamcomplex.ps b/books/ps/v103derhamcomplex.ps new file mode 100644 index 0000000..cc1eaae --- /dev/null +++ b/books/ps/v103derhamcomplex.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 162 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 162 80 +%%PageOrientation: Portrait +gsave +36 36 126 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +124 42 lineto +124 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +124 42 lineto +124 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% DeRhamComplex +[ /Rect [ 0 0 118 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=DERHAM) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 118 36 moveto +0 36 lineto +0 0 lineto +118 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 118 36 moveto +0 36 lineto +0 0 lineto +118 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(DeRhamComplex) +[10.08 6.24 9.36 6.96 6.24 10.8 9.36 6.96 10.56 6.96 3.84 5.76 6.96] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103differentialsparsemultivariatepolynomial.ps b/books/ps/v103differentialsparsemultivariatepolynomial.ps new file mode 100644 index 0000000..9b3d161 --- /dev/null +++ b/books/ps/v103differentialsparsemultivariatepolynomial.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 296 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 296 80 +%%PageOrientation: Portrait +gsave +36 36 260 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +258 42 lineto +258 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +258 42 lineto +258 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% DifferentialSparseMultivariatePolynomial +[ /Rect [ 0 0 252 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=DSMP) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 252 36 moveto +0 36 lineto +0 0 lineto +252 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 252 36 moveto +0 36 lineto +0 0 lineto +252 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(DifferentialSparseMultivariatePolynomial) +[10.08 3.84 4.56 4.08 6.24 4.8 6.24 6.96 3.84 3.84 6.24 3.84 7.68 6.96 6.24 4.8 5.52 6.24 12.48 6.96 3.84 3.84 3.84 6.72 6.24 5.04 3.84 6.24 3.84 6.24 7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103drawoption.ps b/books/ps/v103drawoption.ps new file mode 100644 index 0000000..df4e1a8 --- /dev/null +++ b/books/ps/v103drawoption.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 130 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 130 80 +%%PageOrientation: Portrait +gsave +36 36 94 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +92 42 lineto +92 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +92 42 lineto +92 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% DrawOption +[ /Rect [ 0 0 86 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=DROPT) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 86 36 moveto +0 36 lineto +0 0 lineto +86 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 86 36 moveto +0 36 lineto +0 0 lineto +86 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(DrawOption) +[10.08 4.8 5.76 10.08 10.08 6.96 3.84 3.84 6.96 6.96] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103extalgbasis.ps b/books/ps/v103extalgbasis.ps new file mode 100644 index 0000000..59c822e --- /dev/null +++ b/books/ps/v103extalgbasis.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 130 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 130 80 +%%PageOrientation: Portrait +gsave +36 36 94 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +92 42 lineto +92 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +92 42 lineto +92 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% ExtAlgBasis +[ /Rect [ 0 0 86 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=EAB) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 86 36 moveto +0 36 lineto +0 0 lineto +86 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 86 36 moveto +0 36 lineto +0 0 lineto +86 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(ExtAlgBasis) +[8.64 6.96 3.84 10.08 3.84 6.96 9.36 6.24 5.52 3.84 5.52] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103finitedivisor.ps b/books/ps/v103finitedivisor.ps new file mode 100644 index 0000000..9a35d29 --- /dev/null +++ b/books/ps/v103finitedivisor.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 134 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 134 80 +%%PageOrientation: Portrait +gsave +36 36 98 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +96 42 lineto +96 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +96 42 lineto +96 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% FiniteDivisor +[ /Rect [ 0 0 90 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=FDIV) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 90 36 moveto +0 36 lineto +0 0 lineto +90 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 90 36 moveto +0 36 lineto +0 0 lineto +90 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(FiniteDivisor) +[7.44 3.84 6.96 3.84 3.84 6.24 10.08 3.84 6.96 3.84 5.52 6.96 4.8] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103fractionalideal.ps b/books/ps/v103fractionalideal.ps new file mode 100644 index 0000000..023e086 --- /dev/null +++ b/books/ps/v103fractionalideal.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 144 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 144 80 +%%PageOrientation: Portrait +gsave +36 36 108 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +106 42 lineto +106 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +106 42 lineto +106 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% FractionalIdeal +[ /Rect [ 0 0 100 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=FRIDEAL) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 100 36 moveto +0 36 lineto +0 0 lineto +100 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 100 36 moveto +0 36 lineto +0 0 lineto +100 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(FractionalIdeal) +[7.44 4.8 6.24 6.24 3.84 3.84 6.96 6.96 6.24 3.84 4.56 6.96 6.24 6.24 3.84] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103fractionalidealfunctions2.ps b/books/ps/v103fractionalidealfunctions2.ps new file mode 100644 index 0000000..cf5e267 --- /dev/null +++ b/books/ps/v103fractionalidealfunctions2.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 206 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 206 80 +%%PageOrientation: Portrait +gsave +36 36 170 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +168 42 lineto +168 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +168 42 lineto +168 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% FractionalIdealFunctions2 +[ /Rect [ 0 0 162 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=FRIDEAL2) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 162 36 moveto +0 36 lineto +0 0 lineto +162 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 162 36 moveto +0 36 lineto +0 0 lineto +162 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(FractionalIdealFunctions2) +[7.44 4.8 6.24 6.24 3.84 3.84 6.96 6.96 6.24 3.84 4.56 6.96 6.24 6.24 3.84 7.44 6.96 6.96 6.24 3.84 3.84 6.96 6.96 5.52 6.96] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103framedmodule.ps b/books/ps/v103framedmodule.ps new file mode 100644 index 0000000..477a9ad --- /dev/null +++ b/books/ps/v103framedmodule.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 146 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 146 80 +%%PageOrientation: Portrait +gsave +36 36 110 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +108 42 lineto +108 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +108 42 lineto +108 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% FramedModule +[ /Rect [ 0 0 102 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=FRMOD) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 102 36 moveto +0 36 lineto +0 0 lineto +102 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 102 36 moveto +0 36 lineto +0 0 lineto +102 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(FramedModule) +[7.44 4.8 6.24 10.8 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103hyperellipticfinitedivisor.ps b/books/ps/v103hyperellipticfinitedivisor.ps new file mode 100644 index 0000000..95bfe08 --- /dev/null +++ b/books/ps/v103hyperellipticfinitedivisor.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 208 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 208 80 +%%PageOrientation: Portrait +gsave +36 36 172 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +170 42 lineto +170 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +170 42 lineto +170 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% HyperellipticFiniteDivisor +[ /Rect [ 0 0 164 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=HELLFDIV) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 164 36 moveto +0 36 lineto +0 0 lineto +164 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 164 36 moveto +0 36 lineto +0 0 lineto +164 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(HyperellipticFiniteDivisor) +[10.08 6.96 6.96 6.24 4.8 6.24 3.84 3.84 3.84 6.96 3.84 3.84 6.24 7.44 3.84 6.96 3.84 3.84 6.24 10.08 3.84 6.96 3.84 5.52 6.96 4.8] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103integrationfunctionstable.ps b/books/ps/v103integrationfunctionstable.ps new file mode 100644 index 0000000..336c7d9 --- /dev/null +++ b/books/ps/v103integrationfunctionstable.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 208 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 208 80 +%%PageOrientation: Portrait +gsave +36 36 172 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +170 42 lineto +170 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +170 42 lineto +170 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% IntegrationFunctionsTable +[ /Rect [ 0 0 164 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=INTFTBL) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 164 36 moveto +0 36 lineto +0 0 lineto +164 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 164 36 moveto +0 36 lineto +0 0 lineto +164 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(IntegrationFunctionsTable) +[4.56 6.96 3.84 6.24 7.2 4.8 6.24 3.84 3.84 6.96 6.96 7.44 6.96 6.96 6.24 3.84 3.84 6.96 6.96 5.52 7.68 6.24 6.96 3.84 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103odeintensityfunctionstable.ps b/books/ps/v103odeintensityfunctionstable.ps new file mode 100644 index 0000000..c75b396 --- /dev/null +++ b/books/ps/v103odeintensityfunctionstable.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 224 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 224 80 +%%PageOrientation: Portrait +gsave +36 36 188 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +186 42 lineto +186 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +186 42 lineto +186 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% ODEIntensityFunctionsTable +[ /Rect [ 0 0 180 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=ODEIFTBL) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 180 36 moveto +0 36 lineto +0 0 lineto +180 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 180 36 moveto +0 36 lineto +0 0 lineto +180 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(ODEIntensityFunctionsTable) +[10.08 10.08 8.64 4.56 6.96 3.84 6.24 6.96 5.52 3.84 3.84 6.96 7.44 6.96 6.96 6.24 3.84 3.84 6.96 6.96 5.52 7.68 6.24 6.96 3.84 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103orderlydifferentialpolynomial.ps b/books/ps/v103orderlydifferentialpolynomial.ps new file mode 100644 index 0000000..e947681 --- /dev/null +++ b/books/ps/v103orderlydifferentialpolynomial.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 232 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 232 80 +%%PageOrientation: Portrait +gsave +36 36 196 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +194 42 lineto +194 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +194 42 lineto +194 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% OrderlyDifferentialPolynomial +[ /Rect [ 0 0 188 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=ODPOL) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 188 36 moveto +0 36 lineto +0 0 lineto +188 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 188 36 moveto +0 36 lineto +0 0 lineto +188 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(OrderlyDifferentialPolynomial) +[10.08 4.56 6.96 6.24 4.56 3.6 6.96 10.08 3.84 4.56 4.08 6.24 4.8 6.24 6.96 3.84 3.84 6.24 3.84 7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103orderlydifferentialvariable.ps b/books/ps/v103orderlydifferentialvariable.ps new file mode 100644 index 0000000..83b9269 --- /dev/null +++ b/books/ps/v103orderlydifferentialvariable.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 214 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 214 80 +%%PageOrientation: Portrait +gsave +36 36 178 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +176 42 lineto +176 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +176 42 lineto +176 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% OrderlyDifferentialVariable +[ /Rect [ 0 0 170 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=ODVAR) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 170 36 moveto +0 36 lineto +0 0 lineto +170 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 170 36 moveto +0 36 lineto +0 0 lineto +170 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(OrderlyDifferentialVariable) +[10.08 4.56 6.96 6.24 4.56 3.6 6.96 10.08 3.84 4.56 4.08 6.24 4.8 6.24 6.96 3.84 3.84 6.24 3.84 8.88 6.24 5.04 3.84 6.24 6.96 3.84 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103sequentialdifferentialpolynomial.ps b/books/ps/v103sequentialdifferentialpolynomial.ps new file mode 100644 index 0000000..23cc602 --- /dev/null +++ b/books/ps/v103sequentialdifferentialpolynomial.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 246 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 246 80 +%%PageOrientation: Portrait +gsave +36 36 210 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +208 42 lineto +208 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +208 42 lineto +208 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% SequentialDifferentialPolynomial +[ /Rect [ 0 0 202 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=SDPOL) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 202 36 moveto +0 36 lineto +0 0 lineto +202 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 202 36 moveto +0 36 lineto +0 0 lineto +202 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(SequentialDifferentialPolynomial) +[7.68 6.24 6.72 6.96 6.24 6.96 3.84 3.84 6.24 3.84 10.08 3.84 4.56 4.08 6.24 4.8 6.24 6.96 3.84 3.84 6.24 3.84 7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v103sequentialdifferentialvariable.ps b/books/ps/v103sequentialdifferentialvariable.ps new file mode 100644 index 0000000..3cec7f7 --- /dev/null +++ b/books/ps/v103sequentialdifferentialvariable.ps @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 230 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 230 80 +%%PageOrientation: Portrait +gsave +36 36 194 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +192 42 lineto +192 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +192 42 lineto +192 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% SequentialDifferentialVariable +[ /Rect [ 0 0 186 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=SDVAR) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 186 36 moveto +0 36 lineto +0 0 lineto +186 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 186 36 moveto +0 36 lineto +0 0 lineto +186 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(SequentialDifferentialVariable) +[7.68 6.24 6.72 6.96 6.24 6.96 3.84 3.84 6.24 3.84 10.08 3.84 4.56 4.08 6.24 4.8 6.24 6.96 3.84 3.84 6.24 3.84 8.88 6.24 5.04 3.84 6.24 6.96 3.84 6.24] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index eb241b3..753049b 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -475,7 +475,6 @@ LAYER12=\ carten.spad.pamphlet (GRMOD GRALG CARTEN CARTEN2) clip.spad.pamphlet (CLIP) coordsys.spad.pamphlet (COORDSYS) -d02routine.spad.pamphlet (D02BBFA D02BHFA D02CJFA D02EJFA) ffpoly2.spad.pamphlet (FFPOLY2) irsn.spad.pamphlet (IRSN) numode.spad.pamphlet (NUMODE) @@ -747,8 +746,6 @@ any.spad.pamphlet (NONE NONE1 ANY ANY1) c02.spad.pamphlet (NAGC02) c05.spad.pamphlet (NAGC05) c06.spad.pamphlet (NAGC06) -d01routine.spad.pamphlet (D01AJFA D01AKFA D01AMFA D01APFA D01AQFA D01ALFA - D01ANFA D01ASFA D01GBFA D01FCFA) d02package.spad.pamphlet (ODEPACK) d03agents.spad.pamphlet (D03AGNT) d03package.spad.pamphlet (PDEPACK) @@ -847,7 +844,6 @@ algfunc.spad.pamphlet (ACF ACFS AF) cmplxrt.spad.pamphlet (CMPLXRT) crfp.spad.pamphlet (CRFP) curve.spad.pamphlet (FFCAT MMAP FFCAT2 CHAVAR RDFF ALGFF) -derham.spad.pamphlet (LALG EAB ANTISYM DERHAM) draw.spad.pamphlet (DRAWCFUN DRAW DRAWCURV DRAWPT) d01.spad.pamphlet (NAGD01) efstruc.spad.pamphlet (SYMFUNC TANEXP EFSTRUC ITRIGMNP TRIGMNIP CTRIGMNP) @@ -960,7 +956,6 @@ defintef.spad.pamphlet (DEFINTEF) defintrf.spad.pamphlet (DFINTTLS DEFINTRF) divisor.spad.pamphlet (FRIDEAL FRIDEAL2 MHROWRED FRMOD FDIVCAT HELLFDIV FDIV FDIV2) -d01transform.spad.pamphlet (D01TRNS) efuls.spad.pamphlet (EFULS) expr.spad.pamphlet (EXPR PAN2EXPR EXPR2 PMPREDFS PMASSFS PMPRED PMASS HACKPI PICOERCE) @@ -1164,13 +1159,13 @@ SPADFILES= \ ${OUTSRC}/coordsys.spad ${OUTSRC}/cra.spad ${OUTSRC}/crfp.spad \ ${OUTSRC}/curve.spad ${OUTSRC}/cycles.spad ${OUTSRC}/cyclotom.spad \ ${OUTSRC}/d01agents.spad ${OUTSRC}/d01package.spad \ - ${OUTSRC}/d01routine.spad ${OUTSRC}/d01.spad ${OUTSRC}/d01transform.spad \ + ${OUTSRC}/d01.spad \ ${OUTSRC}/d01weights.spad ${OUTSRC}/d02agents.spad \ - ${OUTSRC}/d02package.spad ${OUTSRC}/d02routine.spad ${OUTSRC}/d02.spad \ + ${OUTSRC}/d02package.spad ${OUTSRC}/d02.spad \ ${OUTSRC}/d03agents.spad ${OUTSRC}/d03package.spad \ - ${OUTSRC}/d03routine.spad ${OUTSRC}/d03.spad ${OUTSRC}/ddfact.spad \ + ${OUTSRC}/d03.spad ${OUTSRC}/ddfact.spad \ ${OUTSRC}/defaults.spad ${OUTSRC}/defintef.spad ${OUTSRC}/defintrf.spad \ - ${OUTSRC}/degred.spad ${OUTSRC}/derham.spad \ + ${OUTSRC}/degred.spad \ ${OUTSRC}/divisor.spad ${OUTSRC}/dpolcat.spad ${OUTSRC}/drawopt.spad \ ${OUTSRC}/drawpak.spad ${OUTSRC}/draw.spad \ ${OUTSRC}/e01.spad ${OUTSRC}/e02.spad ${OUTSRC}/e04agents.spad \ @@ -1322,13 +1317,13 @@ DOCFILES= \ ${DOC}/coordsys.spad.dvi ${DOC}/cra.spad.dvi ${DOC}/crfp.spad.dvi \ ${DOC}/curve.spad.dvi ${DOC}/cycles.spad.dvi ${DOC}/cyclotom.spad.dvi \ ${DOC}/d01agents.spad.dvi ${DOC}/d01package.spad.dvi \ - ${DOC}/d01routine.spad.dvi ${DOC}/d01.spad.dvi ${DOC}/d01transform.spad.dvi \ + ${DOC}/d01.spad.dvi \ ${DOC}/d01weights.spad.dvi ${DOC}/d02agents.spad.dvi \ - ${DOC}/d02package.spad.dvi ${DOC}/d02routine.spad.dvi ${DOC}/d02.spad.dvi \ + ${DOC}/d02package.spad.dvi ${DOC}/d02.spad.dvi \ ${DOC}/d03agents.spad.dvi ${DOC}/d03package.spad.dvi \ - ${DOC}/d03routine.spad.dvi ${DOC}/d03.spad.dvi ${DOC}/ddfact.spad.dvi \ + ${DOC}/d03.spad.dvi ${DOC}/ddfact.spad.dvi \ ${DOC}/defaults.spad.dvi ${DOC}/defintef.spad.dvi ${DOC}/defintrf.spad.dvi \ - ${DOC}/degred.spad.dvi ${DOC}/derham.spad.dvi \ + ${DOC}/degred.spad.dvi \ ${DOC}/divisor.spad.dvi ${DOC}/dpolcat.spad.dvi ${DOC}/drawopt.spad.dvi \ ${DOC}/drawpak.spad.dvi ${DOC}/draw.spad.dvi \ ${DOC}/e01.spad.dvi ${DOC}/e02.spad.dvi ${DOC}/e04agents.spad.dvi \ @@ -2290,12 +2285,12 @@ ${HELP}/CycleIndicators.help: ${IN}/cycles.spad.pamphlet @${TANGLE} -R"CycleIndicators.input" ${IN}/cycles.spad.pamphlet \ >${INPUT}/CycleIndicators.input -${HELP}/DeRhamComplex.help: ${IN}/derham.spad.pamphlet - @echo 7013 create DeRhamComplex.help from ${IN}/derham.spad.pamphlet - @${TANGLE} -R"DeRhamComplex.help" ${IN}/derham.spad.pamphlet \ +${HELP}/DeRhamComplex.help: ${BOOKS}/bookvol10.3.pamphlet + @echo 7013 create DeRhamComplex.help from ${BOOKS}/bookvol10.3.pamphlet + @${TANGLE} -R"DeRhamComplex.help" ${BOOKS}/bookvol10.3.pamphlet \ >${HELP}/DeRhamComplex.help @cp ${HELP}/DeRhamComplex.help ${HELP}/DERHAM.help - @${TANGLE} -R"DeRhamComplex.input" ${IN}/derham.spad.pamphlet \ + @${TANGLE} -R"DeRhamComplex.input" ${BOOKS}/bookvol10.3.pamphlet \ >${INPUT}/DeRhamComplex.input ${HELP}/DecimalExpansion.help: ${IN}/radix.spad.pamphlet diff --git a/src/algebra/d01agents.spad.pamphlet b/src/algebra/d01agents.spad.pamphlet index 60aec7a..b563ed6 100644 --- a/src/algebra/d01agents.spad.pamphlet +++ b/src/algebra/d01agents.spad.pamphlet @@ -9,105 +9,6 @@ \eject \tableofcontents \eject -\section{domain INTFTBL IntegrationFunctionsTable} -<>= -)abbrev domain INTFTBL IntegrationFunctionsTable -++ Author: Brian Dupee -++ Date Created: March 1995 -++ Date Last Updated: June 1995 -++ Description: -++ -IntegrationFunctionsTable(): E == I where - EF2 ==> ExpressionFunctions2 - EFI ==> Expression Fraction Integer - FI ==> Fraction Integer - LEDF ==> List Expression DoubleFloat - KEDF ==> Kernel Expression DoubleFloat - EEDF ==> Equation Expression DoubleFloat - EDF ==> Expression DoubleFloat - PDF ==> Polynomial DoubleFloat - LDF ==> List DoubleFloat - SDF ==> Stream DoubleFloat - DF ==> DoubleFloat - F ==> Float - ST ==> String - LST ==> List String - SI ==> SingleInteger - SOCDF ==> Segment OrderedCompletion DoubleFloat - OCDF ==> OrderedCompletion DoubleFloat - OCEDF ==> OrderedCompletion Expression DoubleFloat - EOCEFI ==> Equation OrderedCompletion Expression Fraction Integer - OCEFI ==> OrderedCompletion Expression Fraction Integer - OCFI ==> OrderedCompletion Fraction Integer - NIA ==> Record(var:Symbol,fn:EDF,range:SOCDF,abserr:DF,relerr:DF) - INT ==> Integer - CTYPE ==> Union(continuous: "Continuous at the end points", - lowerSingular: "There is a singularity at the lower end point", - upperSingular: "There is a singularity at the upper end point", - bothSingular: "There are singularities at both end points", - notEvaluated: "End point continuity not yet evaluated") - RTYPE ==> Union(finite: "The range is finite", - lowerInfinite: "The bottom of range is infinite", - upperInfinite: "The top of range is infinite", - bothInfinite: "Both top and bottom points are infinite", - notEvaluated: "Range not yet evaluated") - STYPE ==> Union(str:SDF, - notEvaluated:"Internal singularities not yet evaluated") - ATT ==> Record(endPointContinuity:CTYPE, - singularitiesStream:STYPE,range:RTYPE) - ROA ==> Record(key:NIA,entry:ATT) - - E ==> with - - showTheFTable:() -> $ - ++ showTheFTable() returns the current table of functions. - clearTheFTable : () -> Void - ++ clearTheFTable() clears the current table of functions. - keys : $ -> List(NIA) - ++ keys(f) returns the list of keys of f - fTable: List Record(key:NIA,entry:ATT) -> $ - ++ fTable(l) creates a functions table from the elements of l. - insert!:Record(key:NIA,entry:ATT) -> $ - ++ insert!(r) inserts an entry r into theIFTable - showAttributes:NIA -> Union(ATT,"failed") - ++ showAttributes(x) \undocumented{} - entries : $ -> List Record(key:NIA,entry:ATT) - ++ entries(x) \undocumented{} - entry:NIA -> ATT - ++ entry(n) \undocumented{} - I ==> add - - Rep := Table(NIA,ATT) - import Rep - - theFTable:$ := empty()$Rep - - showTheFTable():$ == - theFTable - - clearTheFTable():Void == - theFTable := empty()$Rep - void()$Void - - fTable(l:List Record(key:NIA,entry:ATT)):$ == - theFTable := table(l)$Rep - - insert!(r:Record(key:NIA,entry:ATT)):$ == - insert!(r,theFTable)$Rep - - keys(t:$):List NIA == - keys(t)$Rep - - showAttributes(k:NIA):Union(ATT,"failed") == - search(k,theFTable)$Rep - - entries(t:$):List Record(key:NIA,entry:ATT) == - members(t)$Rep - - entry(k:NIA):ATT == - qelt(theFTable,k)$Rep - -@ \section{package D01AGNT d01AgentsPackage} <>= )abbrev package D01AGNT d01AgentsPackage @@ -420,7 +321,6 @@ d01AgentsPackage(): E == I where <<*>>= <> -<> <> @ \eject diff --git a/src/algebra/d01routine.spad.pamphlet b/src/algebra/d01routine.spad.pamphlet deleted file mode 100644 index 6daf17f..0000000 --- a/src/algebra/d01routine.spad.pamphlet +++ /dev/null @@ -1,751 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/algebra d01routine.spad} -\author{Brian Dupee} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{domain D01AJFA d01ajfAnnaType} -<>= -)abbrev domain D01AJFA d01ajfAnnaType -++ Author: Brian Dupee -++ Date Created: March 1994 -++ Date Last Updated: December 1997 -++ Basic Operations: measure, numericalIntegration -++ Related Constructors: Result, RoutinesTable -++ Description: -++ \axiomType{d01ajfAnnaType} is a domain of \axiomType{NumericalIntegrationCategory} -++ for the NAG routine D01AJF, a general numerical integration routine which -++ can handle some singularities in the input function. The function -++ \axiomFun{measure} measures the usefulness of the routine D01AJF -++ for the given problem. The function \axiomFun{numericalIntegration} -++ performs the integration by using \axiomType{NagIntegrationPackage}. - -d01ajfAnnaType(): NumericalIntegrationCategory == Result add - EF2 ==> ExpressionFunctions2 - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - SDF ==> Stream DoubleFloat - DF ==> DoubleFloat - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - NIA ==> Record(var:Symbol,fn:EDF,range:SOCDF,abserr:DF,relerr:DF) - MDNIA ==> Record(fn:EDF,range:List SOCDF,abserr:DF,relerr:DF) - INT ==> Integer - BOP ==> BasicOperator - S ==> Symbol - ST ==> String - LST ==> List String - RT ==> RoutinesTable - Rep:=Result - import Rep, NagIntegrationPackage, d01AgentsPackage - - measure(R:RT,args:NIA) == - ext:Result := empty()$Result - pp:SDF := singularitiesOf(args) - not (empty?(pp)$SDF) => - [0.1,"d01ajf: There is a possible problem at the following point(s): " - commaSeparate(sdf2lst(pp)) ,ext] - [getMeasure(R,d01ajf :: S)$RT, - "The general routine d01ajf is our default",ext] - - numericalIntegration(args:NIA,hints:Result) == - ArgsFn := map(convert(#1)$DF,args.fn)$EF2(DF,Float) - b:Float := getButtonValue("d01ajf","functionEvaluations")$AttributeButtons - fEvals:INT := wholePart exp(1.1513*(1.0/(2.0*(1.0-b)))) - iw:INT := 75*fEvals - f : Union(fn:FileName,fp:Asp1(F)) := [retract(ArgsFn)$Asp1(F)] - d01ajf(getlo(args.range),gethi(args.range),args.abserr,args.relerr,4*iw,iw,-1,f) - -@ -\section{domain D01AKFA d01akfAnnaType} -<>= -)abbrev domain D01AKFA d01akfAnnaType -++ Author: Brian Dupee -++ Date Created: March 1994 -++ Date Last Updated: December 1997 -++ Basic Operations: measure, numericalIntegration -++ Related Constructors: Result, RoutinesTable -++ Description: -++ \axiomType{d01akfAnnaType} is a domain of \axiomType{NumericalIntegrationCategory} -++ for the NAG routine D01AKF, a numerical integration routine which is -++ is suitable for oscillating, non-singular functions. The function -++ \axiomFun{measure} measures the usefulness of the routine D01AKF -++ for the given problem. The function \axiomFun{numericalIntegration} -++ performs the integration by using \axiomType{NagIntegrationPackage}. - -d01akfAnnaType(): NumericalIntegrationCategory == Result add - EF2 ==> ExpressionFunctions2 - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - SDF ==> Stream DoubleFloat - DF ==> DoubleFloat - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - NIA ==> Record(var:Symbol,fn:EDF,range:SOCDF,abserr:DF,relerr:DF) - MDNIA ==> Record(fn:EDF,range:List SOCDF,abserr:DF,relerr:DF) - INT ==> Integer - BOP ==> BasicOperator - S ==> Symbol - ST ==> String - LST ==> List String - RT ==> RoutinesTable - Rep:=Result - import Rep, d01AgentsPackage, NagIntegrationPackage - - measure(R:RT,args:NIA) == - ext:Result := empty()$Result - pp:SDF := singularitiesOf(args) - not (empty?(pp)$SDF) => - [0.0,"d01akf: There is a possible problem at the following point(s): " - commaSeparate(sdf2lst(pp)) ,ext] - o:Float := functionIsOscillatory(args) - one := 1.0 - m:Float := (getMeasure(R,d01akf@S)$RT)*(one-one/(one+sqrt(o)))**2 - m > 0.8 => [m,"d01akf: The expression shows much oscillation",ext] - m > 0.6 => [m,"d01akf: The expression shows some oscillation",ext] - m > 0.5 => [m,"d01akf: The expression shows little oscillation",ext] - [m,"d01akf: The expression shows little or no oscillation",ext] - - numericalIntegration(args:NIA,hints:Result) == - ArgsFn := map(convert(#1)$DF,args.fn)$EF2(DF,Float) - b:Float := getButtonValue("d01akf","functionEvaluations")$AttributeButtons - fEvals:INT := wholePart exp(1.1513*(1.0/(2.0*(1.0-b)))) - iw:INT := 75*fEvals - f : Union(fn:FileName,fp:Asp1(F)) := [retract(ArgsFn)$Asp1(F)] - d01akf(getlo(args.range),gethi(args.range),args.abserr,args.relerr,4*iw,iw,-1,f) - -@ -\section{domain D01AMFA d01amfAnnaType} -<>= -)abbrev domain D01AMFA d01amfAnnaType -++ Author: Brian Dupee -++ Date Created: March 1994 -++ Date Last Updated: December 1997 -++ Basic Operations: measure, numericalIntegration -++ Related Constructors: Result, RoutinesTable -++ Description: -++ \axiomType{d01amfAnnaType} is a domain of \axiomType{NumericalIntegrationCategory} -++ for the NAG routine D01AMF, a general numerical integration routine which -++ can handle infinite or semi-infinite range of the input function. The -++ function \axiomFun{measure} measures the usefulness of the routine D01AMF -++ for the given problem. The function \axiomFun{numericalIntegration} -++ performs the integration by using \axiomType{NagIntegrationPackage}. - -d01amfAnnaType(): NumericalIntegrationCategory == Result add - EF2 ==> ExpressionFunctions2 - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - SDF ==> Stream DoubleFloat - DF ==> DoubleFloat - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - NIA ==> Record(var:Symbol,fn:EDF,range:SOCDF,abserr:DF,relerr:DF) - MDNIA ==> Record(fn:EDF,range:List SOCDF,abserr:DF,relerr:DF) - INT ==> Integer - BOP ==> BasicOperator - S ==> Symbol - ST ==> String - LST ==> List String - RT ==> RoutinesTable - Rep:=Result - import Rep, d01AgentsPackage, NagIntegrationPackage - - measure(R:RT,args:NIA) == - ext:Result := empty()$Result - Range:=rangeIsFinite(args) - pp:SDF := singularitiesOf(args) - not (empty?(pp)$SDF) => - [0.0,"d01amf: There is a possible problem at the following point(s): " - commaSeparate(sdf2lst(pp)), ext] - [getMeasure(R,d01amf@S)$RT, "d01amf is a reasonable choice if the " - "integral is infinite or semi-infinite and d01transform cannot " - "do better than using general routines",ext] - - numericalIntegration(args:NIA,hints:Result) == - r:INT - bound:DF - ArgsFn := map(convert(#1)$DF,args.fn)$EF2(DF,Float) - b:Float := getButtonValue("d01amf","functionEvaluations")$AttributeButtons - fEvals:INT := wholePart exp(1.1513*(1.0/(2.0*(1.0-b)))) - iw:INT := 150*fEvals - f : Union(fn:FileName,fp:Asp1(F)) := [retract(ArgsFn)$Asp1(F)] - Range:=rangeIsFinite(args) - if (Range case upperInfinite) then - bound := getlo(args.range) - r := 1 - else if (Range case lowerInfinite) then - bound := gethi(args.range) - r := -1 - else - bound := 0$DF - r := 2 - d01amf(bound,r,args.abserr,args.relerr,4*iw,iw,-1,f) - -@ -\section{domain D01APFA d01apfAnnaType} -<>= -)abbrev domain D01APFA d01apfAnnaType -++ Author: Brian Dupee -++ Date Created: March 1994 -++ Date Last Updated: December 1997 -++ Basic Operations: measure, numericalIntegration -++ Related Constructors: Result, RoutinesTable -++ Description: -++ \axiomType{d01apfAnnaType} is a domain of \axiomType{NumericalIntegrationCategory} -++ for the NAG routine D01APF, a general numerical integration routine which -++ can handle end point singularities of the algebraico-logarithmic form -++ w(x) = (x-a)^c * (b-x)^d. The -++ function \axiomFun{measure} measures the usefulness of the routine D01APF -++ for the given problem. The function \axiomFun{numericalIntegration} -++ performs the integration by using \axiomType{NagIntegrationPackage}. - -d01apfAnnaType(): NumericalIntegrationCategory == Result add - EF2 ==> ExpressionFunctions2 - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - SDF ==> Stream DoubleFloat - DF ==> DoubleFloat - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - NIA ==> Record(var:Symbol,fn:EDF,range:SOCDF,abserr:DF,relerr:DF) - MDNIA ==> Record(fn:EDF,range:List SOCDF,abserr:DF,relerr:DF) - INT ==> Integer - BOP ==> BasicOperator - S ==> Symbol - ST ==> String - LST ==> List String - RT ==> RoutinesTable - Rep:=Result - import Rep, NagIntegrationPackage, d01AgentsPackage, d01WeightsPackage - - measure(R:RT,args:NIA) == - ext:Result := empty()$Result - d := (c := 0$DF) - if ((a := exprHasAlgebraicWeight(args)) case LDF) then - if (a.1 > -1) then c := a.1 - if (a.2 > -1) then d := a.2 - l:INT := exprHasLogarithmicWeights(args) --- (zero? c) and (zero? d) and (one? l) => - (zero? c) and (zero? d) and (l = 1) => - [0.0,"d01apf: A suitable singularity has not been found", ext] - out:LDF := [c,d,l :: DF] - outany:Any := coerce(out)$AnyFunctions1(LDF) - ex:Record(key:S,entry:Any) := [d01apfextra@S,outany] - ext := insert!(ex,ext)$Result - st:ST := "Recommended is d01apf with c = " df2st(c) ", d = " - df2st(d) " and l = " string(l)$ST - [getMeasure(R,d01apf@S)$RT, st, ext] - - numericalIntegration(args:NIA,hints:Result) == - - Var:EDF := coerce(args.var)$EDF - la:Any := coerce(search((d01apfextra@S),hints)$Result)@Any - list:LDF := retract(la)$AnyFunctions1(LDF) - Fac1:EDF := (Var - (getlo(args.range) :: EDF))$EDF - Fac2:EDF := ((gethi(args.range) :: EDF) - Var)$EDF - c := first(list)$LDF - d := second(list)$LDF - l := (retract(third(list)$LDF)@INT)$DF - thebiz:EDF := (Fac1**(c :: EDF))*(Fac2**(d :: EDF)) - if l > 1 then - if l = 2 then - thebiz := thebiz*log(Fac1) - else if l = 3 then - thebiz := thebiz*log(Fac2) - else - thebiz := thebiz*log(Fac1)*log(Fac2) - Fn := (args.fn/thebiz)$EDF - ArgsFn := map(convert(#1)$DF,Fn)$EF2(DF,Float) - b:Float := getButtonValue("d01apf","functionEvaluations")$AttributeButtons - fEvals:INT := wholePart exp(1.1513*(1.0/(2.0*(1.0-b)))) - iw:INT := 75*fEvals - f : Union(fn:FileName,fp:Asp1(G)) := [retract(ArgsFn)$Asp1(G)] - d01apf(getlo(args.range),gethi(args.range),c,d,l,args.abserr,args.relerr,4*iw,iw,-1,f) - -@ -\section{domain D01AQFA d01aqfAnnaType} -<>= -)abbrev domain D01AQFA d01aqfAnnaType -++ Author: Brian Dupee -++ Date Created: March 1994 -++ Date Last Updated: December 1997 -++ Basic Operations: measure, numericalIntegration -++ Related Constructors: Result, RoutinesTable -++ Description: -++ \axiomType{d01aqfAnnaType} is a domain of \axiomType{NumericalIntegrationCategory} -++ for the NAG routine D01AQF, a general numerical integration routine which -++ can solve an integral of the form \newline -++ \centerline{\inputbitmap{/home/bjd/Axiom/anna/hypertex/bitmaps/d01aqf.xbm}} -++ The function \axiomFun{measure} measures the usefulness of the routine -++ D01AQF for the given problem. The function \axiomFun{numericalIntegration} -++ performs the integration by using \axiomType{NagIntegrationPackage}. - -d01aqfAnnaType(): NumericalIntegrationCategory == Result add - EF2 ==> ExpressionFunctions2 - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - SDF ==> Stream DoubleFloat - DF ==> DoubleFloat - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - NIA ==> Record(var:Symbol,fn:EDF,range:SOCDF,abserr:DF,relerr:DF) - MDNIA ==> Record(fn:EDF,range:List SOCDF,abserr:DF,relerr:DF) - INT ==> Integer - BOP ==> BasicOperator - S ==> Symbol - ST ==> String - LST ==> List String - RT ==> RoutinesTable - Rep:=Result - import Rep, d01AgentsPackage, NagIntegrationPackage - - measure(R:RT,args:NIA) == - ext:Result := empty()$Result - Den := denominator(args.fn) --- one? Den => - (Den = 1) => - [0.0,"d01aqf: A suitable weight function has not been found", ext] - listOfZeros:LDF := problemPoints(args.fn,args.var,args.range) - numberOfZeros := (#(listOfZeros))$LDF - zero?(numberOfZeros) => - [0.0,"d01aqf: A suitable weight function has not been found", ext] - numberOfZeros = 1 => - s:SDF := singularitiesOf(args) - more?(s,1)$SDF => - [0.0,"d01aqf: Too many singularities have been found", ext] - cFloat:Float := (convert(first(listOfZeros)$LDF)@Float)$DF - cString:ST := (convert(cFloat)@ST)$Float - lany:Any := coerce(listOfZeros)$AnyFunctions1(LDF) - ex:Record(key:S,entry:Any) := [d01aqfextra@S,lany] - ext := insert!(ex,ext)$Result - [getMeasure(R,d01aqf@S)$RT, "Recommended is d01aqf with the " - "hilbertian weight function of 1/(x-c) where c = " cString, ext] - [0.0,"d01aqf: More than one factor has been found and so does not " - "have a suitable weight function",ext] - - numericalIntegration(args:NIA,hints:Result) == - Args := copy args - ca:Any := coerce(search((d01aqfextra@S),hints)$Result)@Any - c:DF := first(retract(ca)$AnyFunctions1(LDF))$LDF - ci:FI := df2fi(c)$ExpertSystemToolsPackage - Var:EFI := Args.var :: EFI - Gx:EFI := (Var-(ci::EFI))*(edf2efi(Args.fn)$ExpertSystemToolsPackage) - ArgsFn := map(convert(#1)$FI,Gx)$EF2(FI,Float) - b:Float := getButtonValue("d01aqf","functionEvaluations")$AttributeButtons - fEvals:INT := wholePart exp(1.1513*(1.0/(2.0*(1.0-b)))) - iw:INT := 75*fEvals - f : Union(fn:FileName,fp:Asp1(G)) := [retract(ArgsFn)$Asp1(G)] - d01aqf(getlo(Args.range),gethi(Args.range),c,Args.abserr,Args.relerr,4*iw,iw,-1,f) - -@ -\section{domain D01ALFA d01alfAnnaType} -<>= -)abbrev domain D01ALFA d01alfAnnaType -++ Author: Brian Dupee -++ Date Created: March 1994 -++ Date Last Updated: December 1997 -++ Basic Operations: measure, numericalIntegration -++ Related Constructors: Result, RoutinesTable -++ Description: -++ \axiomType{d01alfAnnaType} is a domain of \axiomType{NumericalIntegrationCategory} -++ for the NAG routine D01ALF, a general numerical integration routine which -++ can handle a list of singularities. The -++ function \axiomFun{measure} measures the usefulness of the routine D01ALF -++ for the given problem. The function \axiomFun{numericalIntegration} -++ performs the integration by using \axiomType{NagIntegrationPackage}. - -d01alfAnnaType(): NumericalIntegrationCategory == Result add - EF2 ==> ExpressionFunctions2 - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - SDF ==> Stream DoubleFloat - DF ==> DoubleFloat - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - NIA ==> Record(var:Symbol,fn:EDF,range:SOCDF,abserr:DF,relerr:DF) - MDNIA ==> Record(fn:EDF,range:List SOCDF,abserr:DF,relerr:DF) - INT ==> Integer - BOP ==> BasicOperator - S ==> Symbol - ST ==> String - LST ==> List String - RT ==> RoutinesTable - Rep:=Result - import Rep, d01AgentsPackage, NagIntegrationPackage - - measure(R:RT,args:NIA) == - ext:Result := empty()$Result - streamOfZeros:SDF := singularitiesOf(args) - listOfZeros:LST := removeDuplicates!(sdf2lst(streamOfZeros)) - numberOfZeros:INT := # listOfZeros - (numberOfZeros > 15)@Boolean => - [0.0,"d01alf: The list of singularities is too long", ext] - positive?(numberOfZeros) => - l:LDF := entries(complete(streamOfZeros)$SDF)$SDF - lany:Any := coerce(l)$AnyFunctions1(LDF) - ex:Record(key:S,entry:Any) := [d01alfextra@S,lany] - ext := insert!(ex,ext)$Result - st:ST := "Recommended is d01alf with the singularities " - commaSeparate(listOfZeros) - m := --- one?(numberOfZeros) => 0.4 - (numberOfZeros = 1) => 0.4 - getMeasure(R,d01alf@S)$RT - [m, st, ext] - [0.0, "d01alf: A list of suitable singularities has not been found", ext] - - numericalIntegration(args:NIA,hints:Result) == - la:Any := coerce(search((d01alfextra@S),hints)$Result)@Any - listOfZeros:LDF := retract(la)$AnyFunctions1(LDF) - l:= removeDuplicates(listOfZeros)$LDF - n:Integer := (#(l))$List(DF) - M:Matrix DF := matrix([l])$(Matrix DF) - b:Float := getButtonValue("d01alf","functionEvaluations")$AttributeButtons - fEvals:INT := wholePart exp(1.1513*(1.0/(2.0*(1.0-b)))) - iw:INT := 75*fEvals - ArgsFn := map(convert(#1)$DF,args.fn)$EF2(DF,Float) - f : Union(fn:FileName,fp:Asp1(F)) := [retract(ArgsFn)$Asp1(F)] - d01alf(getlo(args.range),gethi(args.range),n,M,args.abserr,args.relerr,2*n*iw,n*iw,-1,f) - -@ -\section{domain D01ANFA d01anfAnnaType} -<>= -)abbrev domain D01ANFA d01anfAnnaType -++ Author: Brian Dupee -++ Date Created: March 1994 -++ Date Last Updated: December 1997 -++ Basic Operations: measure, numericalIntegration -++ Related Constructors: Result, RoutinesTable -++ Description: -++ \axiomType{d01anfAnnaType} is a domain of \axiomType{NumericalIntegrationCategory} -++ for the NAG routine D01ANF, a numerical integration routine which can -++ handle weight functions of the form cos(\omega x) or sin(\omega x). The -++ function \axiomFun{measure} measures the usefulness of the routine D01ANF -++ for the given problem. The function \axiomFun{numericalIntegration} -++ performs the integration by using \axiomType{NagIntegrationPackage}. - -d01anfAnnaType(): NumericalIntegrationCategory == Result add - EF2 ==> ExpressionFunctions2 - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - SDF ==> Stream DoubleFloat - DF ==> DoubleFloat - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - NIA ==> Record(var:Symbol,fn:EDF,range:SOCDF,abserr:DF,relerr:DF) - MDNIA ==> Record(fn:EDF,range:List SOCDF,abserr:DF,relerr:DF) - INT ==> Integer - BOP ==> BasicOperator - S ==> Symbol - ST ==> String - LST ==> List String - RT ==> RoutinesTable - Rep:=Result - import Rep, d01WeightsPackage, d01AgentsPackage, NagIntegrationPackage - - measure(R:RT,args:NIA) == - ext:Result := empty()$Result - weight:Union(Record(op:BOP,w:DF),"failed") := - exprHasWeightCosWXorSinWX(args) - weight case "failed" => - [0.0,"d01anf: A suitable weight has not been found", ext] - weight case Record(op:BOP,w:DF) => - wany := coerce(weight)$AnyFunctions1(Record(op:BOP,w:DF)) - ex:Record(key:S,entry:Any) := [d01anfextra@S,wany] - ext := insert!(ex,ext)$Result - ws:ST := string(name(weight.op)$BOP)$S "(" df2st(weight.w) - string(args.var)$S ")" - [getMeasure(R,d01anf@S)$RT, - "d01anf: The expression has a suitable weight:- " ws, ext] - - numericalIntegration(args:NIA,hints:Result) == - a:INT - r:Any := coerce(search((d01anfextra@S),hints)$Result)@Any - rec:Record(op:BOP,w:DF) := retract(r)$AnyFunctions1(Record(op:BOP,w:DF)) - Var := args.var :: EDF - o:BOP := rec.op - den:EDF := o((rec.w*Var)$EDF) - Argsfn:EDF := args.fn/den - if (name(o) = cos@S)@Boolean then a := 1 - else a := 2 - b:Float := getButtonValue("d01anf","functionEvaluations")$AttributeButtons - fEvals:INT := wholePart exp(1.1513*(1.0/(2.0*(1.0-b)))) - iw:INT := 75*fEvals - ArgsFn := map(convert(#1)$DF,Argsfn)$EF2(DF,Float) - f : Union(fn:FileName,fp:Asp1(G)) := [retract(ArgsFn)$Asp1(G)] - d01anf(getlo(args.range),gethi(args.range),rec.w,a,args.abserr,args.relerr,4*iw,iw,-1,f) - -@ -\section{domain D01ASFA d01asfAnnaType} -<>= -)abbrev domain D01ASFA d01asfAnnaType -++ Author: Brian Dupee -++ Date Created: March 1994 -++ Date Last Updated: December 1997 -++ Basic Operations: measure, numericalIntegration -++ Related Constructors: Result, RoutinesTable -++ Description: -++ \axiomType{d01asfAnnaType} is a domain of \axiomType{NumericalIntegrationCategory} -++ for the NAG routine D01ASF, a numerical integration routine which can -++ handle weight functions of the form cos(\omega x) or sin(\omega x) on an -++ semi-infinite range. The -++ function \axiomFun{measure} measures the usefulness of the routine D01ASF -++ for the given problem. The function \axiomFun{numericalIntegration} -++ performs the integration by using \axiomType{NagIntegrationPackage}. - -d01asfAnnaType(): NumericalIntegrationCategory == Result add - EF2 ==> ExpressionFunctions2 - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - SDF ==> Stream DoubleFloat - DF ==> DoubleFloat - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - NIA ==> Record(var:Symbol,fn:EDF,range:SOCDF,abserr:DF,relerr:DF) - MDNIA ==> Record(fn:EDF,range:List SOCDF,abserr:DF,relerr:DF) - INT ==> Integer - BOP ==> BasicOperator - S ==> Symbol - ST ==> String - LST ==> List String - RT ==> RoutinesTable - Rep:=Result - import Rep, d01WeightsPackage, d01AgentsPackage, NagIntegrationPackage - - measure(R:RT,args:NIA) == - ext:Result := empty()$Result - Range := rangeIsFinite(args) - not(Range case upperInfinite) => - [0.0,"d01asf is not a suitable routine for infinite integrals",ext] - weight: Union(Record(op:BOP,w:DF),"failed") := - exprHasWeightCosWXorSinWX(args) - weight case "failed" => - [0.0,"d01asf: A suitable weight has not been found", ext] - weight case Record(op:BOP,w:DF) => - wany := coerce(weight)$AnyFunctions1(Record(op:BOP,w:DF)) - ex:Record(key:S,entry:Any) := [d01asfextra@S,wany] - ext := insert!(ex,ext)$Result - ws:ST := string(name(weight.op)$BOP)$S "(" df2st(weight.w) - string(args.var)$S ")" - [getMeasure(R,d01asf@S)$RT, - "d01asf: A suitable weight has been found:- " ws, ext] - - numericalIntegration(args:NIA,hints:Result) == - i:INT - r:Any := coerce(search((d01asfextra@S),hints)$Result)@Any - rec:Record(op:BOP,w:DF) := retract(r)$AnyFunctions1(Record(op:BOP,w:DF)) - Var := args.var :: EDF - o:BOP := rec.op - den:EDF := o((rec.w*Var)$EDF) - Argsfn:EDF := args.fn/den - if (name(o) = cos@S)@Boolean then i := 1 - else i := 2 - b:Float := getButtonValue("d01asf","functionEvaluations")$AttributeButtons - fEvals:INT := wholePart exp(1.1513*(1.0/(2.0*(1.0-b)))) - iw:INT := 75*fEvals - ArgsFn := map(convert(#1)$DF,Argsfn)$EF2(DF,Float) - f : Union(fn:FileName,fp:Asp1(G)) := [retract(ArgsFn)$Asp1(G)] - err := - positive?(args.abserr) => args.abserr - args.relerr - d01asf(getlo(args.range),rec.w,i,err,50,4*iw,2*iw,-1,f) - -@ -\section{domain D01GBFA d01gbfAnnaType} -<>= -)abbrev domain D01GBFA d01gbfAnnaType -++ Author: Brian Dupee -++ Date Created: March 1994 -++ Date Last Updated: December 1997 -++ Basic Operations: measure, numericalIntegration -++ Related Constructors: Result, RoutinesTable -++ Description: -++ \axiomType{d01gbfAnnaType} is a domain of \axiomType{NumericalIntegrationCategory} -++ for the NAG routine D01GBF, a numerical integration routine which can -++ handle multi-dimensional quadrature over a finite region. The -++ function \axiomFun{measure} measures the usefulness of the routine D01GBF -++ for the given problem. The function \axiomFun{numericalIntegration} -++ performs the integration by using \axiomType{NagIntegrationPackage}. - -d01gbfAnnaType(): NumericalIntegrationCategory == Result add - EF2 ==> ExpressionFunctions2 - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - SDF ==> Stream DoubleFloat - DF ==> DoubleFloat - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - NIA ==> Record(var:Symbol,fn:EDF,range:SOCDF,abserr:DF,relerr:DF) - MDNIA ==> Record(fn:EDF,range:List SOCDF,abserr:DF,relerr:DF) - INT ==> Integer - BOP ==> BasicOperator - S ==> Symbol - ST ==> String - LST ==> List String - RT ==> RoutinesTable - Rep:=Result - import Rep, d01AgentsPackage, NagIntegrationPackage - - measure(R:RT,args:MDNIA) == - ext:Result := empty()$Result - (rel := args.relerr) < 0.01 :: DF => - [0.1, "d01gbf: The relative error requirement is too small",ext] - segs := args.range - vars := variables(args.fn)$EDF - for i in 1..# vars repeat - nia:NIA := [vars.i,args.fn,segs.i,args.abserr,rel] - not rangeIsFinite(nia) case finite => return - [0.0,"d01gbf is not a suitable routine for infinite integrals",ext] - [getMeasure(R,d01gbf@S)$RT, "Recommended is d01gbf", ext] - - numericalIntegration(args:MDNIA,hints:Result) == - import Integer - segs := args.range - dim:INT := # segs - low:Matrix DF := matrix([[getlo(segs.i) for i in 1..dim]])$(Matrix DF) - high:Matrix DF := matrix([[gethi(segs.i) for i in 1..dim]])$(Matrix DF) - b:Float := getButtonValue("d01gbf","functionEvaluations")$AttributeButtons - a:Float:= exp(1.1513*(1.0/(2.0*(1.0-b)))) - maxcls:INT := 1500*(dim+1)*(fEvals:INT := wholePart(a)) - mincls:INT := 300*fEvals - c:Float := nthRoot((maxcls::Float)/4.0,dim)$Float - lenwrk:INT := 3*dim*(d:INT := wholePart(c))+10*dim - wrkstr:Matrix DF := matrix([[0$DF for i in 1..lenwrk]])$(Matrix DF) - ArgsFn := map(convert(#1)$DF,args.fn)$EF2(DF,Float) - f : Union(fn:FileName,fp:Asp4(FUNCTN)) := [retract(ArgsFn)$Asp4(FUNCTN)] - out:Result := d01gbf(dim,low,high,maxcls,args.relerr,lenwrk,mincls,wrkstr,-1,f) - changeName(finest@Symbol,result@Symbol,out) - -@ -\section{domain D01FCFA d01fcfAnnaType} -<>= -)abbrev domain D01FCFA d01fcfAnnaType -++ Author: Brian Dupee -++ Date Created: March 1994 -++ Date Last Updated: December 1997 -++ Basic Operations: measure, numericalIntegration -++ Related Constructors: Result, RoutinesTable -++ Description: -++ \axiomType{d01fcfAnnaType} is a domain of \axiomType{NumericalIntegrationCategory} -++ for the NAG routine D01FCF, a numerical integration routine which can -++ handle multi-dimensional quadrature over a finite region. The -++ function \axiomFun{measure} measures the usefulness of the routine D01GBF -++ for the given problem. The function \axiomFun{numericalIntegration} -++ performs the integration by using \axiomType{NagIntegrationPackage}. - -d01fcfAnnaType(): NumericalIntegrationCategory == Result add - EF2 ==> ExpressionFunctions2 - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - SDF ==> Stream DoubleFloat - DF ==> DoubleFloat - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - NIA ==> Record(var:Symbol,fn:EDF,range:SOCDF,abserr:DF,relerr:DF) - MDNIA ==> Record(fn:EDF,range:List SOCDF,abserr:DF,relerr:DF) - INT ==> Integer - BOP ==> BasicOperator - S ==> Symbol - ST ==> String - LST ==> List String - RT ==> RoutinesTable - Rep:=Result - import Rep, d01AgentsPackage, NagIntegrationPackage - - measure(R:RT,args:MDNIA) == - ext:Result := empty()$Result - segs := args.range - vars := variables(args.fn)$EDF - for i in 1..# vars repeat - nia:NIA := [vars.i,args.fn,segs.i,args.abserr,args.relerr] - not rangeIsFinite(nia) case finite => return - [0.0,"d01fcf is not a suitable routine for infinite integrals",ext] - [getMeasure(R,d01fcf@S)$RT, "Recommended is d01fcf", ext] - - numericalIntegration(args:MDNIA,hints:Result) == - import Integer - segs := args.range - dim := # segs - err := args.relerr - low:Matrix DF := matrix([[getlo(segs.i) for i in 1..dim]])$(Matrix DF) - high:Matrix DF := matrix([[gethi(segs.i) for i in 1..dim]])$(Matrix DF) - b:Float := getButtonValue("d01fcf","functionEvaluations")$AttributeButtons - a:Float:= exp(1.1513*(1.0/(2.0*(1.0-b)))) - alpha:INT := 2**dim+2*dim**2+2*dim+1 - d:Float := max(1.e-3,nthRoot(convert(err)@Float,4))$Float - minpts:INT := (fEvals := wholePart(a))*wholePart(alpha::Float/d) - maxpts:INT := 5*minpts - lenwrk:INT := (dim+2)*(1+(33*fEvals)) - ArgsFn := map(convert(#1)$DF,args.fn)$EF2(DF,Float) - f : Union(fn:FileName,fp:Asp4(FUNCTN)) := [retract(ArgsFn)$Asp4(FUNCTN)] - out:Result := d01fcf(dim,low,high,maxpts,err,lenwrk,minpts,-1,f) - changeName(finval@Symbol,result@Symbol,out) - -@ -\section{License} -<>= ---Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. ---All rights reserved. --- ---Redistribution and use in source and binary forms, with or without ---modification, are permitted provided that the following conditions are ---met: --- --- - Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- --- - Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in --- the documentation and/or other materials provided with the --- distribution. --- --- - Neither the name of The Numerical ALgorithms Group Ltd. nor the --- names of its contributors may be used to endorse or promote products --- derived from this software without specific prior written permission. --- ---THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS ---IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ---PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER ---OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ---EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ---PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ---PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ---NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ---SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<> - -<> -<> -<> -<> -<> -<> -<> -<> -<> -<> -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/algebra/d01transform.spad.pamphlet b/src/algebra/d01transform.spad.pamphlet deleted file mode 100644 index 6866ac9..0000000 --- a/src/algebra/d01transform.spad.pamphlet +++ /dev/null @@ -1,212 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/algebra d01transform.spad} -\author{Brian Dupee} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{domain D01TRNS d01TransformFunctionType} -<>= -)abbrev domain D01TRNS d01TransformFunctionType -++ Author: Brian Dupee -++ Date Created: April 1994 -++ Date Last Updated: December 1997 -++ Basic Operations: measure, numericalIntegration -++ Related Constructors: Result, RoutinesTable -++ Description: -++ Since an infinite integral cannot be evaluated numerically -++ it is necessary to transform the integral onto finite ranges. -++ \axiomType{d01TransformFunctionType} uses the mapping \spad{x -> 1/x} -++ and contains the functions \axiomFun{measure} and -++ \axiomFun{numericalIntegration}. -EDF ==> Expression DoubleFloat -EEDF ==> Equation Expression DoubleFloat -FI ==> Fraction Integer -EFI ==> Expression Fraction Integer -EEFI ==> Equation Expression Fraction Integer -EF2 ==> ExpressionFunctions2 -DF ==> DoubleFloat -F ==> Float -SOCDF ==> Segment OrderedCompletion DoubleFloat -OCDF ==> OrderedCompletion DoubleFloat -NIA ==> Record(var:Symbol,fn:EDF,range:SOCDF,abserr:DF,relerr:DF) -INT ==> Integer -PI ==> PositiveInteger -HINT ==> Record(str:String,fn:EDF,range:SOCDF,ext:Result) -S ==> Symbol -ST ==> String -LST ==> List String -Measure ==> Record(measure:F,explanations:ST,extra:Result) -MS ==> Record(measure:F,name:ST,explanations:LST,extra:Result) - -d01TransformFunctionType():NumericalIntegrationCategory == Result add - Rep:=Result - import d01AgentsPackage,Rep - - rec2any(re:Record(str:ST,fn:EDF,range:SOCDF)):Any == - coerce(re)$AnyFunctions1(Record(str:ST,fn:EDF,range:SOCDF)) - - changeName(ans:Result,name:ST):Result == - sy:S := coerce(name "Answer")$S - anyAns:Any := coerce(ans)$AnyFunctions1(Result) - construct([[sy,anyAns]])$Result - - getIntegral(args:NIA,hint:HINT) : Result == - Args := copy args - Args.fn := hint.fn - Args.range := hint.range - integrate(Args::NumericalIntegrationProblem)$AnnaNumericalIntegrationPackage - - transformFunction(args:NIA) : NIA == - Args := copy args - Var := Args.var :: EFI -- coerce Symbol to EFI - NewVar:EFI := inv(Var)$EFI -- invert it - VarEqn:EEFI:=equation(Var,NewVar)$EEFI -- turn it into an equation - Afn:EFI := edf2efi(Args.fn)$ExpertSystemToolsPackage - Afn := subst(Afn,VarEqn)$EFI -- substitute into function - Var2:EFI := Var**2 - Afn:= simplify(Afn/Var2)$TranscendentalManipulations(FI,EFI) - Args.fn:= map(convert(#1)$FI,Afn)$EF2(FI,DF) - Args - - doit(seg:SOCDF,args:NIA):MS == - Args := copy args - Args.range := seg - measure(Args::NumericalIntegrationProblem)$AnnaNumericalIntegrationPackage - - transform(c:Boolean,args:NIA):Measure == - if c then - l := coerce(recip(lo(args.range)))@OCDF - Seg:SOCDF := segment(0$OCDF,l) - else - h := coerce(recip(hi(args.range)))@OCDF - Seg:SOCDF := segment(h,0$OCDF) - Args := transformFunction(args) - m:MS := doit(Seg,Args) - out1:ST := - "The recommendation is to transform the function and use " m.name - out2:List(HINT) := [[m.name,Args.fn,Seg,m.extra]] - out2Any:Any := coerce(out2)$AnyFunctions1(List(HINT)) - ex:Record(key:S,entry:Any) := [d01transformextra@S,out2Any] - extr:Result := construct([ex])$Result - [m.measure,out1,extr] - - split(c:PI,args:NIA):Measure == - Args := copy args - Args.relerr := Args.relerr/2 - Args.abserr := Args.abserr/2 - if (c = 1)@Boolean then - seg1:SOCDF := segment(-1$OCDF,1$OCDF) - else if (c = 2)@Boolean then - seg1 := segment(lo(Args.range),1$OCDF) - else - seg1 := segment(-1$OCDF,hi(Args.range)) - m1:MS := doit(seg1,Args) - Args := transformFunction Args - if (c = 2)@Boolean then - seg2:SOCDF := segment(0$OCDF,1$OCDF) - else if (c = 3)@Boolean then - seg2 := segment(-1$OCDF,0$OCDF) - else seg2 := seg1 - m2:MS := doit(seg2,Args) - m1m:F := m1.measure - m2m:F := m2.measure - m:F := m1m*m2m/((m1m*m2m)+(1.0-m1m)*(1.0-m2m)) - out1:ST := "The recommendation is to transform the function and use " - m1.name " and " m2.name - out2:List(HINT) := - [[m1.name,args.fn,seg1,m1.extra],[m2.name,Args.fn,seg2,m2.extra]] - out2Any:Any := coerce(out2)$AnyFunctions1(List(HINT)) - ex:Record(key:S,entry:Any) := [d01transformextra@S,out2Any] - extr:Result := construct([ex])$Result - [m,out1,extr] - - measure(R:RoutinesTable,args:NIA) == - Range:=rangeIsFinite(args) - Range case bothInfinite => split(1,args) - Range case upperInfinite => - positive?(lo(args.range))$OCDF => - transform(true,args) - split(2,args) - Range case lowerInfinite => - negative?(hi(args.range))$OCDF => - transform(false,args) - split(3,args) - - numericalIntegration(args:NIA,hints:Result) == - mainResult:DF := mainAbserr:DF := 0$DF - ans:Result := empty()$Result - hla:Any := coerce(search((d01transformextra@S),hints)$Result)@Any - hintList := retract(hla)$AnyFunctions1(List(HINT)) - methodName:ST := empty()$ST - repeat - if (empty?(hintList)$(List(HINT))) - then leave - item := first(hintList)$List(HINT) - a:Result := getIntegral(args,item) - anyRes := coerce(search((result@S),a)$Result)@Any - midResult := retract(anyRes)$AnyFunctions1(DF) - anyErr := coerce(search((abserr pretend S),a)$Result)@Any - midAbserr := retract(anyErr)$AnyFunctions1(DF) - mainResult := mainResult+midResult - mainAbserr := mainAbserr+midAbserr - if (methodName = item.str)@Boolean then - methodName := concat([item.str,"1"])$ST - else - methodName := item.str - ans := concat(ans,changeName(a,methodName))$ExpertSystemToolsPackage - hintList := rest(hintList)$(List(HINT)) - anyResult := coerce(mainResult)$AnyFunctions1(DF) - anyAbserr := coerce(mainAbserr)$AnyFunctions1(DF) - recResult:Record(key:S,entry:Any):=[result@S,anyResult] - recAbserr:Record(key:S,entry:Any):=[abserr pretend S,anyAbserr] - insert!(recAbserr,insert!(recResult,ans))$Result - -@ -\section{License} -<>= ---Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. ---All rights reserved. --- ---Redistribution and use in source and binary forms, with or without ---modification, are permitted provided that the following conditions are ---met: --- --- - Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- --- - Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in --- the documentation and/or other materials provided with the --- distribution. --- --- - Neither the name of The Numerical ALgorithms Group Ltd. nor the --- names of its contributors may be used to endorse or promote products --- derived from this software without specific prior written permission. --- ---THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS ---IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ---PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER ---OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ---EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ---PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ---PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ---NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ---SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<> - -<> -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/algebra/d02agents.spad.pamphlet b/src/algebra/d02agents.spad.pamphlet index d3e18ec..059d443 100644 --- a/src/algebra/d02agents.spad.pamphlet +++ b/src/algebra/d02agents.spad.pamphlet @@ -9,85 +9,6 @@ \eject \tableofcontents \eject -\section{domain ODEIFTBL ODEIntensityFunctionsTable} -<>= -)abbrev domain ODEIFTBL ODEIntensityFunctionsTable -++ Author: Brian Dupee -++ Date Created: May 1994 -++ Date Last Updated: January 1996 -++ Basic Operations: showTheIFTable, insert! -++ Description: -++ \axiom{ODEIntensityFunctionsTable()} provides a dynamic table and a set of -++ functions to store details found out about sets of ODE's. - -ODEIntensityFunctionsTable(): E == I where - LEDF ==> List Expression DoubleFloat - LEEDF ==> List Equation Expression DoubleFloat - EEDF ==> Equation Expression DoubleFloat - VEDF ==> Vector Expression DoubleFloat - MEDF ==> Matrix Expression DoubleFloat - MDF ==> Matrix DoubleFloat - EDF ==> Expression DoubleFloat - DF ==> DoubleFloat - F ==> Float - INT ==> Integer - CDF ==> Complex DoubleFloat - LDF ==> List DoubleFloat - LF ==> List Float - S ==> Symbol - LS ==> List Symbol - MFI ==> Matrix Fraction Integer - LFI ==> List Fraction Integer - FI ==> Fraction Integer - ODEA ==> Record(xinit:DF,xend:DF,fn:VEDF,yinit:LDF,intvals:LDF,g:EDF,abserr:DF,relerr:DF) - ON ==> Record(additions:INT,multiplications:INT,exponentiations:INT,functionCalls:INT) - RVE ==> Record(val:EDF,exponent:INT) - RSS ==> Record(stiffnessFactor:F,stabilityFactor:F) - ATT ==> Record(stiffness:F,stability:F,expense:F,accuracy:F,intermediateResults:F) - ROA ==> Record(key:ODEA,entry:ATT) - - E ==> with - showTheIFTable:() -> $ - ++ showTheIFTable() returns the current table of intensity functions. - clearTheIFTable : () -> Void - ++ clearTheIFTable() clears the current table of intensity functions. - keys : $ -> List(ODEA) - ++ keys(tab) returns the list of keys of f - iFTable: List Record(key:ODEA,entry:ATT) -> $ - ++ iFTable(l) creates an intensity-functions table from the elements - ++ of l. - insert!:Record(key:ODEA,entry:ATT) -> $ - ++ insert!(r) inserts an entry r into theIFTable - showIntensityFunctions:ODEA -> Union(ATT,"failed") - ++ showIntensityFunctions(k) returns the entries in the - ++ table of intensity functions k. - - I ==> add - Rep := Table(ODEA,ATT) - import Rep - - theIFTable:$ := empty()$Rep - - showTheIFTable():$ == - theIFTable - - clearTheIFTable():Void == - theIFTable := empty()$Rep - void()$Void - - iFTable(l:List Record(key:ODEA,entry:ATT)):$ == - theIFTable := table(l)$Rep - - insert!(r:Record(key:ODEA,entry:ATT)):$ == - insert!(r,theIFTable)$Rep - - keys(t:$):List ODEA == - keys(t)$Rep - - showIntensityFunctions(k:ODEA):Union(ATT,"failed") == - search(k,theIFTable)$Rep - -@ \section{package D02AGNT d02AgentsPackage} <>= )abbrev package D02AGNT d02AgentsPackage @@ -414,7 +335,6 @@ d02AgentsPackage(): E == I where <<*>>= <> -<> <> @ \eject diff --git a/src/algebra/d02routine.spad.pamphlet b/src/algebra/d02routine.spad.pamphlet deleted file mode 100644 index 106f29b..0000000 --- a/src/algebra/d02routine.spad.pamphlet +++ /dev/null @@ -1,424 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/algebra d02routine.spad} -\author{Brian Dupee} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{domain D02BBFA d02bbfAnnaType} -<>= -)abbrev domain D02BBFA d02bbfAnnaType -++ Author: Brian Dupee -++ Date Created: February 1995 -++ Date Last Updated: January 1996 -++ Basic Operations: -++ Description: -++ \axiomType{d02bbfAnnaType} is a domain of -++ \axiomType{OrdinaryDifferentialEquationsInitialValueProblemSolverCategory} -++ for the NAG routine D02BBF, a ODE routine which uses an -++ Runge-Kutta method to solve a system of differential -++ equations. The function \axiomFun{measure} measures the -++ usefulness of the routine D02BBF for the given problem. The -++ function \axiomFun{ODESolve} performs the integration by using -++ \axiomType{NagOrdinaryDifferentialEquationsPackage}. - - -d02bbfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add -- Runge Kutta - - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - MDF ==> Matrix DoubleFloat - DF ==> DoubleFloat - F ==> Float - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - VEDF ==> Vector Expression DoubleFloat - VEF ==> Vector Expression Float - EF ==> Expression Float - VDF ==> Vector DoubleFloat - VMF ==> Vector MachineFloat - MF ==> MachineFloat - ODEA ==> Record(xinit:DF,xend:DF,fn:VEDF,yinit:LDF,intvals:LDF,_ - g:EDF,abserr:DF,relerr:DF) - RSS ==> Record(stiffnessFactor:F,stabilityFactor:F) - INT ==> Integer - EF2 ==> ExpressionFunctions2 - - import d02AgentsPackage, NagOrdinaryDifferentialEquationsPackage - import AttributeButtons - - accuracyCF(ode:ODEA):F == - b := getButtonValue("d02bbf","accuracy")$AttributeButtons - accuracyIntensityValue := combineFeatureCompatibility(b,accuracyIF(ode)) - accuracyIntensityValue > 0.999 => 0$F - 0.8*exp(-((10*accuracyIntensityValue)**3)$F/266)$F - - stiffnessCF(stiffnessIntensityValue:F):F == - b := getButtonValue("d02bbf","stiffness")$AttributeButtons - 0.5*exp(-(2*combineFeatureCompatibility(b,stiffnessIntensityValue))**2)$F - - stabilityCF(stabilityIntensityValue:F):F == - b := getButtonValue("d02bbf","stability")$AttributeButtons - 0.5 * cos(combineFeatureCompatibility(b,stabilityIntensityValue))$F - - expenseOfEvaluationCF(ode:ODEA):F == - b := getButtonValue("d02bbf","expense")$AttributeButtons - expenseOfEvaluationIntensityValue := - combineFeatureCompatibility(b,expenseOfEvaluationIF(ode)) - 0.35+0.2*exp(-(2.0*expenseOfEvaluationIntensityValue)**3)$F - - measure(R:RoutinesTable,args:ODEA) == - m := getMeasure(R,d02bbf :: Symbol)$RoutinesTable - ssf := stiffnessAndStabilityOfODEIF args - m := combineFeatureCompatibility(m,[accuracyCF(args), - stiffnessCF(ssf.stiffnessFactor), - expenseOfEvaluationCF(args), - stabilityCF(ssf.stabilityFactor)]) - [m,"Runge-Kutta Merson method"] - - ODESolve(ode:ODEA) == - i:LDF := ode.intvals - M := inc(# i)$INT - irelab := 0$INT - if positive?(a := ode.abserr) then - inc(irelab)$INT - if positive?(r := ode.relerr) then - inc(irelab)$INT - if positive?(a+r) then - tol:DF := a + r - else - tol := float(1,-4,10)$DF - asp7:Union(fn:FileName,fp:Asp7(FCN)) := - [retract(vedf2vef(ode.fn)$ExpertSystemToolsPackage)$Asp7(FCN)] - asp8:Union(fn:FileName,fp:Asp8(OUTPUT)) := - [coerce(ldf2vmf(i)$ExpertSystemToolsPackage)$Asp8(OUTPUT)] - d02bbf(ode.xend,M,# ode.fn,irelab,ode.xinit,matrix([ode.yinit])$MDF, - tol,-1,asp7,asp8) - -@ -\section{domain D02BHFA d02bhfAnnaType} -<>= -)abbrev domain D02BHFA d02bhfAnnaType -++ Author: Brian Dupee -++ Date Created: February 1995 -++ Date Last Updated: January 1996 -++ Basic Operations: -++ Description: -++ \axiomType{d02bhfAnnaType} is a domain of -++ \axiomType{OrdinaryDifferentialEquationsInitialValueProblemSolverCategory} -++ for the NAG routine D02BHF, a ODE routine which uses an -++ Runge-Kutta method to solve a system of differential -++ equations. The function \axiomFun{measure} measures the -++ usefulness of the routine D02BHF for the given problem. The -++ function \axiomFun{ODESolve} performs the integration by using -++ \axiomType{NagOrdinaryDifferentialEquationsPackage}. - -d02bhfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add -- Runge Kutta - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - MDF ==> Matrix DoubleFloat - DF ==> DoubleFloat - F ==> Float - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - VEDF ==> Vector Expression DoubleFloat - VEF ==> Vector Expression Float - EF ==> Expression Float - VDF ==> Vector DoubleFloat - VMF ==> Vector MachineFloat - MF ==> MachineFloat - ODEA ==> Record(xinit:DF,xend:DF,fn:VEDF,yinit:LDF,intvals:LDF,_ - g:EDF,abserr:DF,relerr:DF) - RSS ==> Record(stiffnessFactor:F,stabilityFactor:F) - INT ==> Integer - EF2 ==> ExpressionFunctions2 - - import d02AgentsPackage, NagOrdinaryDifferentialEquationsPackage - import AttributeButtons - - accuracyCF(ode:ODEA):F == - b := getButtonValue("d02bhf","accuracy")$AttributeButtons - accuracyIntensityValue := combineFeatureCompatibility(b,accuracyIF(ode)) - accuracyIntensityValue > 0.999 => 0$F - 0.8*exp(-((10*accuracyIntensityValue)**3)$F/266)$F - - stiffnessCF(stiffnessIntensityValue:F):F == - b := getButtonValue("d02bhf","stiffness")$AttributeButtons - 0.5*exp(-(2*combineFeatureCompatibility(b,stiffnessIntensityValue))**2)$F - - stabilityCF(stabilityIntensityValue:F):F == - b := getButtonValue("d02bhf","stability")$AttributeButtons - 0.5 * cos(combineFeatureCompatibility(b,stabilityIntensityValue))$F - - expenseOfEvaluationCF(ode:ODEA):F == - b := getButtonValue("d02bhf","expense")$AttributeButtons - expenseOfEvaluationIntensityValue := - combineFeatureCompatibility(b,expenseOfEvaluationIF(ode)) - 0.35+0.2*exp(-(2.0*expenseOfEvaluationIntensityValue)**3)$F - - measure(R:RoutinesTable,args:ODEA) == - m := getMeasure(R,d02bhf :: Symbol)$RoutinesTable - ssf := stiffnessAndStabilityOfODEIF args - m := combineFeatureCompatibility(m,[accuracyCF(args), - stiffnessCF(ssf.stiffnessFactor), - expenseOfEvaluationCF(args), - stabilityCF(ssf.stabilityFactor)]) - [m,"Runge-Kutta Merson method"] - - ODESolve(ode:ODEA) == - irelab := 0$INT - if positive?(a := ode.abserr) then - inc(irelab)$INT - if positive?(r := ode.relerr) then - inc(irelab)$INT - if positive?(a+r) then - tol := max(a,r)$DF - else - tol:DF := float(1,-4,10)$DF - asp7:Union(fn:FileName,fp:Asp7(FCN)) := - [retract(e:VEF := vedf2vef(ode.fn)$ExpertSystemToolsPackage)$Asp7(FCN)] - asp9:Union(fn:FileName,fp:Asp9(G)) := - [retract(edf2ef(ode.g)$ExpertSystemToolsPackage)$Asp9(G)] - d02bhf(ode.xend,# e,irelab,0$DF,ode.xinit,matrix([ode.yinit])$MDF, - tol,-1,asp9,asp7) - -@ -\section{domain D02CJFA d02cjfAnnaType} -<>= -)abbrev domain D02CJFA d02cjfAnnaType -++ Author: Brian Dupee -++ Date Created: February 1995 -++ Date Last Updated: January 1996 -++ Basic Operations: -++ Description: -++ \axiomType{d02cjfAnnaType} is a domain of -++ \axiomType{OrdinaryDifferentialEquationsInitialValueProblemSolverCategory} -++ for the NAG routine D02CJF, a ODE routine which uses an -++ Adams-Moulton-Bashworth method to solve a system of differential -++ equations. The function \axiomFun{measure} measures the -++ usefulness of the routine D02CJF for the given problem. The -++ function \axiomFun{ODESolve} performs the integration by using -++ \axiomType{NagOrdinaryDifferentialEquationsPackage}. - -d02cjfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add -- Adams - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - MDF ==> Matrix DoubleFloat - DF ==> DoubleFloat - F ==> Float - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - VEDF ==> Vector Expression DoubleFloat - VEF ==> Vector Expression Float - EF ==> Expression Float - VDF ==> Vector DoubleFloat - VMF ==> Vector MachineFloat - MF ==> MachineFloat - ODEA ==> Record(xinit:DF,xend:DF,fn:VEDF,yinit:LDF,intvals:LDF,_ - g:EDF,abserr:DF,relerr:DF) - RSS ==> Record(stiffnessFactor:F,stabilityFactor:F) - INT ==> Integer - EF2 ==> ExpressionFunctions2 - - import d02AgentsPackage, NagOrdinaryDifferentialEquationsPackage - - accuracyCF(ode:ODEA):F == - b := getButtonValue("d02cjf","accuracy")$AttributeButtons - accuracyIntensityValue := combineFeatureCompatibility(b,accuracyIF(ode)) - accuracyIntensityValue > 0.9999 => 0$F - 0.6*(cos(accuracyIntensityValue*(pi()$F)/2)$F)**0.755 - - stiffnessCF(ode:ODEA):F == - b := getButtonValue("d02cjf","stiffness")$AttributeButtons - ssf := stiffnessAndStabilityOfODEIF ode - stiffnessIntensityValue := - combineFeatureCompatibility(b,ssf.stiffnessFactor) - 0.5*exp(-(1.1*stiffnessIntensityValue)**3)$F - - measure(R:RoutinesTable,args:ODEA) == - m := getMeasure(R,d02cjf :: Symbol)$RoutinesTable - m := combineFeatureCompatibility(m,[accuracyCF(args), stiffnessCF(args)]) - [m,"Adams method"] - - ODESolve(ode:ODEA) == - i:LDF := ode.intvals - if empty?(i) then - i := [ode.xend] - M := inc(# i)$INT - if positive?((a := ode.abserr)*(r := ode.relerr))$DF then - ire:String := "D" - else - if positive?(a) then - ire:String := "A" - else - ire:String := "R" - tol := max(a,r)$DF - asp7:Union(fn:FileName,fp:Asp7(FCN)) := - [retract(e:VEF := vedf2vef(ode.fn)$ExpertSystemToolsPackage)$Asp7(FCN)] - asp8:Union(fn:FileName,fp:Asp8(OUTPUT)) := - [coerce(ldf2vmf(i)$ExpertSystemToolsPackage)$Asp8(OUTPUT)] - asp9:Union(fn:FileName,fp:Asp9(G)) := - [retract(edf2ef(ode.g)$ExpertSystemToolsPackage)$Asp9(G)] - d02cjf(ode.xend,M,# e,tol,ire,ode.xinit,matrix([ode.yinit])$MDF, - -1,asp9,asp7,asp8) - -@ -\section{domain D02EJFA d02ejfAnnaType} -<>= -)abbrev domain D02EJFA d02ejfAnnaType -++ Author: Brian Dupee -++ Date Created: February 1995 -++ Date Last Updated: January 1996 -++ Basic Operations: -++ Description: -++ \axiomType{d02ejfAnnaType} is a domain of -++ \axiomType{OrdinaryDifferentialEquationsInitialValueProblemSolverCategory} -++ for the NAG routine D02EJF, a ODE routine which uses a backward -++ differentiation formulae method to handle a stiff system -++ of differential equations. The function \axiomFun{measure} measures -++ the usefulness of the routine D02EJF for the given problem. The -++ function \axiomFun{ODESolve} performs the integration by using -++ \axiomType{NagOrdinaryDifferentialEquationsPackage}. - -d02ejfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add -- BDF "Stiff" - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - MDF ==> Matrix DoubleFloat - DF ==> DoubleFloat - F ==> Float - FI ==> Fraction Integer - EFI ==> Expression Fraction Integer - SOCDF ==> Segment OrderedCompletion DoubleFloat - VEDF ==> Vector Expression DoubleFloat - VEF ==> Vector Expression Float - EF ==> Expression Float - VDF ==> Vector DoubleFloat - VMF ==> Vector MachineFloat - MF ==> MachineFloat - ODEA ==> Record(xinit:DF,xend:DF,fn:VEDF,yinit:LDF,intvals:LDF,_ - g:EDF,abserr:DF,relerr:DF) - RSS ==> Record(stiffnessFactor:F,stabilityFactor:F) - INT ==> Integer - EF2 ==> ExpressionFunctions2 - - import d02AgentsPackage, NagOrdinaryDifferentialEquationsPackage - - accuracyCF(ode:ODEA):F == - b := getButtonValue("d02ejf","accuracy")$AttributeButtons - accuracyIntensityValue := combineFeatureCompatibility(b,accuracyIF(ode)) - accuracyIntensityValue > 0.999 => 0$F - 0.5*exp(-((10*accuracyIntensityValue)**3)$F/250)$F - - intermediateResultsCF(ode:ODEA):F == - intermediateResultsIntensityValue := intermediateResultsIF(ode) - i := 0.5 * exp(-(intermediateResultsIntensityValue/1.649)**3)$F - a := accuracyCF(ode) - i+(0.5-i)*(0.5-a) - - stabilityCF(ode:ODEA):F == - b := getButtonValue("d02ejf","stability")$AttributeButtons - ssf := stiffnessAndStabilityOfODEIF ode - stabilityIntensityValue := - combineFeatureCompatibility(b,ssf.stabilityFactor) - 0.68 - 0.5 * exp(-(stabilityIntensityValue)**3)$F - - expenseOfEvaluationCF(ode:ODEA):F == - b := getButtonValue("d02ejf","expense")$AttributeButtons - expenseOfEvaluationIntensityValue := - combineFeatureCompatibility(b,expenseOfEvaluationIF(ode)) - 0.5 * exp(-(1.7*expenseOfEvaluationIntensityValue)**3)$F - - systemSizeCF(args:ODEA):F == - (1$F - systemSizeIF(args))/2.0 - - measure(R:RoutinesTable,args:ODEA) == - arg := copy args - m := getMeasure(R,d02ejf :: Symbol)$RoutinesTable - m := combineFeatureCompatibility(m,[intermediateResultsCF(arg), - accuracyCF(arg), - systemSizeCF(arg), - expenseOfEvaluationCF(arg), - stabilityCF(arg)]) - [m,"BDF method for Stiff Systems"] - - ODESolve(ode:ODEA) == - i:LDF := ode.intvals - m := inc(# i)$INT - if positive?((a := ode.abserr)*(r := ode.relerr))$DF then - ire:String := "D" - else - if positive?(a) then - ire:String := "A" - else - ire:String := "R" - if positive?(a+r)$DF then - tol := max(a,r)$DF - else - tol := float(1,-4,10)$DF - asp7:Union(fn:FileName,fp:Asp7(FCN)) := - [retract(e:VEF := vedf2vef(ode.fn)$ExpertSystemToolsPackage)$Asp7(FCN)] - asp31:Union(fn:FileName,fp:Asp31(PEDERV)) := - [retract(e)$Asp31(PEDERV)] - asp8:Union(fn:FileName,fp:Asp8(OUTPUT)) := - [coerce(ldf2vmf(i)$ExpertSystemToolsPackage)$Asp8(OUTPUT)] - asp9:Union(fn:FileName,fp:Asp9(G)) := - [retract(edf2ef(ode.g)$ExpertSystemToolsPackage)$Asp9(G)] - n:INT := # ode.yinit - iw:INT := (12+n)*n+50 - ans := d02ejf(ode.xend,m,n,ire,iw,ode.xinit,matrix([ode.yinit])$MDF, - tol,-1,asp9,asp7,asp31,asp8) - -@ -\section{License} -<>= ---Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. ---All rights reserved. --- ---Redistribution and use in source and binary forms, with or without ---modification, are permitted provided that the following conditions are ---met: --- --- - Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- --- - Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in --- the documentation and/or other materials provided with the --- distribution. --- --- - Neither the name of The Numerical ALgorithms Group Ltd. nor the --- names of its contributors may be used to endorse or promote products --- derived from this software without specific prior written permission. --- ---THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS ---IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ---PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER ---OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ---EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ---PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ---PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ---NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ---SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<> - -<> -<> -<> -<> -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/algebra/d03routine.spad.pamphlet b/src/algebra/d03routine.spad.pamphlet deleted file mode 100644 index cd7a10c..0000000 --- a/src/algebra/d03routine.spad.pamphlet +++ /dev/null @@ -1,164 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/algebra d03routine.spad} -\author{Brian Dupee} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{domain D03EEFA d03eefAnnaType} -<>= -)abbrev domain D03EEFA d03eefAnnaType -++ Author: Brian Dupee -++ Date Created: June 1996 -++ Date Last Updated: June 1996 -++ Basic Operations: -++ Description: -++ \axiomType{d03eefAnnaType} is a domain of -++ \axiomType{PartialDifferentialEquationsSolverCategory} -++ for the NAG routines D03EEF/D03EDF. -d03eefAnnaType():PartialDifferentialEquationsSolverCategory == Result add -- 2D Elliptic PDE - LEDF ==> List Expression DoubleFloat - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - MDF ==> Matrix DoubleFloat - DF ==> DoubleFloat - F ==> Float - FI ==> Fraction Integer - VEF ==> Vector Expression Float - EF ==> Expression Float - MEF ==> Matrix Expression Float - NNI ==> NonNegativeInteger - INT ==> Integer - PDEC ==> Record(start:DF, finish:DF, grid:NNI, boundaryType:INT, - dStart:MDF, dFinish:MDF) - PDEB ==> Record(pde:LEDF, constraints:List PDEC, - f:List LEDF, st:String, tol:DF) - - import d03AgentsPackage, NagPartialDifferentialEquationsPackage - import ExpertSystemToolsPackage - - measure(R:RoutinesTable,args:PDEB) == - (# (args.constraints) > 2)@Boolean => - [0$F,"d03eef/d03edf is unsuitable for PDEs of order more than 2"] - elliptic?(args) => - m := getMeasure(R,d03eef :: Symbol)$RoutinesTable - [m,"d03eef/d03edf is suitable"] - [0$F,"d03eef/d03edf is unsuitable for hyperbolic or parabolic PDEs"] - - PDESolve(args:PDEB) == - xcon := first(args.constraints) - ycon := second(args.constraints) - nx := xcon.grid - ny := ycon.grid - p := args.pde - x1 := xcon.start - x2 := xcon.finish - y1 := ycon.start - y2 := ycon.finish - lda := ((4*(nx+1)*(ny+1)+2) quo 3)$INT - scheme:String := - central?((x2-x1)/2,(y2-y1)/2,args.pde) => "C" - "U" - asp73:Union(fn:FileName,fp:Asp73(PDEF)) := - [retract(vector([edf2ef u for u in p])$VEF)$Asp73(PDEF)] - asp74:Union(fn:FileName,fp:Asp74(BNDY)) := - [retract(matrix([[edf2ef v for v in w] for w in args.f])$MEF)$Asp74(BNDY)] - fde := d03eef(x1,x2,y1,y2,nx,ny,lda,scheme,-1,asp73,asp74) - ub := new(1,nx*ny,0$DF)$MDF - A := search(a::Symbol,fde)$Result - A case "failed" => empty()$Result - AA := A::Any - fdea := retract(AA)$AnyFunctions1(MDF) - r := search(rhs::Symbol,fde)$Result - r case "failed" => empty()$Result - rh := r::Any - fderhs := retract(rh)$AnyFunctions1(MDF) - d03edf(nx,ny,lda,15,args.tol,0,fdea,fderhs,ub,-1) - -@ -\section{domain D03FAFA d03fafAnnaType} -<>= -)abbrev domain D03FAFA d03fafAnnaType -++ Author: Brian Dupee -++ Date Created: July 1996 -++ Date Last Updated: July 1996 -++ Basic Operations: -++ Description: -++ \axiomType{d03fafAnnaType} is a domain of -++ \axiomType{PartialDifferentialEquationsSolverCategory} -++ for the NAG routine D03FAF. -d03fafAnnaType():PartialDifferentialEquationsSolverCategory == Result add -- 3D Helmholtz PDE - LEDF ==> List Expression DoubleFloat - EDF ==> Expression DoubleFloat - LDF ==> List DoubleFloat - MDF ==> Matrix DoubleFloat - DF ==> DoubleFloat - F ==> Float - FI ==> Fraction Integer - VEF ==> Vector Expression Float - EF ==> Expression Float - MEF ==> Matrix Expression Float - NNI ==> NonNegativeInteger - INT ==> Integer - PDEC ==> Record(start:DF, finish:DF, grid:NNI, boundaryType:INT, - dStart:MDF, dFinish:MDF) - PDEB ==> Record(pde:LEDF, constraints:List PDEC, - f:List LEDF, st:String, tol:DF) - - import d03AgentsPackage, NagPartialDifferentialEquationsPackage - import ExpertSystemToolsPackage - - measure(R:RoutinesTable,args:PDEB) == - (# (args.constraints) < 3)@Boolean => - [0$F,"d03faf is unsuitable for PDEs of order other than 3"] - [0$F,"d03faf isn't finished"] - -@ -\section{License} -<>= ---Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. ---All rights reserved. --- ---Redistribution and use in source and binary forms, with or without ---modification, are permitted provided that the following conditions are ---met: --- --- - Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- --- - Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in --- the documentation and/or other materials provided with the --- distribution. --- --- - Neither the name of The Numerical ALgorithms Group Ltd. nor the --- names of its contributors may be used to endorse or promote products --- derived from this software without specific prior written permission. --- ---THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS ---IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ---PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER ---OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ---EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ---PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ---PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ---NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ---SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<> - -<> -<> -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/algebra/derham.spad.pamphlet b/src/algebra/derham.spad.pamphlet deleted file mode 100644 index 2bfa12d..0000000 --- a/src/algebra/derham.spad.pamphlet +++ /dev/null @@ -1,1029 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/algebra derham.spad} -\author{Larry A. Lambe} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{domain EAB ExtAlgBasis} -<>= -)abbrev domain EAB ExtAlgBasis ---% ExtAlgBasis -++ Author: Larry Lambe -++ Date created: 03/14/89 -++ Description: -++ A domain used in the construction of the exterior algebra on a set -++ X over a ring R. This domain represents the set of all ordered -++ subsets of the set X, assumed to be in correspondance with -++ {1,2,3, ...}. The ordered subsets are themselves ordered -++ lexicographically and are in bijective correspondance with an ordered -++ basis of the exterior algebra. In this domain we are dealing strictly -++ with the exponents of basis elements which can only be 0 or 1. --- Thus we really have L({0,1}). -++ -++ The multiplicative identity element of the exterior algebra corresponds -++ to the empty subset of X. A coerce from List Integer to an -++ ordered basis element is provided to allow the convenient input of -++ expressions. Another exported function forgets the ordered structure -++ and simply returns the list corresponding to an ordered subset. - -ExtAlgBasis(): Export == Implement where - I ==> Integer - L ==> List - NNI ==> NonNegativeInteger - - Export == OrderedSet with - coerce : L I -> % - ++ coerce(l) converts a list of 0's and 1's into a basis - ++ element, where 1 (respectively 0) designates that the - ++ variable of the corresponding index of l is (respectively, is not) - ++ present. - ++ Error: if an element of l is not 0 or 1. - degree : % -> NNI - ++ degree(x) gives the numbers of 1's in x, i.e., the number - ++ of non-zero exponents in the basis element that x represents. - exponents : % -> L I - ++ exponents(x) converts a domain element into a list of zeros - ++ and ones corresponding to the exponents in the basis element - ++ that x represents. --- subscripts : % -> L I - -- subscripts(x) looks at the exponents in x and converts - -- them to the proper subscripts - Nul : NNI -> % - ++ Nul() gives the basis element 1 for the algebra generated - ++ by n generators. - - Implement == add - Rep := L I - x,y : % - - x = y == x =$Rep y - - x < y == - null x => not null y - null y => false - first x = first y => rest x < rest y - first x > first y - - coerce(li:(L I)) == - for x in li repeat - if x ^= 1 and x ^= 0 then error "coerce: values can only be 0 and 1" - li - - degree x == (_+/x)::NNI - - exponents x == copy(x @ Rep) - --- subscripts x == --- cntr:I := 1 --- result: L I := [] --- for j in x repeat --- if j = 1 then result := cons(cntr,result) --- cntr:=cntr+1 --- reverse_! result - - Nul n == [0 for i in 1..n] - - coerce x == coerce(x @ Rep)$(L I) - -@ -\section{domain ANTISYM AntiSymm} -<>= -)abbrev domain ANTISYM AntiSymm -++ Author: Larry A. Lambe -++ Date : 01/26/91. -++ Revised : 30 Nov 94 -++ -++ based on AntiSymmetric '89 -++ -++ Needs: ExtAlgBasis, FreeModule(Ring,OrderedSet), LALG, LALG- -++ -++ Description: The domain of antisymmetric polynomials. - - -AntiSymm(R:Ring, lVar:List Symbol): Export == Implement where - LALG ==> LeftAlgebra - FMR ==> FM(R,EAB) - FM ==> FreeModule - I ==> Integer - L ==> List - EAB ==> ExtAlgBasis -- these are exponents of basis elements in order - NNI ==> NonNegativeInteger - O ==> OutputForm - base ==> k - coef ==> c - Term ==> Record(k:EAB,c:R) - - Export == Join(LALG(R), RetractableTo(R)) with - leadingCoefficient : % -> R - ++ leadingCoefficient(p) returns the leading - ++ coefficient of antisymmetric polynomial p. --- leadingSupport : % -> EAB - leadingBasisTerm : % -> % - ++ leadingBasisTerm(p) returns the leading - ++ basis term of antisymmetric polynomial p. - reductum : % -> % - ++ reductum(p), where p is an antisymmetric polynomial, - ++ returns p minus the leading - ++ term of p if p has at least two terms, and 0 otherwise. - coefficient : (%,%) -> R - ++ coefficient(p,u) returns the coefficient of - ++ the term in p containing the basis term u if such - ++ a term exists, and 0 otherwise. - ++ Error: if the second argument u is not a basis element. - generator : NNI -> % - ++ generator(n) returns the nth multiplicative generator, - ++ a basis term. - exp : L I -> % - ++ exp([i1,...in]) returns \spad{u_1\^{i_1} ... u_n\^{i_n}} - homogeneous? : % -> Boolean - ++ homogeneous?(p) tests if all of the terms of - ++ p have the same degree. - retractable? : % -> Boolean - ++ retractable?(p) tests if p is a 0-form, - ++ i.e., if degree(p) = 0. - degree : % -> NNI - ++ degree(p) returns the homogeneous degree of p. - map : (R -> R, %) -> % - ++ map(f,p) changes each coefficient of p by the - ++ application of f. - - --- 1 corresponds to the empty monomial Nul = [0,...,0] --- from EAB. In terms of the exterior algebra on X, --- it corresponds to the identity element which lives --- in homogeneous degree 0. - - Implement == FMR add - Rep := L Term - x,y : EAB - a,b : % - r : R - m : I - - dim := #lVar - - 1 == [[ Nul(dim)$EAB, 1$R ]] - - coefficient(a,u) == - not null u.rest => error "2nd argument must be a basis element" - x := u.first.base - for t in a repeat - if t.base = x then return t.coef - if t.base < x then return 0 - 0 - - retractable?(a) == - null a or (a.first.k = Nul(dim)) - - retractIfCan(a):Union(R,"failed") == - null a => 0$R - a.first.k = Nul(dim) => leadingCoefficient a - "failed" - - retract(a):R == - null a => 0$R - leadingCoefficient a - - homogeneous? a == - null a => true - siz := _+/exponents(a.first.base) - for ta in reductum a repeat - _+/exponents(ta.base) ^= siz => return false - true - - degree a == - null a => 0$NNI - homogeneous? a => (_+/exponents(a.first.base)) :: NNI - error "not a homogeneous element" - - zo : (I,I) -> L I - zo(p,q) == - p = 0 => [1,q] - q = 0 => [1,1] - [0,0] - - getsgn : (EAB,EAB) -> I - getsgn(x,y) == - sgn:I := 0 - xx:L I := exponents x - yy:L I := exponents y - for i in 1 .. (dim-1) repeat - xx := rest xx - sgn := sgn + (_+/xx)*yy.i - sgn rem 2 = 0 => 1 - -1 - - Nalpha: (EAB,EAB) -> L I - Nalpha(x,y) == - i:I := 1 - dum2:L I := [0 for i in 1..dim] - for j in 1..dim repeat - dum:=zo((exponents x).j,(exponents y).j) - (i:= i*dum.1) = 0 => leave - dum2.j := dum.2 - i = 0 => cons(i, dum2) - cons(getsgn(x,y), dum2) - - a * b == - null a => 0 - null b => 0 - ((null a.rest) and (a.first.k = Nul(dim))) => a.first.c * b - ((null b.rest) and (b.first.k = Nul(dim))) => b.first.c * a - z:% := 0 - for tb in b repeat - for ta in a repeat - stuff:=Nalpha(ta.base,tb.base) - r:=first(stuff)*ta.coef*tb.coef - if r ^= 0 then z := z + [[rest(stuff)::EAB, r]] - z - - coerce(r):% == - r = 0 => 0 - [ [Nul(dim), r] ] - - coerce(m):% == - m = 0 => 0 - [ [Nul(dim), m::R] ] - - characteristic() == characteristic()$R - - generator(j) == - -- j < 1 or j > dim => error "your subscript is out of range" - -- error will be generated by dum.j if out of range - dum:L I := [0 for i in 1..dim] - dum.j:=1 - [[dum::EAB, 1::R]] - - exp(li:(L I)) == [[li::EAB, 1]] - - leadingBasisTerm a == - [[a.first.k, 1]] - - displayList:EAB -> O - displayList(x):O == - le: L I := exponents(x)$EAB --- reduce(_*,[(lVar.i)::O for i in 1..dim | le.i = 1])$L(O) --- reduce(_*,[(lVar.i)::O for i in 1..dim | one?(le.i)])$L(O) - reduce(_*,[(lVar.i)::O for i in 1..dim | ((le.i) = 1)])$L(O) - - makeTerm:(R,EAB) -> O - makeTerm(r,x) == - -- we know that r ^= 0 - x = Nul(dim)$EAB => r::O --- one? r => displayList(x) - (r = 1) => displayList(x) --- r = 1 => displayList(x) --- r = 0 => 0$I::O --- x = Nul(dim)$EAB => r::O - r::O * displayList(x) - - coerce(a):O == - zero? a => 0$I::O - null rest(a @ Rep) => - t := first(a @ Rep) - makeTerm(t.coef,t.base) - reduce(_+,[makeTerm(t.coef,t.base) for t in (a @ Rep)])$L(O) - -@ -\section{domain DERHAM DeRhamComplex} -<>= --- derham.spad.pamphlet DeRhamComplex.input -)spool DeRhamComplex.output -)set message test on -)set message auto off -)clear all ---S 1 of 34 -coefRing := Integer ---R ---R ---R (1) Integer ---R Type: Domain ---E 1 - ---S 2 of 34 -lv : List Symbol := [x,y,z] ---R ---R ---R (2) [x,y,z] ---R Type: List Symbol ---E 2 - ---S 3 of 34 -der := DERHAM(coefRing,lv) ---R ---R ---R (3) DeRhamComplex(Integer,[x,y,z]) ---R Type: Domain ---E 3 - ---S 4 of 34 -R := Expression coefRing ---R ---R ---R (4) Expression Integer ---R Type: Domain ---E 4 - ---S 5 of 34 -f : R := x**2*y*z-5*x**3*y**2*z**5 ---R ---R ---R 3 2 5 2 ---R (5) - 5x y z + x y z ---R Type: Expression Integer ---E 5 - ---S 6 of 34 -g : R := z**2*y*cos(z)-7*sin(x**3*y**2)*z**2 ---R ---R ---R 2 3 2 2 ---R (6) - 7z sin(x y ) + y z cos(z) ---R Type: Expression Integer ---E 6 - ---S 7 of 34 -h : R :=x*y*z-2*x**3*y*z**2 ---R ---R ---R 3 2 ---R (7) - 2x y z + x y z ---R Type: Expression Integer ---E 7 - ---S 8 of 34 -dx : der := generator(1) ---R ---R ---R (8) dx ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 8 - ---S 9 of 34 -dy : der := generator(2) ---R ---R ---R (9) dy ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 9 - ---S 10 of 34 -dz : der := generator(3) ---R ---R ---R (10) dz ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 10 - ---S 11 of 34 -[dx,dy,dz] := [generator(i)$der for i in 1..3] ---R ---R ---R (11) [dx,dy,dz] ---R Type: List DeRhamComplex(Integer,[x,y,z]) ---E 11 - ---S 12 of 34 -alpha : der := f*dx + g*dy + h*dz ---R ---R ---R (12) ---R 3 2 2 3 2 2 ---R (- 2x y z + x y z)dz + (- 7z sin(x y ) + y z cos(z))dy ---R + ---R 3 2 5 2 ---R (- 5x y z + x y z)dx ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 12 - ---S 13 of 34 -beta : der := cos(tan(x*y*z)+x*y*z)*dx + x*dy ---R ---R ---R (13) x dy + cos(tan(x y z) + x y z)dx ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 13 - ---S 14 of 34 -exteriorDifferential alpha ---R ---R ---R (14) ---R 2 3 2 3 2 ---R (y z sin(z) + 14z sin(x y ) - 2y z cos(z) - 2x z + x z)dy dz ---R + ---R 3 2 4 2 2 2 ---R (25x y z - 6x y z + y z - x y)dx dz ---R + ---R 2 2 2 3 2 3 5 2 ---R (- 21x y z cos(x y ) + 10x y z - x z)dx dy ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 14 - ---S 15 of 34 -exteriorDifferential % ---R ---R ---R (15) 0 ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 15 - ---S 16 of 34 -gamma := alpha * beta ---R ---R ---R (16) ---R 4 2 2 3 2 ---R (2x y z - x y z)dy dz + (2x y z - x y z)cos(tan(x y z) + x y z)dx dz ---R + ---R 2 3 2 2 4 2 5 3 ---R ((7z sin(x y ) - y z cos(z))cos(tan(x y z) + x y z) - 5x y z + x y z)dx dy ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 16 - ---S 17 of 34 -exteriorDifferential(gamma) - (exteriorDifferential(alpha)*beta - alpha * exteriorDifferential(beta)) ---R ---R ---R (17) 0 ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 17 - ---S 18 of 34 -a : BOP := operator('a) ---R ---R ---R (18) a ---R Type: BasicOperator ---E 18 - ---S 19 of 34 -b : BOP := operator('b) ---R ---R ---R (19) b ---R Type: BasicOperator ---E 19 - ---S 20 of 34 -c : BOP := operator('c) ---R ---R ---R (20) c ---R Type: BasicOperator ---E 20 - ---S 21 of 34 -sigma := a(x,y,z) * dx + b(x,y,z) * dy + c(x,y,z) * dz ---R ---R ---R (21) c(x,y,z)dz + b(x,y,z)dy + a(x,y,z)dx ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 21 - ---S 22 of 34 -theta := a(x,y,z) * dx * dy + b(x,y,z) * dx * dz + c(x,y,z) * dy * dz ---R ---R ---R (22) c(x,y,z)dy dz + b(x,y,z)dx dz + a(x,y,z)dx dy ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 22 - ---S 23 of 34 -totalDifferential(a(x,y,z))$der ---R ---R ---R (23) a (x,y,z)dz + a (x,y,z)dy + a (x,y,z)dx ---R ,3 ,2 ,1 ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 23 - ---S 24 of 34 -exteriorDifferential sigma ---R ---R ---R (24) ---R (c (x,y,z) - b (x,y,z))dy dz + (c (x,y,z) - a (x,y,z))dx dz ---R ,2 ,3 ,1 ,3 ---R + ---R (b (x,y,z) - a (x,y,z))dx dy ---R ,1 ,2 ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 24 - ---S 25 of 34 -exteriorDifferential theta ---R ---R ---R (25) (c (x,y,z) - b (x,y,z) + a (x,y,z))dx dy dz ---R ,1 ,2 ,3 ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 25 - ---S 26 of 34 -one : der := 1 ---R ---R ---R (26) 1 ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 26 - ---S 27 of 34 -g1 : der := a([x,t,y,u,v,z,e]) * one ---R ---R ---R (27) a(x,t,y,u,v,z,e) ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 27 - ---S 28 of 34 -h1 : der := a([x,y,x,t,x,z,y,r,u,x]) * one ---R ---R ---R (28) a(x,y,x,t,x,z,y,r,u,x) ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 28 - ---S 29 of 34 -exteriorDifferential g1 ---R ---R ---R (29) a (x,t,y,u,v,z,e)dz + a (x,t,y,u,v,z,e)dy + a (x,t,y,u,v,z,e)dx ---R ,6 ,3 ,1 ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 29 - ---S 30 of 34 -exteriorDifferential h1 ---R ---R ---R (30) ---R a (x,y,x,t,x,z,y,r,u,x)dz ---R ,6 ---R + ---R (a (x,y,x,t,x,z,y,r,u,x) + a (x,y,x,t,x,z,y,r,u,x))dy ---R ,7 ,2 ---R + ---R a (x,y,x,t,x,z,y,r,u,x) + a (x,y,x,t,x,z,y,r,u,x) ---R ,10 ,5 ---R + ---R a (x,y,x,t,x,z,y,r,u,x) + a (x,y,x,t,x,z,y,r,u,x) ---R ,3 ,1 ---R * ---R dx ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 30 - ---S 31 of 34 -coefficient(gamma, dx*dy) ---R ---R ---R 2 3 2 2 4 2 5 3 ---R (31) (7z sin(x y ) - y z cos(z))cos(tan(x y z) + x y z) - 5x y z + x y z ---R Type: Expression Integer ---E 31 - ---S 32 of 34 -coefficient(gamma, one) ---R ---R ---R (32) 0 ---R Type: Expression Integer ---E 32 - ---S 33 of 34 -coefficient(g1,one) ---R ---R ---R (33) a(x,t,y,u,v,z,e) ---R Type: Expression Integer ---E 33 - ---S 34 of 34 -gamma := alpha * beta ---R ---R ---R (34) ---R 4 2 2 3 2 ---R (2x y z - x y z)dy dz + (2x y z - x y z)cos(tan(x y z) + x y z)dx dz ---R + ---R 2 3 2 2 4 2 5 3 ---R ((7z sin(x y ) - y z cos(z))cos(tan(x y z) + x y z) - 5x y z + x y z)dx dy ---R Type: DeRhamComplex(Integer,[x,y,z]) ---E 34 -)spool -)lisp (bye) -@ -<>= -==================================================================== -DeRhamComplex examples -==================================================================== - -The domain constructor DeRhamComplex creates the class of differential -forms of arbitrary degree over a coefficient ring. The De Rham -complex constructor takes two arguments: a ring, coefRing, and a list -of coordinate variables. - -This is the ring of coefficients. - - coefRing := Integer - Integer - Type: Domain - -These are the coordinate variables. - - lv : List Symbol := [x,y,z] - [x,y,z] - Type: List Symbol - - -This is the De Rham complex of Euclidean three-space using coordinates -x, y and z. - - der := DERHAM(coefRing,lv) - DeRhamComplex(Integer,[x,y,z]) - Type: Domain - -This complex allows us to describe differential forms having -expressions of integers as coefficients. These coefficients can -involve any number of variables, for example, f(x,t,r,y,u,z). As -we've chosen to work with ordinary Euclidean three-space, expressions -involving these forms are treated as functions of x, y and z with the -additional arguments t, r and u regarded as symbolic constants. - -Here are some examples of coefficients. - - R := Expression coefRing - Expression Integer - Type: Domain - - f : R := x**2*y*z-5*x**3*y**2*z**5 - 3 2 5 2 - - 5x y z + x y z - Type: Expression Integer - - g : R := z**2*y*cos(z)-7*sin(x**3*y**2)*z**2 - 2 3 2 2 - - 7z sin(x y ) + y z cos(z) - Type: Expression Integer - - h : R :=x*y*z-2*x**3*y*z**2 - 3 2 - - 2x y z + x y z - Type: Expression Integer - -We now define the multiplicative basis elements for the exterior -algebra over R. - - dx : der := generator(1) - dx - Type: DeRhamComplex(Integer,[x,y,z]) - - dy : der := generator(2) - dy - Type: DeRhamComplex(Integer,[x,y,z]) - - dz : der := generator(3) - dz - Type: DeRhamComplex(Integer,[x,y,z]) - -This is an alternative way to give the above assignments. - - [dx,dy,dz] := [generator(i)$der for i in 1..3] - [dx,dy,dz] - Type: List DeRhamComplex(Integer,[x,y,z]) - -Now we define some one-forms. - - alpha : der := f*dx + g*dy + h*dz - 3 2 2 3 2 2 - (- 2x y z + x y z)dz + (- 7z sin(x y ) + y z cos(z))dy - + - 3 2 5 2 - (- 5x y z + x y z)dx - Type: DeRhamComplex(Integer,[x,y,z]) - - beta : der := cos(tan(x*y*z)+x*y*z)*dx + x*dy - x dy + cos(tan(x y z) + x y z)dx - Type: DeRhamComplex(Integer,[x,y,z]) - -A well-known theorem states that the composition of exteriorDifferential -with itself is the zero map for continuous forms. Let's verify this -theorem for alpha. - - exteriorDifferential alpha - 2 3 2 3 2 - (y z sin(z) + 14z sin(x y ) - 2y z cos(z) - 2x z + x z)dy dz - + - 3 2 4 2 2 2 - (25x y z - 6x y z + y z - x y)dx dz - + - 2 2 2 3 2 3 5 2 - (- 21x y z cos(x y ) + 10x y z - x z)dx dy - Type: DeRhamComplex(Integer,[x,y,z]) - -We see a lengthy output of the last expression, but nevertheless, the -composition is zero. - - exteriorDifferential % - 0 - Type: DeRhamComplex(Integer,[x,y,z]) - -Now we check that exteriorDifferential is a "graded derivation" D, -that is, D satisfies: - - D(a*b) = D(a)*b + (-1)**degree(a)*a*D(b) - - gamma := alpha * beta - 4 2 2 3 2 - (2x y z - x y z)dy dz + (2x y z - x y z)cos(tan(x y z) + x y z)dx dz - + - 2 3 2 2 4 2 5 3 - ((7z sin(x y ) - y z cos(z))cos(tan(x y z) + x y z) - 5x y z + x y z)dx dy - Type: DeRhamComplex(Integer,[x,y,z]) - -We try this for the one-forms alpha and beta. - - exteriorDifferential(gamma) - (exteriorDifferential(alpha)*beta - alpha * exteriorDifferential(beta)) - 0 - Type: DeRhamComplex(Integer,[x,y,z]) - -Now we define some "basic operators" - - a : BOP := operator('a) - a - Type: BasicOperator - - b : BOP := operator('b) - b - Type: BasicOperator - - c : BOP := operator('c) - c - Type: BasicOperator - -We also define some indeterminate one- and two-forms using these -operators. - - sigma := a(x,y,z) * dx + b(x,y,z) * dy + c(x,y,z) * dz - c(x,y,z)dz + b(x,y,z)dy + a(x,y,z)dx - Type: DeRhamComplex(Integer,[x,y,z]) - - theta := a(x,y,z) * dx * dy + b(x,y,z) * dx * dz + c(x,y,z) * dy * dz - c(x,y,z)dy dz + b(x,y,z)dx dz + a(x,y,z)dx dy - Type: DeRhamComplex(Integer,[x,y,z]) - -This allows us to get formal definitions for the "gradient" ... - - totalDifferential(a(x,y,z))$der - (23) a (x,y,z)dz + a (x,y,z)dy + a (x,y,z)dx - ,3 ,2 ,1 - Type: DeRhamComplex(Integer,[x,y,z]) -the "curl" ... - - exteriorDifferential sigma - (c (x,y,z) - b (x,y,z))dy dz + (c (x,y,z) - a (x,y,z))dx dz - ,2 ,3 ,1 ,3 - + - (b (x,y,z) - a (x,y,z))dx dy - ,1 ,2 - Type: DeRhamComplex(Integer,[x,y,z]) - -and the "divergence." - - exteriorDifferential theta - (c (x,y,z) - b (x,y,z) + a (x,y,z))dx dy dz - ,1 ,2 ,3 - Type: DeRhamComplex(Integer,[x,y,z]) - -Note that the De Rham complex is an algebra with unity. This element -1 is the basis for elements for zero-forms, that is, functions in our -space. - - one : der := 1 - 1 - Type: DeRhamComplex(Integer,[x,y,z]) - -To convert a function to a function lying in the De Rham complex, -multiply the function by "one." - - g1 : der := a([x,t,y,u,v,z,e]) * one - a(x,t,y,u,v,z,e) - Type: DeRhamComplex(Integer,[x,y,z]) - -A current limitation of Axiom forces you to write functions with more -than four arguments using square brackets in this way. - - h1 : der := a([x,y,x,t,x,z,y,r,u,x]) * one - a(x,y,x,t,x,z,y,r,u,x) - Type: DeRhamComplex(Integer,[x,y,z]) - -Now note how the system keeps track of where your coordinate functions -are located in expressions. - - exteriorDifferential g1 - a (x,t,y,u,v,z,e)dz + a (x,t,y,u,v,z,e)dy + a (x,t,y,u,v,z,e)dx - ,6 ,3 ,1 - Type: DeRhamComplex(Integer,[x,y,z]) - - exteriorDifferential h1 - a (x,y,x,t,x,z,y,r,u,x)dz - ,6 - + - (a (x,y,x,t,x,z,y,r,u,x) + a (x,y,x,t,x,z,y,r,u,x))dy - ,7 ,2 - + - a (x,y,x,t,x,z,y,r,u,x) + a (x,y,x,t,x,z,y,r,u,x) - ,10 ,5 - + - a (x,y,x,t,x,z,y,r,u,x) + a (x,y,x,t,x,z,y,r,u,x) - ,3 ,1 - * - dx - Type: DeRhamComplex(Integer,[x,y,z]) - -In this example of Euclidean three-space, the basis for the De Rham complex -consists of the eight forms: 1, dx, dy, dz, dx*dy, dx*dz, dy*dz, and dx*dy*dz. - - coefficient(gamma, dx*dy) - 2 3 2 2 4 2 5 3 - (7z sin(x y ) - y z cos(z))cos(tan(x y z) + x y z) - 5x y z + x y z - Type: Expression Integer - - coefficient(gamma, one) - 0 - Type: Expression Integer - - coefficient(g1,one) - a(x,t,y,u,v,z,e) - Type: Expression Integer - -See Also: -o )help Operator -o )show DeRhamComplex -o $AXIOM/doc/src/algebra/derham.spad.dvi - -@ -<>= -)abbrev domain DERHAM DeRhamComplex -++ Author: Larry A. Lambe -++ Date : 01/26/91. -++ Revised : 12/01/91. -++ -++ based on code from '89 (AntiSymmetric) -++ -++ Needs: LeftAlgebra, ExtAlgBasis, FreeMod(Ring,OrderedSet) -++ -++ Description: The deRham complex of Euclidean space, that is, the -++ class of differential forms of arbitary degree over a coefficient ring. -++ See Flanders, Harley, Differential Forms, With Applications to the Physical -++ Sciences, New York, Academic Press, 1963. - -DeRhamComplex(CoefRing,listIndVar:List Symbol): Export == Implement where - CoefRing : Join(Ring, OrderedSet) - ASY ==> AntiSymm(R,listIndVar) - DIFRING ==> DifferentialRing - LALG ==> LeftAlgebra - FMR ==> FreeMod(R,EAB) - I ==> Integer - L ==> List - EAB ==> ExtAlgBasis -- these are exponents of basis elements in order - NNI ==> NonNegativeInteger - O ==> OutputForm - R ==> Expression(CoefRing) - - Export == Join(LALG(R), RetractableTo(R)) with - leadingCoefficient : % -> R - ++ leadingCoefficient(df) returns the leading - ++ coefficient of differential form df. - leadingBasisTerm : % -> % - ++ leadingBasisTerm(df) returns the leading - ++ basis term of differential form df. - reductum : % -> % - ++ reductum(df), where df is a differential form, - ++ returns df minus the leading - ++ term of df if df has two or more terms, and - ++ 0 otherwise. - coefficient : (%,%) -> R - ++ coefficient(df,u), where df is a differential form, - ++ returns the coefficient of df containing the basis term u - ++ if such a term exists, and 0 otherwise. - generator : NNI -> % - ++ generator(n) returns the nth basis term for a differential form. - homogeneous? : % -> Boolean - ++ homogeneous?(df) tests if all of the terms of - ++ differential form df have the same degree. - retractable? : % -> Boolean - ++ retractable?(df) tests if differential form df is a 0-form, - ++ i.e., if degree(df) = 0. - degree : % -> I - ++ degree(df) returns the homogeneous degree of differential form df. - map : (R -> R, %) -> % - ++ map(f,df) replaces each coefficient x of differential - ++ form df by \spad{f(x)}. - totalDifferential : R -> % - ++ totalDifferential(x) returns the total differential - ++ (gradient) form for element x. - exteriorDifferential : % -> % - ++ exteriorDifferential(df) returns the exterior - ++ derivative (gradient, curl, divergence, ...) of - ++ the differential form df. - - Implement == ASY add - Rep := ASY - - dim := #listIndVar - - totalDifferential(f) == - divs:=[differentiate(f,listIndVar.i)*generator(i)$ASY for i in 1..dim] - reduce("+",divs) - - termDiff : (R, %) -> % - termDiff(r,e) == - totalDifferential(r) * e - - exteriorDifferential(x) == - x = 0 => 0 - termDiff(leadingCoefficient(x)$Rep,leadingBasisTerm x) + exteriorDifferential(reductum x) - - lv := [concat("d",string(liv))$String::Symbol for liv in listIndVar] - - displayList:EAB -> O - displayList(x):O == - le: L I := exponents(x)$EAB --- reduce(_*,[(lv.i)::O for i in 1..dim | le.i = 1])$L(O) --- reduce(_*,[(lv.i)::O for i in 1..dim | one?(le.i)])$L(O) - reduce(_*,[(lv.i)::O for i in 1..dim | ((le.i) = 1)])$L(O) - - makeTerm:(R,EAB) -> O - makeTerm(r,x) == - -- we know that r ^= 0 - x = Nul(dim)$EAB => r::O --- one? r => displayList(x) - (r = 1) => displayList(x) --- r = 1 => displayList(x) - r::O * displayList(x) - - terms : % -> List Record(k: EAB, c: R) - terms(a) == - -- it is the case that there are at least two terms in a - a pretend List Record(k: EAB, c: R) - - coerce(a):O == - a = 0$Rep => 0$I::O - ta := terms a --- reductum(a) = 0$Rep => makeTerm(leadingCoefficient a, a.first.k) - null ta.rest => makeTerm(ta.first.c, ta.first.k) - reduce(_+,[makeTerm(t.c,t.k) for t in ta])$L(O) - -@ -\section{License} -<>= ---Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. ---All rights reserved. --- ---Redistribution and use in source and binary forms, with or without ---modification, are permitted provided that the following conditions are ---met: --- --- - Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- --- - Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in --- the documentation and/or other materials provided with the --- distribution. --- --- - Neither the name of The Numerical ALgorithms Group Ltd. nor the --- names of its contributors may be used to endorse or promote products --- derived from this software without specific prior written permission. --- ---THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS ---IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ---PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER ---OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ---EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ---PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ---PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ---NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ---SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<> - -<> -<> -<> -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/algebra/divisor.spad.pamphlet b/src/algebra/divisor.spad.pamphlet index ffe3681..1fbd034 100644 --- a/src/algebra/divisor.spad.pamphlet +++ b/src/algebra/divisor.spad.pamphlet @@ -9,175 +9,6 @@ \eject \tableofcontents \eject -\section{domain FRIDEAL FractionalIdeal} -<>= -)abbrev domain FRIDEAL FractionalIdeal -++ Author: Manuel Bronstein -++ Date Created: 27 Jan 1989 -++ Date Last Updated: 30 July 1993 -++ Keywords: ideal, algebra, module. -++ Examples: )r FRIDEAL INPUT -++ Description: Fractional ideals in a framed algebra. -FractionalIdeal(R, F, UP, A): Exports == Implementation where - R : EuclideanDomain - F : QuotientFieldCategory R - UP: UnivariatePolynomialCategory F - A : Join(FramedAlgebra(F, UP), RetractableTo F) - - VF ==> Vector F - VA ==> Vector A - UPA ==> SparseUnivariatePolynomial A - QF ==> Fraction UP - - Exports ==> Group with - ideal : VA -> % - ++ ideal([f1,...,fn]) returns the ideal \spad{(f1,...,fn)}. - basis : % -> VA - ++ basis((f1,...,fn)) returns the vector \spad{[f1,...,fn]}. - norm : % -> F - ++ norm(I) returns the norm of the ideal I. - numer : % -> VA - ++ numer(1/d * (f1,...,fn)) = the vector \spad{[f1,...,fn]}. - denom : % -> R - ++ denom(1/d * (f1,...,fn)) returns d. - minimize: % -> % - ++ minimize(I) returns a reduced set of generators for \spad{I}. - randomLC: (NonNegativeInteger, VA) -> A - ++ randomLC(n,x) should be local but conditional. - - Implementation ==> add - import CommonDenominator(R, F, VF) - import MatrixCommonDenominator(UP, QF) - import InnerCommonDenominator(R, F, List R, List F) - import MatrixCategoryFunctions2(F, Vector F, Vector F, Matrix F, - UP, Vector UP, Vector UP, Matrix UP) - import MatrixCategoryFunctions2(UP, Vector UP, Vector UP, - Matrix UP, F, Vector F, Vector F, Matrix F) - import MatrixCategoryFunctions2(UP, Vector UP, Vector UP, - Matrix UP, QF, Vector QF, Vector QF, Matrix QF) - - Rep := Record(num:VA, den:R) - - poly : % -> UPA - invrep : Matrix F -> A - upmat : (A, NonNegativeInteger) -> Matrix UP - summat : % -> Matrix UP - num2O : VA -> OutputForm - agcd : List A -> R - vgcd : VF -> R - mkIdeal : (VA, R) -> % - intIdeal: (List A, R) -> % - ret? : VA -> Boolean - tryRange: (NonNegativeInteger, VA, R, %) -> Union(%, "failed") - - 1 == [[1]$VA, 1] - numer i == i.num - denom i == i.den - mkIdeal(v, d) == [v, d] - invrep m == represents(transpose(m) * coordinates(1$A)) - upmat(x, i) == map(monomial(#1, i)$UP, regularRepresentation x) - ret? v == any?(retractIfCan(#1)@Union(F,"failed") case F, v) - x = y == denom(x) = denom(y) and numer(x) = numer(y) - agcd l == reduce("gcd", [vgcd coordinates a for a in l]$List(R), 0) - - norm i == - ("gcd"/[retract(u)@R for u in coefficients determinant summat i]) - / denom(i) ** rank()$A - - tryRange(range, nm, nrm, i) == - for j in 0..10 repeat - a := randomLC(10 * range, nm) - unit? gcd((retract(norm a)@R exquo nrm)::R, nrm) => - return intIdeal([nrm::F::A, a], denom i) - "failed" - - summat i == - m := minIndex(v := numer i) - reduce("+", - [upmat(qelt(v, j + m), j) for j in 0..#v-1]$List(Matrix UP)) - - inv i == - m := inverse(map(#1::QF, summat i))::Matrix(QF) - cd := splitDenominator(denom(i)::F::UP::QF * m) - cd2 := splitDenominator coefficients(cd.den) - invd:= cd2.den / reduce("gcd", cd2.num) - d := reduce("max", [degree p for p in parts(cd.num)]) - ideal - [invd * invrep map(coefficient(#1, j), cd.num) for j in 0..d]$VA - - ideal v == - d := reduce("lcm", [commonDenominator coordinates qelt(v, i) - for i in minIndex v .. maxIndex v]$List(R)) - intIdeal([d::F * qelt(v, i) for i in minIndex v .. maxIndex v], d) - - intIdeal(l, d) == - lr := empty()$List(R) - nr := empty()$List(A) - for x in removeDuplicates l repeat - if (u := retractIfCan(x)@Union(F, "failed")) case F - then lr := concat(retract(u::F)@R, lr) - else nr := concat(x, nr) - r := reduce("gcd", lr, 0) - g := agcd nr - a := (r quo (b := gcd(gcd(d, r), g)))::F::A - d := d quo b - r ^= 0 and ((g exquo r) case R) => mkIdeal([a], d) - invb := inv(b::F) - va:VA := [invb * m for m in nr] - zero? a => mkIdeal(va, d) - mkIdeal(concat(a, va), d) - - vgcd v == - reduce("gcd", - [retract(v.i)@R for i in minIndex v .. maxIndex v]$List(R)) - - poly i == - m := minIndex(v := numer i) - +/[monomial(qelt(v, i + m), i) for i in 0..#v-1] - - i1 * i2 == - intIdeal(coefficients(poly i1 * poly i2), denom i1 * denom i2) - - i:$ ** m:Integer == - m < 0 => inv(i) ** (-m) - n := m::NonNegativeInteger - v := numer i - intIdeal([qelt(v, j) ** n for j in minIndex v .. maxIndex v], - denom(i) ** n) - - num2O v == - paren [qelt(v, i)::OutputForm - for i in minIndex v .. maxIndex v]$List(OutputForm) - - basis i == - v := numer i - d := inv(denom(i)::F) - [d * qelt(v, j) for j in minIndex v .. maxIndex v] - - coerce(i:$):OutputForm == - nm := num2O numer i --- one? denom i => nm - (denom i = 1) => nm - (1::Integer::OutputForm) / (denom(i)::OutputForm) * nm - - if F has Finite then - randomLC(m, v) == - +/[random()$F * qelt(v, j) for j in minIndex v .. maxIndex v] - else - randomLC(m, v) == - +/[(random()$Integer rem m::Integer) * qelt(v, j) - for j in minIndex v .. maxIndex v] - - minimize i == - n := (#(nm := numer i)) --- one?(n) or (n < 3 and ret? nm) => i - (n = 1) or (n < 3 and ret? nm) => i - nrm := retract(norm mkIdeal(nm, 1))@R - for range in 1..5 repeat - (u := tryRange(range, nm, nrm, i)) case $ => return(u::$) - i - -@ \section{package FRIDEAL2 FractionalIdealFunctions2} <>= )abbrev package FRIDEAL2 FractionalIdealFunctions2 @@ -457,411 +288,6 @@ ModularHermitianRowReduction(R): Exports == Implementation where x @ -\section{domain FRMOD FramedModule} -<>= -)abbrev domain FRMOD FramedModule -++ Author: Manuel Bronstein -++ Date Created: 27 Jan 1989 -++ Date Last Updated: 24 Jul 1990 -++ Keywords: ideal, algebra, module. -++ Examples: )r FRIDEAL INPUT -++ Description: Module representation of fractional ideals. -FramedModule(R, F, UP, A, ibasis): Exports == Implementation where - R : EuclideanDomain - F : QuotientFieldCategory R - UP : UnivariatePolynomialCategory F - A : FramedAlgebra(F, UP) - ibasis: Vector A - - VR ==> Vector R - VF ==> Vector F - VA ==> Vector A - M ==> Matrix F - - Exports ==> Monoid with - basis : % -> VA - ++ basis((f1,...,fn)) = the vector \spad{[f1,...,fn]}. - norm : % -> F - ++ norm(f) returns the norm of the module f. - module: VA -> % - ++ module([f1,...,fn]) = the module generated by \spad{(f1,...,fn)} - ++ over R. - if A has RetractableTo F then - module: FractionalIdeal(R, F, UP, A) -> % - ++ module(I) returns I viewed has a module over R. - - Implementation ==> add - import MatrixCommonDenominator(R, F) - import ModularHermitianRowReduction(R) - - Rep := VA - - iflag?:Reference(Boolean) := ref true - wflag?:Reference(Boolean) := ref true - imat := new(#ibasis, #ibasis, 0)$M - wmat := new(#ibasis, #ibasis, 0)$M - - rowdiv : (VR, R) -> VF - vectProd : (VA, VA) -> VA - wmatrix : VA -> M - W2A : VF -> A - intmat : () -> M - invintmat : () -> M - getintmat : () -> Boolean - getinvintmat: () -> Boolean - - 1 == ibasis - module(v:VA) == v - basis m == m pretend VA - rowdiv(r, f) == [r.i / f for i in minIndex r..maxIndex r] - coerce(m:%):OutputForm == coerce(basis m)$VA - W2A v == represents(v * intmat()) - wmatrix v == coordinates(v) * invintmat() - - getinvintmat() == - m := inverse(intmat())::M - for i in minRowIndex m .. maxRowIndex m repeat - for j in minColIndex m .. maxColIndex m repeat - imat(i, j) := qelt(m, i, j) - false - - getintmat() == - m := coordinates ibasis - for i in minRowIndex m .. maxRowIndex m repeat - for j in minColIndex m .. maxColIndex m repeat - wmat(i, j) := qelt(m, i, j) - false - - invintmat() == - if iflag?() then iflag?() := getinvintmat() - imat - - intmat() == - if wflag?() then wflag?() := getintmat() - wmat - - vectProd(v1, v2) == - k := minIndex(v := new(#v1 * #v2, 0)$VA) - for i in minIndex v1 .. maxIndex v1 repeat - for j in minIndex v2 .. maxIndex v2 repeat - qsetelt_!(v, k, qelt(v1, i) * qelt(v2, j)) - k := k + 1 - v pretend VA - - norm m == - #(basis m) ^= #ibasis => error "Module not of rank n" - determinant(coordinates(basis m) * invintmat()) - - m1 * m2 == - m := rowEch((cd := splitDenominator wmatrix( - vectProd(basis m1, basis m2))).num) - module [u for i in minRowIndex m .. maxRowIndex m | - (u := W2A rowdiv(row(m, i), cd.den)) ^= 0]$VA - - if A has RetractableTo F then - module(i:FractionalIdeal(R, F, UP, A)) == - module(basis i) * module(ibasis) - -@ -\section{domain HELLFDIV HyperellipticFiniteDivisor} -<>= -)abbrev domain HELLFDIV HyperellipticFiniteDivisor -++ Finite rational divisors on an hyperelliptic curve -++ Author: Manuel Bronstein -++ Date Created: 19 May 1993 -++ Date Last Updated: 20 July 1998 -++ Description: -++ This domains implements finite rational divisors on an hyperelliptic curve, -++ that is finite formal sums SUM(n * P) where the n's are integers and the -++ P's are finite rational points on the curve. -++ The equation of the curve must be y^2 = f(x) and f must have odd degree. -++ Keywords: divisor, algebraic, curve. -++ Examples: )r FDIV INPUT -HyperellipticFiniteDivisor(F, UP, UPUP, R): Exports == Implementation where - F : Field - UP : UnivariatePolynomialCategory F - UPUP: UnivariatePolynomialCategory Fraction UP - R : FunctionFieldCategory(F, UP, UPUP) - - O ==> OutputForm - Z ==> Integer - RF ==> Fraction UP - ID ==> FractionalIdeal(UP, RF, UPUP, R) - ERR ==> error "divisor: incomplete implementation for hyperelliptic curves" - - Exports ==> FiniteDivisorCategory(F, UP, UPUP, R) - - Implementation ==> add - if (uhyper:Union(UP, "failed") := hyperelliptic()$R) case "failed" then - error "HyperellipticFiniteDivisor: curve must be hyperelliptic" - --- we use the semi-reduced representation from D.Cantor, "Computing in the --- Jacobian of a HyperellipticCurve", Mathematics of Computation, vol 48, --- no.177, January 1987, 95-101. --- The representation [a,b,f] for D means D = [a,b] + div(f) --- and [a,b] is a semi-reduced representative on the Jacobian - Rep := Record(center:UP, polyPart:UP, principalPart:R, reduced?:Boolean) - - hyper:UP := uhyper::UP - gen:Z := ((degree(hyper)::Z - 1) exquo 2)::Z -- genus of the curve - dvd:O := "div"::Symbol::O - zer:O := 0::Z::O - - makeDivisor : (UP, UP, R) -> % - intReduc : (R, UP) -> R - princ? : % -> Boolean - polyIfCan : R -> Union(UP, "failed") - redpolyIfCan : (R, UP) -> Union(UP, "failed") - intReduce : (R, UP) -> R - mkIdeal : (UP, UP) -> ID - reducedTimes : (Z, UP, UP) -> % - reducedDouble: (UP, UP) -> % - - 0 == divisor(1$R) - divisor(g:R) == [1, 0, g, true] - makeDivisor(a, b, g) == [a, b, g, false] --- princ? d == one?(d.center) and zero?(d.polyPart) - princ? d == (d.center = 1) and zero?(d.polyPart) - ideal d == ideal([d.principalPart]) * mkIdeal(d.center, d.polyPart) - decompose d == [ideal makeDivisor(d.center, d.polyPart, 1), d.principalPart] - mkIdeal(a, b) == ideal [a::RF::R, reduce(monomial(1, 1)$UPUP - b::RF::UPUP)] - --- keep the sum reduced if d1 and d2 are both reduced at the start - d1 + d2 == - a1 := d1.center; a2 := d2.center - b1 := d1.polyPart; b2 := d2.polyPart - rec := principalIdeal [a1, a2, b1 + b2] - d := rec.generator - h := rec.coef -- d = h1 a1 + h2 a2 + h3(b1 + b2) - a := ((a1 * a2) exquo d**2)::UP - b:UP:= first(h) * a1 * b2 - b := b + second(h) * a2 * b1 - b := b + third(h) * (b1*b2 + hyper) - b := (b exquo d)::UP rem a - dd := makeDivisor(a, b, d::RF * d1.principalPart * d2.principalPart) - d1.reduced? and d2.reduced? => reduce dd - dd - --- if is cheaper to keep on reducing as we exponentiate if d is already reduced - n:Z * d:% == - zero? n => 0 - n < 0 => (-n) * (-d) - divisor(d.principalPart ** n) + divisor(mkIdeal(d.center,d.polyPart) ** n) - - divisor(i:ID) == --- one?(n := #(v := basis minimize i)) => divisor v minIndex v - (n := #(v := basis minimize i)) = 1 => divisor v minIndex v - n ^= 2 => ERR - a := v minIndex v - h := v maxIndex v - (u := polyIfCan a) case UP => - (w := redpolyIfCan(h, u::UP)) case UP => makeDivisor(u::UP, w::UP, 1) - ERR - (u := polyIfCan h) case UP => - (w := redpolyIfCan(a, u::UP)) case UP => makeDivisor(u::UP, w::UP, 1) - ERR - ERR - - polyIfCan a == - (u := retractIfCan(a)@Union(RF, "failed")) case "failed" => "failed" - (v := retractIfCan(u::RF)@Union(UP, "failed")) case "failed" => "failed" - v::UP - - redpolyIfCan(h, a) == - degree(p := lift h) ^= 1 => "failed" - q := - coefficient(p, 0) / coefficient(p, 1) - rec := extendedEuclidean(denom q, a) - not ground?(rec.generator) => "failed" - ((numer(q) * rec.coef1) exquo rec.generator)::UP rem a - - coerce(d:%):O == - r := bracket [d.center::O, d.polyPart::O] - g := prefix(dvd, [d.principalPart::O]) --- z := one?(d.principalPart) - z := (d.principalPart = 1) - princ? d => (z => zer; g) - z => r - r + g - - reduce d == - d.reduced? => d - degree(a := d.center) <= gen => (d.reduced? := true; d) - b := d.polyPart - a0 := ((hyper - b**2) exquo a)::UP - b0 := (-b) rem a0 - g := d.principalPart * reduce(b::RF::UPUP-monomial(1,1)$UPUP) / a0::RF::R - reduce makeDivisor(a0, b0, g) - - generator d == - d := reduce d - princ? d => d.principalPart - "failed" - - - d == - a := d.center - makeDivisor(a, - d.polyPart, inv(a::RF * d.principalPart)) - - d1 = d2 == - d1 := reduce d1 - d2 := reduce d2 - d1.center = d2.center and d1.polyPart = d2.polyPart - and d1.principalPart = d2.principalPart - - divisor(a, b) == - x := monomial(1, 1)$UP - not ground? gcd(d := x - a::UP, retract(discriminant())@UP) => - error "divisor: point is singular" - makeDivisor(d, b::UP, 1) - - intReduce(h, b) == - v := integralCoordinates(h).num - integralRepresents( - [qelt(v, i) rem b for i in minIndex v .. maxIndex v], 1) - --- with hyperelliptic curves, it is cheaper to keep divisors in reduced form - divisor(h, a, dp, g, r) == - h := h - (r * dp)::RF::R - a := gcd(a, retract(norm h)@UP) - h := intReduce(h, a) - if not ground? gcd(g, a) then h := intReduce(h ** rank(), a) - hh := lift h - b := - coefficient(hh, 0) / coefficient(hh, 1) - rec := extendedEuclidean(denom b, a) - not ground?(rec.generator) => ERR - bb := ((numer(b) * rec.coef1) exquo rec.generator)::UP rem a - reduce makeDivisor(a, bb, 1) - -@ -\section{domain FDIV FiniteDivisor} -<>= -)abbrev domain FDIV FiniteDivisor -++ Finite rational divisors on a curve -++ Author: Manuel Bronstein -++ Date Created: 1987 -++ Date Last Updated: 29 July 1993 -++ Description: -++ This domains implements finite rational divisors on a curve, that -++ is finite formal sums SUM(n * P) where the n's are integers and the -++ P's are finite rational points on the curve. -++ Keywords: divisor, algebraic, curve. -++ Examples: )r FDIV INPUT -FiniteDivisor(F, UP, UPUP, R): Exports == Implementation where - F : Field - UP : UnivariatePolynomialCategory F - UPUP: UnivariatePolynomialCategory Fraction UP - R : FunctionFieldCategory(F, UP, UPUP) - - N ==> NonNegativeInteger - RF ==> Fraction UP - ID ==> FractionalIdeal(UP, RF, UPUP, R) - - Exports ==> FiniteDivisorCategory(F, UP, UPUP, R) with - finiteBasis: % -> Vector R - ++ finiteBasis(d) returns a basis for d as a module over {\em K[x]}. - lSpaceBasis: % -> Vector R - ++ lSpaceBasis(d) returns a basis for \spad{L(d) = {f | (f) >= -d}} - ++ as a module over \spad{K[x]}. - - Implementation ==> add - if hyperelliptic()$R case UP then - Rep := HyperellipticFiniteDivisor(F, UP, UPUP, R) - - 0 == 0$Rep - coerce(d:$):OutputForm == coerce(d)$Rep - d1 = d2 == d1 =$Rep d2 - n * d == n *$Rep d - d1 + d2 == d1 +$Rep d2 - - d == -$Rep d - ideal d == ideal(d)$Rep - reduce d == reduce(d)$Rep - generator d == generator(d)$Rep - decompose d == decompose(d)$Rep - divisor(i:ID) == divisor(i)$Rep - divisor(f:R) == divisor(f)$Rep - divisor(a, b) == divisor(a, b)$Rep - divisor(a, b, n) == divisor(a, b, n)$Rep - divisor(h, d, dp, g, r) == divisor(h, d, dp, g, r)$Rep - - else - Rep := Record(id:ID, fbasis:Vector(R)) - - import CommonDenominator(UP, RF, Vector RF) - import UnivariatePolynomialCommonDenominator(UP, RF, UPUP) - - makeDivisor : (UP, UPUP, UP) -> % - intReduce : (R, UP) -> R - - ww := integralBasis()$R - - 0 == [1, empty()] - divisor(i:ID) == [i, empty()] - divisor(f:R) == divisor ideal [f] - coerce(d:%):OutputForm == ideal(d)::OutputForm - ideal d == d.id - decompose d == [ideal d, 1] - d1 = d2 == basis(ideal d1) = basis(ideal d2) - n * d == divisor(ideal(d) ** n) - d1 + d2 == divisor(ideal d1 * ideal d2) - - d == divisor inv ideal d - divisor(h, d, dp, g, r) == makeDivisor(d, lift h - (r * dp)::RF::UPUP, g) - - intReduce(h, b) == - v := integralCoordinates(h).num - integralRepresents( - [qelt(v, i) rem b for i in minIndex v .. maxIndex v], 1) - - divisor(a, b) == - x := monomial(1, 1)$UP - not ground? gcd(d := x - a::UP, retract(discriminant())@UP) => - error "divisor: point is singular" - makeDivisor(d, monomial(1, 1)$UPUP - b::UP::RF::UPUP, 1) - - divisor(a, b, n) == - not(ground? gcd(d := monomial(1, 1)$UP - a::UP, - retract(discriminant())@UP)) and - ((n exquo rank()) case "failed") => - error "divisor: point is singular" - m:N := - n < 0 => (-n)::N - n::N - g := makeDivisor(d**m,(monomial(1,1)$UPUP - b::UP::RF::UPUP)**m,1) - n < 0 => -g - g - - reduce d == - (i := minimize(j := ideal d)) = j => d - #(n := numer i) ^= 2 => divisor i - cd := splitDenominator lift n(1 + minIndex n) - b := gcd(cd.den * retract(retract(n minIndex n)@RF)@UP, - retract(norm reduce(cd.num))@UP) - e := cd.den * denom i - divisor ideal([(b / e)::R, - reduce map((retract(#1)@UP rem b) / e, cd.num)]$Vector(R)) - - finiteBasis d == - if empty?(d.fbasis) then - d.fbasis := normalizeAtInfinity - basis module(ideal d)$FramedModule(UP, RF, UPUP, R, ww) - d.fbasis - - generator d == - bsis := finiteBasis d - for i in minIndex bsis .. maxIndex bsis repeat - integralAtInfinity? qelt(bsis, i) => - return primitivePart qelt(bsis,i) - "failed" - - lSpaceBasis d == - map_!(primitivePart, reduceBasisAtInfinity finiteBasis(-d)) - --- b = center, hh = integral function, g = gcd(b, discriminant) - makeDivisor(b, hh, g) == - b := gcd(b, retract(norm(h := reduce hh))@UP) - h := intReduce(h, b) - if not ground? gcd(g, b) then h := intReduce(h ** rank(), b) - divisor ideal [b::RF::R, h]$Vector(R) - -@ \section{package FDIV2 FiniteDivisorFunctions2} <>= )abbrev package FDIV2 FiniteDivisorFunctions2 @@ -937,12 +363,8 @@ FiniteDivisorFunctions2(R1, UP1, UPUP1, F1, R2, UP2, UPUP2, F2): -- -- curve DIVISOR reduc pfo intalg int -<> <> <> -<> -<> -<> <> @ \eject diff --git a/src/algebra/dpolcat.spad.pamphlet b/src/algebra/dpolcat.spad.pamphlet deleted file mode 100644 index 226a5e2..0000000 --- a/src/algebra/dpolcat.spad.pamphlet +++ /dev/null @@ -1,898 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/algebra dpolcat.spad} -\author{William Sit} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{domain ODVAR OrderlyDifferentialVariable} -<>= -)abbrev domain ODVAR OrderlyDifferentialVariable -++ Author: William Sit -++ Date Created: 19 July 1990 -++ Date Last Updated: 13 September 1991 -++ Basic Operations:differentiate, order, variable,< -++ Related Domains: OrderedVariableList, -++ SequentialDifferentialVariable. -++ See Also: DifferentialVariableCategory -++ AMS Classifications:12H05 -++ Keywords: differential indeterminates, orderly ranking. -++ References:Kolchin, E.R. "Differential Algebra and Algebraic Groups" -++ (Academic Press, 1973). -++ Description: -++ \spadtype{OrderlyDifferentialVariable} adds a commonly used orderly -++ ranking to the set of derivatives of an ordered list of differential -++ indeterminates. An orderly ranking is a ranking \spadfun{<} of the -++ derivatives with the property that for two derivatives u and v, -++ u \spadfun{<} v if the \spadfun{order} of u is less than that -++ of v. -++ This domain belongs to \spadtype{DifferentialVariableCategory}. It -++ defines \spadfun{weight} to be just \spadfun{order}, and it -++ defines an orderly ranking \spadfun{<} on derivatives u via the -++ lexicographic order on the pair -++ (\spadfun{order}(u), \spadfun{variable}(u)). -OrderlyDifferentialVariable(S:OrderedSet):DifferentialVariableCategory(S) - == add - Rep := Record(var:S, ord:NonNegativeInteger) - makeVariable(s,n) == [s, n] - variable v == v.var - order v == v.ord - -@ -\section{domain SDVAR SequentialDifferentialVariable} -<>= -)abbrev domain SDVAR SequentialDifferentialVariable -++ Author: William Sit -++ Date Created: 19 July 1990 -++ Date Last Updated: 13 September 1991 -++ Basic Operations:differentiate, order, variable, < -++ Related Domains: OrderedVariableList, -++ OrderlyDifferentialVariable. -++ See Also:DifferentialVariableCategory -++ AMS Classifications:12H05 -++ Keywords: differential indeterminates, sequential ranking. -++ References:Kolchin, E.R. "Differential Algebra and Algebraic Groups" -++ (Academic Press, 1973). -++ Description: -++ \spadtype{OrderlyDifferentialVariable} adds a commonly used sequential -++ ranking to the set of derivatives of an ordered list of differential -++ indeterminates. A sequential ranking is a ranking \spadfun{<} of the -++ derivatives with the property that for any derivative v, -++ there are only a finite number of derivatives u with u \spadfun{<} v. -++ This domain belongs to \spadtype{DifferentialVariableCategory}. It -++ defines \spadfun{weight} to be just \spadfun{order}, and it -++ defines a sequential ranking \spadfun{<} on derivatives u by the -++ lexicographic order on the pair -++ (\spadfun{variable}(u), \spadfun{order}(u)). - -SequentialDifferentialVariable(S:OrderedSet):DifferentialVariableCategory(S) - == add - Rep := Record(var:S, ord:NonNegativeInteger) - makeVariable(s,n) == [s, n] - variable v == v.var - order v == v.ord - v < u == - variable v = variable u => order v < order u - variable v < variable u - -@ -\section{domain DSMP DifferentialSparseMultivariatePolynomial} -<>= -)abbrev domain DSMP DifferentialSparseMultivariatePolynomial -++ Author: William Sit -++ Date Created: 19 July 1990 -++ Date Last Updated: 13 September 1991 -++ Basic Operations:DifferentialPolynomialCategory -++ Related Constructors: -++ See Also: -++ AMS Classifications:12H05 -++ Keywords: differential indeterminates, ranking, differential polynomials, -++ order, weight, leader, separant, initial, isobaric -++ References:Kolchin, E.R. "Differential Algebra and Algebraic Groups" -++ (Academic Press, 1973). -++ Description: -++ \spadtype{DifferentialSparseMultivariatePolynomial} implements -++ an ordinary differential polynomial ring by combining a -++ domain belonging to the category \spadtype{DifferentialVariableCategory} -++ with the domain \spadtype{SparseMultivariatePolynomial}. -++ - -DifferentialSparseMultivariatePolynomial(R, S, V): - Exports == Implementation where - R: Ring - S: OrderedSet - V: DifferentialVariableCategory S - E ==> IndexedExponents(V) - PC ==> PolynomialCategory(R,IndexedExponents(V),V) - PCL ==> PolynomialCategoryLifting - P ==> SparseMultivariatePolynomial(R, V) - SUP ==> SparseUnivariatePolynomial - SMP ==> SparseMultivariatePolynomial(R, S) - - Exports ==> Join(DifferentialPolynomialCategory(R,S,V,E), - RetractableTo SMP) - - Implementation ==> P add - retractIfCan(p:$):Union(SMP, "failed") == - zero? order p => - map(retract(#1)@S :: SMP, #1::SMP, p)$PCL( - IndexedExponents V, V, R, $, SMP) - "failed" - - coerce(p:SMP):$ == - map(#1::V::$, #1::$, p)$PCL(IndexedExponents S, S, R, SMP, $) - -@ -\section{domain ODPOL OrderlyDifferentialPolynomial} -<>= --- dpolcat.spad.pamphlet OrderlyDifferentialPolynomial.input -)spool OrderlyDifferentialPolynomial.output -)set message test on -)set message auto off -)clear all ---S 1 of 36 -dpol:= ODPOL(FRAC INT) ---R ---R ---R (1) OrderlyDifferentialPolynomial Fraction Integer ---R Type: Domain ---E 1 - ---S 2 of 36 -w := makeVariable('w)$dpol ---R ---R ---R (2) theMap(DPOLCAT-;makeVariable;AM;17!0,0) ---R Type: (NonNegativeInteger -> OrderlyDifferentialPolynomial Fraction Integer) ---E 2 - ---S 3 of 36 -z := makeVariable('z)$dpol ---R ---R ---R (3) theMap(DPOLCAT-;makeVariable;AM;17!0,0) ---R Type: (NonNegativeInteger -> OrderlyDifferentialPolynomial Fraction Integer) ---E 3 - ---S 4 of 36 -w.5 ---R ---R ---R (4) w ---R 5 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 4 - ---S 5 of 36 -w 0 ---R ---R ---R (5) w ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 5 - ---S 6 of 36 -[z.i for i in 1..5] ---R ---R ---R (6) [z ,z ,z ,z ,z ] ---R 1 2 3 4 5 ---R Type: List OrderlyDifferentialPolynomial Fraction Integer ---E 6 - ---S 7 of 36 -f:= w.4 - w.1 * w.1 * z.3 ---R ---R ---R 2 ---R (7) w - w z ---R 4 1 3 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 7 - ---S 8 of 36 -g:=(z.1)**3 * (z.2)**2 - w.2 ---R ---R ---R 3 2 ---R (8) z z - w ---R 1 2 2 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 8 - ---S 9 of 36 -D(f) ---R ---R ---R 2 ---R (9) w - w z - 2w w z ---R 5 1 4 1 2 3 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 9 - ---S 10 of 36 -D(f,4) ---R ---R ---R (10) ---R 2 2 ---R w - w z - 8w w z + (- 12w w - 12w )z - 2w z w ---R 8 1 7 1 2 6 1 3 2 5 1 3 5 ---R + ---R 2 ---R (- 8w w - 24w w )z - 8w z w - 6w z ---R 1 4 2 3 4 2 3 4 3 3 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 10 - ---S 11 of 36 -df:=makeVariable(f)$dpol ---R ---R ---R (11) theMap(DPOLCAT-;makeVariable;AM;17!0,0) ---R Type: (NonNegativeInteger -> OrderlyDifferentialPolynomial Fraction Integer) ---E 11 - ---S 12 of 36 -df.4 ---R ---R ---R (12) ---R 2 2 ---R w - w z - 8w w z + (- 12w w - 12w )z - 2w z w ---R 8 1 7 1 2 6 1 3 2 5 1 3 5 ---R + ---R 2 ---R (- 8w w - 24w w )z - 8w z w - 6w z ---R 1 4 2 3 4 2 3 4 3 3 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 12 - ---S 13 of 36 -order(g) ---R ---R ---R (13) 2 ---R Type: PositiveInteger ---E 13 - ---S 14 of 36 -order(g, 'w) ---R ---R ---R (14) 2 ---R Type: PositiveInteger ---E 14 - ---S 15 of 36 -differentialVariables(g) ---R ---R ---R (15) [z,w] ---R Type: List Symbol ---E 15 - ---S 16 of 36 -degree(g) ---R ---R ---R 2 3 ---R (16) z z ---R 2 1 ---R Type: IndexedExponents OrderlyDifferentialVariable Symbol ---E 16 - ---S 17 of 36 -degree(g, 'w) ---R ---R ---R (17) 1 ---R Type: PositiveInteger ---E 17 - ---S 18 of 36 -weights(g) ---R ---R ---R (18) [7,2] ---R Type: List NonNegativeInteger ---E 18 - ---S 19 of 36 -weights(g,'w) ---R ---R ---R (19) [2] ---R Type: List NonNegativeInteger ---E 19 - ---S 20 of 36 -weight(g) ---R ---R ---R (20) 7 ---R Type: PositiveInteger ---E 20 - ---S 21 of 36 -isobaric?(g) ---R ---R ---R (21) false ---R Type: Boolean ---E 21 - ---S 22 of 36 -eval(g,['w::Symbol],[f]) ---R ---R ---R 2 2 3 2 ---R (22) - w + w z + 4w w z + (2w w + 2w )z + z z ---R 6 1 5 1 2 4 1 3 2 3 1 2 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 22 - ---S 23 of 36 -eval(g,variables(w.0),[f]) ---R ---R ---R 3 2 ---R (23) z z - w ---R 1 2 2 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 23 - ---S 24 of 36 -monomials(g) ---R ---R ---R 3 2 ---R (24) [z z ,- w ] ---R 1 2 2 ---R Type: List OrderlyDifferentialPolynomial Fraction Integer ---E 24 - ---S 25 of 36 -variables(g) ---R ---R ---R (25) [z ,w ,z ] ---R 2 2 1 ---R Type: List OrderlyDifferentialVariable Symbol ---E 25 - ---S 26 of 36 -gcd(f,g) ---R ---R ---R (26) 1 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 26 - ---S 27 of 36 -groebner([f,g]) ---R ---R ---R 2 3 2 ---R (27) [w - w z ,z z - w ] ---R 4 1 3 1 2 2 ---R Type: List OrderlyDifferentialPolynomial Fraction Integer ---E 27 - ---S 28 of 36 -lg:=leader(g) ---R ---R ---R (28) z ---R 2 ---R Type: OrderlyDifferentialVariable Symbol ---E 28 - ---S 29 of 36 -sg:=separant(g) ---R ---R ---R 3 ---R (29) 2z z ---R 1 2 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 29 - ---S 30 of 36 -ig:=initial(g) ---R ---R ---R 3 ---R (30) z ---R 1 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 30 - ---S 31 of 36 -g1 := D g ---R ---R ---R 3 2 3 ---R (31) 2z z z - w + 3z z ---R 1 2 3 3 1 2 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 31 - ---S 32 of 36 -lg1:= leader g1 ---R ---R ---R (32) z ---R 3 ---R Type: OrderlyDifferentialVariable Symbol ---E 32 - ---S 33 of 36 -pdf:=D(f, lg1) ---R ---R ---R 2 ---R (33) - w ---R 1 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 33 - ---S 34 of 36 -prf:=sg * f- pdf * g1 ---R ---R ---R 3 2 2 2 3 ---R (34) 2z z w - w w + 3w z z ---R 1 2 4 1 3 1 1 2 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 34 - ---S 35 of 36 -lcf:=leadingCoefficient univariate(prf, lg) ---R ---R ---R 2 2 ---R (35) 3w z ---R 1 1 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 35 - ---S 36 of 36 -ig * prf - lcf * g * lg ---R ---R ---R 6 2 3 2 2 ---R (36) 2z z w - w z w + 3w z w z ---R 1 2 4 1 1 3 1 1 2 2 ---R Type: OrderlyDifferentialPolynomial Fraction Integer ---E 36 -)spool -)lisp (bye) -@ -<>= -==================================================================== -OrderlyDifferentialPolynomial examples -==================================================================== - -Many systems of differential equations may be transformed to equivalent -systems of ordinary differential equations where the equations are expressed -polynomially in terms of the unknown functions. In Axiom, the domain -constructors OrderlyDifferentialPolynomial (abbreviated ODPOL) and -SequentialDifferentialPolynomial (abbreviation SDPOL) implement two -domains of ordinary differential polynomials over any differential -ring. In the simplest case, this differential ring is usually either -the ring of integers, or the field of rational numbers. However, -Axiom can handle ordinary differential polynomials over a field of -rational functions in a single indeterminate. - -The two domains ODPOL and SDPOL are almost identical, the only difference -being the choice of a different ranking, which is an ordering of the -derivatives of the indeterminates. The first domain uses an orderly ranking, -that is, derivatives of higher order are ranked higher, and derivatives of -the same order are ranked alphabetically. The second domain uses a -sequential ranking, where derivatives are ordered first alphabetically -by the differential indeterminates, and then by order. A more general -domain constructor, DifferentialSparseMultivariatePolynomial (abbreviation -DSMP) allows both a user-provided list of differential indeterminates -as well as a user-defined ranking. We shall illustrate ODPOL(FRAC INT), -which constructs a domain of ordinary differential polynomials in an -arbitrary number of differential indeterminates with rational numbers -as coefficients. - - dpol:= ODPOL(FRAC INT) - OrderlyDifferentialPolynomial Fraction Integer - Type: Domain - -A differential indeterminate w may be viewed as an infinite sequence of -algebraic indeterminates, which are the derivatives of w. To facilitate -referencing these, Axiom provides the operation makeVariable to convert -an element of type Symbol to a map from the natural numbers to the -differential polynomial ring. - - w := makeVariable('w)$dpol - theMap(DPOLCAT-;makeVariable;AM;17!0,0) - Type: (NonNegativeInteger -> OrderlyDifferentialPolynomial Fraction Integer) - - z := makeVariable('z)$dpol - theMap(DPOLCAT-;makeVariable;AM;17!0,0) - Type: (NonNegativeInteger -> OrderlyDifferentialPolynomial Fraction Integer) - -The fifth derivative of w can be obtained by applying the map w to the -number 5. Note that the order of differentiation is given as a subscript -(except when the order is 0). - - w.5 - w - 5 - Type: OrderlyDifferentialPolynomial Fraction Integer - - w 0 - w - Type: OrderlyDifferentialPolynomial Fraction Integer - -The first five derivatives of z can be generated by a list. - - [z.i for i in 1..5] - [z ,z ,z ,z ,z ] - 1 2 3 4 5 - Type: List OrderlyDifferentialPolynomial Fraction Integer - -The usual arithmetic can be used to form a differential polynomial from -the derivatives. - - f:= w.4 - w.1 * w.1 * z.3 - 2 - w - w z - 4 1 3 - Type: OrderlyDifferentialPolynomial Fraction Integer - - g:=(z.1)**3 * (z.2)**2 - w.2 - 3 2 - z z - w - 1 2 2 - Type: OrderlyDifferentialPolynomial Fraction Integer - -The operation D computes the derivative of any differential polynomial. - - D(f) - 2 - w - w z - 2w w z - 5 1 4 1 2 3 - Type: OrderlyDifferentialPolynomial Fraction Integer - -The same operation can compute higher derivatives, like the fourth derivative. - - D(f,4) - 2 2 - w - w z - 8w w z + (- 12w w - 12w )z - 2w z w - 8 1 7 1 2 6 1 3 2 5 1 3 5 - + - 2 - (- 8w w - 24w w )z - 8w z w - 6w z - 1 4 2 3 4 2 3 4 3 3 - Type: OrderlyDifferentialPolynomial Fraction Integer - -The operation makeVariable creates a map to facilitate referencing the -derivatives of f, similar to the map w. - - df:=makeVariable(f)$dpol - theMap(DPOLCAT-;makeVariable;AM;17!0,0) - Type: (NonNegativeInteger -> OrderlyDifferentialPolynomial Fraction Integer) - -The fourth derivative of f may be referenced easily. - - df.4 - 2 2 - w - w z - 8w w z + (- 12w w - 12w )z - 2w z w - 8 1 7 1 2 6 1 3 2 5 1 3 5 - + - 2 - (- 8w w - 24w w )z - 8w z w - 6w z - 1 4 2 3 4 2 3 4 3 3 - Type: OrderlyDifferentialPolynomial Fraction Integer - -The operation order returns the order of a differential polynomial, -or the order in a specified differential indeterminate. - - order(g) - 2 - Type: PositiveInteger - - order(g, 'w) - 2 - Type: PositiveInteger - -The operation differentialVariables returns a list of differential -indeterminates occurring in a differential polynomial. - - differentialVariables(g) - [z,w] - Type: List Symbol - -The operation degree returns the degree, or the degree in the differential -indeterminate specified. - - degree(g) - 2 3 - z z - 2 1 - Type: IndexedExponents OrderlyDifferentialVariable Symbol - - degree(g, 'w) - 1 - Type: PositiveInteger - -The operation weights returns a list of weights of differential monomials -appearing in differential polynomial, or a list of weights in a specified -differential indeterminate. - - weights(g) - [7,2] - Type: List NonNegativeInteger - - weights(g,'w) - [2] - Type: List NonNegativeInteger - -The operation weight returns the maximum weight of all differential -monomials appearing in the differential polynomial. - - weight(g) - 7 - Type: PositiveInteger - -A differential polynomial is isobaric if the weights of all differential -monomials appearing in it are equal. - - isobaric?(g) - false - Type: Boolean - -To substitute differentially, use eval. Note that we must coerce 'w to -Symbol, since in ODPOL, differential indeterminates belong to the domain -Symbol. Compare this result to the next, which substitutes algebraically -(no substitution is done since w.0 does not appear in g). - - eval(g,['w::Symbol],[f]) - 2 2 3 2 - - w + w z + 4w w z + (2w w + 2w )z + z z - 6 1 5 1 2 4 1 3 2 3 1 2 - Type: OrderlyDifferentialPolynomial Fraction Integer - - eval(g,variables(w.0),[f]) - 3 2 - z z - w - 1 2 2 - Type: OrderlyDifferentialPolynomial Fraction Integer - -Since OrderlyDifferentialPolynomial belongs to PolynomialCategory, all -the operations defined in the latter category, or in packages for the -latter category, are available. - - monomials(g) - 3 2 - [z z ,- w ] - 1 2 2 - Type: List OrderlyDifferentialPolynomial Fraction Integer - - variables(g) - [z ,w ,z ] - 2 2 1 - Type: List OrderlyDifferentialVariable Symbol - - gcd(f,g) - 1 - Type: OrderlyDifferentialPolynomial Fraction Integer - - groebner([f,g]) - 2 3 2 - [w - w z ,z z - w ] - 4 1 3 1 2 2 - Type: List OrderlyDifferentialPolynomial Fraction Integer - -The next three operations are essential for elimination procedures in -differential polynomial rings. The operation leader returns the leader -of a differential polynomial, which is the highest ranked derivative -of the differential indeterminates that occurs. - - lg:=leader(g) - z - 2 - Type: OrderlyDifferentialVariable Symbol - -The operation separant returns the separant of a differential polynomial, -which is the partial derivative with respect to the leader. - - sg:=separant(g) - 3 - 2z z - 1 2 - Type: OrderlyDifferentialPolynomial Fraction Integer - -The operation initial returns the initial, which is the leading coefficient -when the given differential polynomial is expressed as a polynomial in -the leader. - - ig:=initial(g) - 3 - z - 1 - Type: OrderlyDifferentialPolynomial Fraction Integer - -Using these three operations, it is possible to reduce f modulo the -differential ideal generated by g. The general scheme is to first -reduce the order, then reduce the degree in the leader. First, eliminate -z.3 using the derivative of g. - - g1 := D g - 3 2 3 - 2z z z - w + 3z z - 1 2 3 3 1 2 - Type: OrderlyDifferentialPolynomial Fraction Integer - -Find its leader. - - lg1:= leader g1 - z - 3 - Type: OrderlyDifferentialVariable Symbol - -Differentiate f partially with respect to this leader. - - pdf:=D(f, lg1) - 2 - - w - 1 - Type: OrderlyDifferentialPolynomial Fraction Integer - -Compute the partial remainder of f with respect to g. - - prf:=sg * f- pdf * g1 - 3 2 2 2 3 - 2z z w - w w + 3w z z - 1 2 4 1 3 1 1 2 - Type: OrderlyDifferentialPolynomial Fraction Integer - -Note that high powers of lg still appear in prf. Compute the leading -coefficient of prf as a polynomial in the leader of g. - - lcf:=leadingCoefficient univariate(prf, lg) - 2 2 - 3w z - 1 1 - Type: OrderlyDifferentialPolynomial Fraction Integer - -Finally, continue eliminating the high powers of lg appearing in prf to -obtain the (pseudo) remainder of f modulo g and its derivatives. - - ig * prf - lcf * g * lg - 6 2 3 2 2 - 2z z w - w z w + 3w z w z - 1 2 4 1 1 3 1 1 2 2 - Type: OrderlyDifferentialPolynomial Fraction Integer - -See Also: -o )show OrderlyDifferentialPolynomial -o $AXIOM/doc/src/algebra/dpolcat.spad.dvi - -@ -<>= -)abbrev domain ODPOL OrderlyDifferentialPolynomial -++ Author: William Sit -++ Date Created: 24 September, 1991 -++ Date Last Updated: 7 February, 1992 -++ Basic Operations:DifferentialPolynomialCategory -++ Related Constructors: DifferentialSparseMultivariatePolynomial -++ See Also: -++ AMS Classifications:12H05 -++ Keywords: differential indeterminates, ranking, differential polynomials, -++ order, weight, leader, separant, initial, isobaric -++ References:Kolchin, E.R. "Differential Algebra and Algebraic Groups" -++ (Academic Press, 1973). -++ Description: -++ \spadtype{OrderlyDifferentialPolynomial} implements -++ an ordinary differential polynomial ring in arbitrary number -++ of differential indeterminates, with coefficients in a -++ ring. The ranking on the differential indeterminate is orderly. -++ This is analogous to the domain \spadtype{Polynomial}. -++ - -OrderlyDifferentialPolynomial(R): - Exports == Implementation where - R: Ring - S ==> Symbol - V ==> OrderlyDifferentialVariable S - E ==> IndexedExponents(V) - SMP ==> SparseMultivariatePolynomial(R, S) - Exports ==> Join(DifferentialPolynomialCategory(R,S,V,E), - RetractableTo SMP) - - Implementation ==> DifferentialSparseMultivariatePolynomial(R,S,V) - -@ -\section{domain SDPOL SequentialDifferentialPolynomial} -<>= -)abbrev domain SDPOL SequentialDifferentialPolynomial -++ Author: William Sit -++ Date Created: 24 September, 1991 -++ Date Last Updated: 7 February, 1992 -++ Basic Operations:DifferentialPolynomialCategory -++ Related Constructors: DifferentialSparseMultivariatePolynomial -++ See Also: -++ AMS Classifications:12H05 -++ Keywords: differential indeterminates, ranking, differential polynomials, -++ order, weight, leader, separant, initial, isobaric -++ References:Kolchin, E.R. "Differential Algebra and Algebraic Groups" -++ (Academic Press, 1973). -++ Description: -++ \spadtype{SequentialDifferentialPolynomial} implements -++ an ordinary differential polynomial ring in arbitrary number -++ of differential indeterminates, with coefficients in a -++ ring. The ranking on the differential indeterminate is sequential. -++ - -SequentialDifferentialPolynomial(R): - Exports == Implementation where - R: Ring - S ==> Symbol - V ==> SequentialDifferentialVariable S - E ==> IndexedExponents(V) - SMP ==> SparseMultivariatePolynomial(R, S) - Exports ==> Join(DifferentialPolynomialCategory(R,S,V,E), - RetractableTo SMP) - - Implementation ==> DifferentialSparseMultivariatePolynomial(R,S,V) - -@ -\section{License} -<>= ---Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. ---All rights reserved. --- ---Redistribution and use in source and binary forms, with or without ---modification, are permitted provided that the following conditions are ---met: --- --- - Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- --- - Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in --- the documentation and/or other materials provided with the --- distribution. --- --- - Neither the name of The Numerical ALgorithms Group Ltd. nor the --- names of its contributors may be used to endorse or promote products --- derived from this software without specific prior written permission. --- ---THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS ---IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ---PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER ---OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ---EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ---PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ---PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ---NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ---SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<> - -<> -<> -<> -<> -<> - -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/algebra/drawopt.spad.pamphlet b/src/algebra/drawopt.spad.pamphlet index 3e5658a..b602121 100644 --- a/src/algebra/drawopt.spad.pamphlet +++ b/src/algebra/drawopt.spad.pamphlet @@ -9,215 +9,6 @@ \eject \tableofcontents \eject -\section{domain DROPT DrawOption} -<>= -)abbrev domain DROPT DrawOption -++ Author: Stephen Watt -++ Date Created: 1 March 1990 -++ Date Last Updated: 31 Oct 1990, Jim Wen -++ Basic Operations: adaptive, clip, title, style, toScale, coordinates, -++ pointColor, curveColor, colorFunction, tubeRadius, range, ranges, -++ var1Steps, var2Steps, tubePoints, unit -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: -++ References: -++ Description: DrawOption allows the user to specify defaults for the -++ creation and rendering of plots. - -DrawOption(): Exports == Implementation where - RANGE ==> List Segment Float - UNIT ==> List Float - PAL ==> Palette - POINT ==> Point(DoubleFloat) - SEG ==> Segment Float - SF ==> DoubleFloat - SPACE3 ==> ThreeSpace(DoubleFloat) - VIEWPT ==> Record( theta:SF, phi:SF, scale:SF, scaleX:SF, scaleY:SF, scaleZ:SF, deltaX:SF, deltaY:SF ) - - Exports ==> SetCategory with - adaptive : Boolean -> % - ++ adaptive(b) turns adaptive 2D plotting on if b is true, or off if b is - ++ false. This option is expressed in the form \spad{adaptive == b}. - clip : Boolean -> % - ++ clip(b) turns 2D clipping on if b is true, or off if b is false. This option - ++ is expressed in the form \spad{clip == b}. - viewpoint : VIEWPT -> % - ++ viewpoint(vp) creates a viewpoint data structure corresponding to the list - ++ of values. The values are interpreted as [theta, phi, scale, scaleX, scaleY, - ++ scaleZ, deltaX, deltaY]. This option is expressed in the form - ++ \spad{viewpoint == ls}. - title : String -> % - ++ title(s) specifies a title for a plot by the indicated string s. This option - ++ is expressed in the form \spad{title == s}. - style : String -> % - ++ style(s) specifies the drawing style in which the graph will be plotted - ++ by the indicated string s. This option is expressed in the form \spad{style == s}. - toScale : Boolean -> % - ++ toScale(b) specifies whether or not a plot is to be drawn to scale; - ++ if b is true it is drawn to scale, if b is false it is not. This option - ++ is expressed in the form \spad{toScale == b}. - - clip : List SEG -> % - ++ clip([l]) provides ranges for user-defined clipping as specified - ++ in the list l. This option is expressed in the form \spad{clip == [l]}. - coordinates : (POINT -> POINT) -> % - ++ coordinates(p) specifies a change of coordinate systems of point p. - ++ This option is expressed in the form \spad{coordinates == p}. - pointColor : Float -> % - ++ pointColor(v) specifies a color, v, for 2D graph points. This option - ++ is expressed in the form \spad{pointColor == v}. - pointColor : PAL -> % - ++ pointColor(p) specifies a color index for 2D graph points from the spadcolors - ++ palette p. This option is expressed in the form \spad{pointColor == p}. - curveColor : Float -> % - ++ curveColor(v) specifies a color, v, for 2D graph curves. This option is expressed - ++ in the form \spad{curveColor == v}. - curveColor : PAL -> % - ++ curveColor(p) specifies a color index for 2D graph curves from the - ++ spadcolors palette p. This option is expressed in the form \spad{curveColor ==p}. - colorFunction : (SF -> SF) -> % - ++ colorFunction(f(z)) specifies the color based upon the z-component of - ++ three dimensional plots. This option is expressed in the form \spad{colorFunction == f(z)}. - colorFunction : ((SF,SF) -> SF) -> % - ++ colorFunction(f(u,v)) specifies the color for three dimensional plots - ++ as a function based upon the two parametric variables. This option is expressed - ++ in the form \spad{colorFunction == f(u,v)}. - colorFunction : ((SF,SF,SF) -> SF) -> % - ++ colorFunction(f(x,y,z)) specifies the color for three dimensional - ++ plots as a function of x, y, and z coordinates. This option is expressed in the - ++ form \spad{colorFunction == f(x,y,z)}. - tubeRadius : Float -> % - ++ tubeRadius(r) specifies a radius, r, for a tube plot around a 3D curve; - ++ is expressed in the form \spad{tubeRadius == 4}. - range : List SEG -> % - ++ range([l]) provides a user-specified range l. This option is expressed in the - ++ form \spad{range == [l]}. - range : List Segment Fraction Integer -> % - ++ range([i]) provides a user-specified range i. This option is expressed in the - ++ form \spad{range == [i]}. - - ranges : RANGE -> % - ++ ranges(l) provides a list of user-specified ranges l. This option is expressed - ++ in the form \spad{ranges == l}. - space : SPACE3 -> % - ++ space specifies the space into which we will draw. If none is given - ++ then a new space is created. - var1Steps : PositiveInteger -> % - ++ var1Steps(n) indicates the number of subdivisions, n, of the first - ++ range variable. This option is expressed in the form \spad{var1Steps == n}. - var2Steps : PositiveInteger -> % - ++ var2Steps(n) indicates the number of subdivisions, n, of the second - ++ range variable. This option is expressed in the form \spad{var2Steps == n}. - tubePoints : PositiveInteger -> % - ++ tubePoints(n) specifies the number of points, n, defining the circle - ++ which creates the tube around a 3D curve, the default is 6. This option is - ++ expressed in the form \spad{tubePoints == n}. - coord : (POINT->POINT) -> % - ++ coord(p) specifies a change of coordinates of point p. This option is expressed - ++ in the form \spad{coord == p}. - unit : UNIT -> % - ++ unit(lf) will mark off the units according to the indicated list lf. - ++ This option is expressed in the form \spad{unit == [f1,f2]}. - option : (List %, Symbol) -> Union(Any, "failed") - ++ option() is not to be used at the top level; - ++ option determines internally which drawing options are indicated in - ++ a draw command. - option?: (List %, Symbol) -> Boolean - ++ option?() is not to be used at the top level; - ++ option? internally returns true for drawing options which are - ++ indicated in a draw command, or false for those which are not. - Implementation ==> add - import AnyFunctions1(String) - import AnyFunctions1(Segment Float) - import AnyFunctions1(VIEWPT) - import AnyFunctions1(List Segment Float) - import AnyFunctions1(List Segment Fraction Integer) - import AnyFunctions1(List Integer) - import AnyFunctions1(PositiveInteger) - import AnyFunctions1(Boolean) - import AnyFunctions1(RANGE) - import AnyFunctions1(UNIT) - import AnyFunctions1(Float) - import AnyFunctions1(POINT -> POINT) - import AnyFunctions1(SF -> SF) - import AnyFunctions1((SF,SF) -> SF) - import AnyFunctions1((SF,SF,SF) -> SF) - import AnyFunctions1(POINT) - import AnyFunctions1(PAL) - import AnyFunctions1(SPACE3) - - Rep := Record(keyword:Symbol, value:Any) - - length:List SEG -> NonNegativeInteger - -- these lists will become tuples in a later version - length tup == # tup - - lengthR:List Segment Fraction Integer -> NonNegativeInteger - -- these lists will become tuples in a later version - lengthR tup == # tup - - lengthI:List Integer -> NonNegativeInteger - -- these lists will become tuples in a later version - lengthI tup == # tup - - viewpoint vp == - ["viewpoint"::Symbol, vp::Any] - - title s == ["title"::Symbol, s::Any] - style s == ["style"::Symbol, s::Any] - toScale b == ["toScale"::Symbol, b::Any] - clip(b:Boolean) == ["clipBoolean"::Symbol, b::Any] - adaptive b == ["adaptive"::Symbol, b::Any] - - pointColor(x:Float) == ["pointColorFloat"::Symbol, x::Any] - pointColor(c:PAL) == ["pointColorPalette"::Symbol, c::Any] - curveColor(x:Float) == ["curveColorFloat"::Symbol, x::Any] - curveColor(c:PAL) == ["curveColorPalette"::Symbol, c::Any] - colorFunction(f:SF -> SF) == ["colorFunction1"::Symbol, f::Any] - colorFunction(f:(SF,SF) -> SF) == ["colorFunction2"::Symbol, f::Any] - colorFunction(f:(SF,SF,SF) -> SF) == ["colorFunction3"::Symbol, f::Any] - clip(tup:List SEG) == - length tup > 3 => - error "clip: at most 3 segments may be specified" - ["clipSegment"::Symbol, tup::Any] - coordinates f == ["coordinates"::Symbol, f::Any] - tubeRadius x == ["tubeRadius"::Symbol, x::Any] - range(tup:List Segment Float) == - ((n := length tup) > 3) => - error "range: at most 3 segments may be specified" - n < 2 => - error "range: at least 2 segments may be specified" - ["rangeFloat"::Symbol, tup::Any] - range(tup:List Segment Fraction Integer) == - ((n := lengthR tup) > 3) => - error "range: at most 3 segments may be specified" - n < 2 => - error "range: at least 2 segments may be specified" - ["rangeRat"::Symbol, tup::Any] - - ranges s == ["ranges"::Symbol, s::Any] - space s == ["space"::Symbol, s::Any] - var1Steps s == ["var1Steps"::Symbol, s::Any] - var2Steps s == ["var2Steps"::Symbol, s::Any] - tubePoints s == ["tubePoints"::Symbol, s::Any] - coord s == ["coord"::Symbol, s::Any] - unit s == ["unit"::Symbol, s::Any] - coerce(x:%):OutputForm == x.keyword::OutputForm = x.value::OutputForm - x:% = y:% == x.keyword = y.keyword and x.value = y.value - - option?(l, s) == - for x in l repeat - x.keyword = s => return true - false - - option(l, s) == - for x in l repeat - x.keyword = s => return(x.value) - "failed" - -@ \section{package DROPT1 DrawOptionFunctions1} <>= )abbrev package DROPT1 DrawOptionFunctions1 @@ -447,7 +238,6 @@ DrawOptionFunctions0(): Exports == Implementation where <<*>>= <> -<> <> <> @