diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet index 585cb6f..5497719 100644 --- a/books/bookvol10.3.pamphlet +++ b/books/bookvol10.3.pamphlet @@ -27955,6 +27955,329 @@ DoubleFloat(): Join(FloatingPointSystem, DifferentialRing, OpenMath, @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain DFMAT DoubleFloatMatrix} +<>= +)set break resume +)sys rm -f DoubleFloatMatrix.output +)spool DoubleFloatMatrix.output +)set message test on +)set message auto off +)clear all + +--S 1 of 6 +)show DoubleFloatMatrix +--R DoubleFloatMatrix is a domain constructor +--R Abbreviation for DoubleFloatMatrix is DFMAT +--R This constructor is exposed in this frame. +--R Issue )edit bookvol10.3.pamphlet to see algebra source code for DFMAT +--R +--R------------------------------- Operations -------------------------------- +--R ?*? : (Integer,%) -> % ?*? : (%,DoubleFloat) -> % +--R ?*? : (DoubleFloat,%) -> % ?*? : (%,%) -> % +--R ?+? : (%,%) -> % -? : % -> % +--R ?-? : (%,%) -> % antisymmetric? : % -> Boolean +--R coerce : DoubleFloatVector -> % copy : % -> % +--R diagonal? : % -> Boolean diagonalMatrix : List % -> % +--R empty : () -> % empty? : % -> Boolean +--R eq? : (%,%) -> Boolean fill! : (%,DoubleFloat) -> % +--R horizConcat : (%,%) -> % maxColIndex : % -> Integer +--R maxRowIndex : % -> Integer minColIndex : % -> Integer +--R minRowIndex : % -> Integer ncols : % -> NonNegativeInteger +--R nrows : % -> NonNegativeInteger parts : % -> List DoubleFloat +--R qnew : (Integer,Integer) -> % sample : () -> % +--R square? : % -> Boolean squareTop : % -> % +--R symmetric? : % -> Boolean transpose : % -> % +--R vertConcat : (%,%) -> % +--R #? : % -> NonNegativeInteger if $ has finiteAggregate +--R ?*? : (DoubleFloatVector,%) -> DoubleFloatVector +--R ?*? : (%,DoubleFloatVector) -> DoubleFloatVector +--R ?**? : (%,Integer) -> % if DoubleFloat has FIELD +--R ?**? : (%,NonNegativeInteger) -> % +--R ?/? : (%,DoubleFloat) -> % if DoubleFloat has FIELD +--R ?=? : (%,%) -> Boolean if DoubleFloat has SETCAT +--R any? : ((DoubleFloat -> Boolean),%) -> Boolean if $ has finiteAggregate +--R coerce : % -> OutputForm if DoubleFloat has SETCAT +--R column : (%,Integer) -> DoubleFloatVector +--R columnSpace : % -> List DoubleFloatVector if DoubleFloat has EUCDOM +--R count : (DoubleFloat,%) -> NonNegativeInteger if $ has finiteAggregate and DoubleFloat has SETCAT +--R count : ((DoubleFloat -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate +--R determinant : % -> DoubleFloat if DoubleFloat has commutative * +--R diagonalMatrix : List DoubleFloat -> % +--R elt : (%,List Integer,List Integer) -> % +--R elt : (%,Integer,Integer,DoubleFloat) -> DoubleFloat +--R elt : (%,Integer,Integer) -> DoubleFloat +--R eval : (%,List DoubleFloat,List DoubleFloat) -> % if DoubleFloat has EVALAB DFLOAT and DoubleFloat has SETCAT +--R eval : (%,DoubleFloat,DoubleFloat) -> % if DoubleFloat has EVALAB DFLOAT and DoubleFloat has SETCAT +--R eval : (%,Equation DoubleFloat) -> % if DoubleFloat has EVALAB DFLOAT and DoubleFloat has SETCAT +--R eval : (%,List Equation DoubleFloat) -> % if DoubleFloat has EVALAB DFLOAT and DoubleFloat has SETCAT +--R every? : ((DoubleFloat -> Boolean),%) -> Boolean if $ has finiteAggregate +--R exquo : (%,DoubleFloat) -> Union(%,"failed") if DoubleFloat has INTDOM +--R hash : % -> SingleInteger if DoubleFloat has SETCAT +--R inverse : % -> Union(%,"failed") if DoubleFloat has FIELD +--R latex : % -> String if DoubleFloat has SETCAT +--R less? : (%,NonNegativeInteger) -> Boolean +--R listOfLists : % -> List List DoubleFloat +--R map : (((DoubleFloat,DoubleFloat) -> DoubleFloat),%,%,DoubleFloat) -> % +--R map : (((DoubleFloat,DoubleFloat) -> DoubleFloat),%,%) -> % +--R map : ((DoubleFloat -> DoubleFloat),%) -> % +--R map! : ((DoubleFloat -> DoubleFloat),%) -> % +--R matrix : List List DoubleFloat -> % +--R member? : (DoubleFloat,%) -> Boolean if $ has finiteAggregate and DoubleFloat has SETCAT +--R members : % -> List DoubleFloat if $ has finiteAggregate +--R minordet : % -> DoubleFloat if DoubleFloat has commutative * +--R more? : (%,NonNegativeInteger) -> Boolean +--R new : (NonNegativeInteger,NonNegativeInteger,DoubleFloat) -> % +--R nullSpace : % -> List DoubleFloatVector if DoubleFloat has INTDOM +--R nullity : % -> NonNegativeInteger if DoubleFloat has INTDOM +--R pfaffian : % -> DoubleFloat if DoubleFloat has COMRING +--R qelt : (%,Integer,Integer) -> DoubleFloat +--R qsetelt! : (%,Integer,Integer,DoubleFloat) -> DoubleFloat +--R rank : % -> NonNegativeInteger if DoubleFloat has INTDOM +--R row : (%,Integer) -> DoubleFloatVector +--R rowEchelon : % -> % if DoubleFloat has EUCDOM +--R scalarMatrix : (NonNegativeInteger,DoubleFloat) -> % +--R setColumn! : (%,Integer,DoubleFloatVector) -> % +--R setRow! : (%,Integer,DoubleFloatVector) -> % +--R setelt : (%,List Integer,List Integer,%) -> % +--R setelt : (%,Integer,Integer,DoubleFloat) -> DoubleFloat +--R setsubMatrix! : (%,Integer,Integer,%) -> % +--R size? : (%,NonNegativeInteger) -> Boolean +--R subMatrix : (%,Integer,Integer,Integer,Integer) -> % +--R swapColumns! : (%,Integer,Integer) -> % +--R swapRows! : (%,Integer,Integer) -> % +--R transpose : DoubleFloatVector -> % +--R zero : (NonNegativeInteger,NonNegativeInteger) -> % +--R ?~=? : (%,%) -> Boolean if DoubleFloat has SETCAT +--R +--E 1 + +--S 2 of 6 +a:DFMAT:=qnew(2,3) +--R +--R +0. 0. 0.+ +--R (1) | | +--R +0. 0. 0.+ +--R Type: DoubleFloatMatrix +--E 2 + +--S 3 of 6 +qsetelt!(a,1,1,1.0) +--R +--R (2) 1. +--R Type: DoubleFloat +--E 3 + +--S 4 of 6 +a +--R +--R +0. 0. 0.+ +--R (3) | | +--R +0. 1. 0.+ +--R Type: DoubleFloatMatrix +--E 4 + +--S 5 of 6 +qsetelt!(a,0,0,2.0) +--R +--R (4) 2. +--R Type: DoubleFloat +--E 5 + +--S 6 of 6 +a +--R +--R +2. 0. 0.+ +--R (5) | | +--R +0. 1. 0.+ +--R Type: DoubleFloatMatrix +--E 6 + +)spool +)lisp (bye) + +@ + +<>= +==================================================================== +DoubleFloatMatrix examples +==================================================================== +This domain creates a lisp simple array of machine doublefloats. +It provides one new function called qnew which takes an integer +that gives the array length. + +NOTE: Unlike normal Axiom arrays the DoubleFloatMatrix arrays +are 0-based so the first element is 0. Axiom arrays normally +start at 1. + +a:DFMAT:=qnew(2,3) + +0. 0. 0.+ + | | + +0. 0. 0.+ + +qsetelt!(a,1,1,1.0) + 1. + +a + +0. 0. 0.+ + | | + +0. 1. 0.+ + +qsetelt!(a,0,0,2.0) + 2. + +a + +2. 0. 0.+ + | | + +0. 1. 0.+ + + +See Also: +o )help Float +o )help DoubleFloat +o )show DoubleFloatMatrix + +@ +\pagehead{DoubleFloatMatrix}{DFMAT} +\pagepic{ps/v103doublefloatmatrix.eps}{DFMAT}{1.00} + +{\bf Exports:}\\ +\begin{tabular}{llll} +\cross{DFMAT}{\#?} & +\cross{DFMAT}{-?} & +\cross{DFMAT}{?**?} & +\cross{DFMAT}{?*?} \\ +\cross{DFMAT}{?+?} & +\cross{DFMAT}{?-?} & +\cross{DFMAT}{?/?} & +\cross{DFMAT}{?=?} \\ +\cross{DFMAT}{?\~{}=?} & +\cross{DFMAT}{antisymmetric?} & +\cross{DFMAT}{any?} & +\cross{DFMAT}{coerce} \\ +\cross{DFMAT}{coerce} & +\cross{DFMAT}{column} & +\cross{DFMAT}{columnSpace} & +\cross{DFMAT}{copy} \\ +\cross{DFMAT}{count} & +\cross{DFMAT}{count} & +\cross{DFMAT}{determinant} & +\cross{DFMAT}{diagonal?} \\ +\cross{DFMAT}{diagonalMatrix} & +\cross{DFMAT}{diagonalMatrix} & +\cross{DFMAT}{elt} & +\cross{DFMAT}{elt} \\ +\cross{DFMAT}{elt} & +\cross{DFMAT}{empty} & +\cross{DFMAT}{empty?} & +\cross{DFMAT}{eq?} \\ +\cross{DFMAT}{eval} & +\cross{DFMAT}{eval} & +\cross{DFMAT}{eval} & +\cross{DFMAT}{eval} \\ +\cross{DFMAT}{every?} & +\cross{DFMAT}{exquo} & +\cross{DFMAT}{fill!} & +\cross{DFMAT}{hash} \\ +\cross{DFMAT}{horizConcat} & +\cross{DFMAT}{inverse} & +\cross{DFMAT}{latex} & +\cross{DFMAT}{less?} \\ +\cross{DFMAT}{listOfLists} & +\cross{DFMAT}{map} & +\cross{DFMAT}{map} & +\cross{DFMAT}{map} \\ +\cross{DFMAT}{map!} & +\cross{DFMAT}{matrix} & +\cross{DFMAT}{maxColIndex} & +\cross{DFMAT}{maxRowIndex} \\ +\cross{DFMAT}{member?} & +\cross{DFMAT}{members} & +\cross{DFMAT}{minColIndex} & +\cross{DFMAT}{minRowIndex} \\ +\cross{DFMAT}{minordet} & +\cross{DFMAT}{more?} & +\cross{DFMAT}{ncols} & +\cross{DFMAT}{new} \\ +\cross{DFMAT}{nrows} & +\cross{DFMAT}{nullSpace} & +\cross{DFMAT}{nullity} & +\cross{DFMAT}{parts} \\ +\cross{DFMAT}{pfaffian} & +\cross{DFMAT}{qelt} & +\cross{DFMAT}{qnew} & +\cross{DFMAT}{qsetelt!} \\ +\cross{DFMAT}{rank} & +\cross{DFMAT}{row} & +\cross{DFMAT}{rowEchelon} & +\cross{DFMAT}{sample} \\ +\cross{DFMAT}{scalarMatrix} & +\cross{DFMAT}{setColumn!} & +\cross{DFMAT}{setRow!} & +\cross{DFMAT}{setelt} \\ +\cross{DFMAT}{setelt} & +\cross{DFMAT}{setsubMatrix!} & +\cross{DFMAT}{size?} & +\cross{DFMAT}{square?} \\ +\cross{DFMAT}{squareTop} & +\cross{DFMAT}{subMatrix} & +\cross{DFMAT}{swapColumns!} & +\cross{DFMAT}{swapRows!} \\ +\cross{DFMAT}{symmetric?} & +\cross{DFMAT}{transpose} & +\cross{DFMAT}{transpose} & +\cross{DFMAT}{vertConcat} \\ +\cross{DFMAT}{zero} && +\end{tabular} + +<>= +)abbrev domain DFMAT DoubleFloatMatrix +++ Author: Waldek Hebisch +++ Description: This is a low-level domain which implements matrices +++ (two dimensional arrays) of double precision floating point +++ numbers. Indexing is 0 based, there is no bound checking (unless +++ provided by lower level). +DoubleFloatMatrix : MatrixCategory(DoubleFloat, + DoubleFloatVector, + DoubleFloatVector) with + qnew : (Integer, Integer) -> % + ++ qnew(n, m) creates a new uninitialized n by m matrix. + ++ + ++X t1:DFMAT:=qnew(3,4) + + == add + + Qelt2 ==> DAREF2$Lisp + Qsetelt2 ==> DSETAREF2$Lisp + Qnrows ==> DANROWS$Lisp + Qncols ==> DANCOLS$Lisp + Qnew ==> MAKE_-DOUBLE_-MATRIX$Lisp + Qnew1 ==> MAKE_-DOUBLE_-MATRIX1$Lisp + + minRowIndex x == 0 + minColIndex x == 0 + nrows x == Qnrows(x) + ncols x == Qncols(x) + maxRowIndex x == Qnrows(x) - 1 + maxColIndex x == Qncols(x) - 1 + + qelt(m, i, j) == Qelt2(m, i, j) + qsetelt_!(m, i, j, r) == Qsetelt2(m, i, j, r) + + empty() == Qnew(0$Integer, 0$Integer) + qnew(rows, cols) == Qnew(rows, cols) + new(rows, cols, a) == Qnew1(rows, cols, a) + +@ +<>= +"DFMAT" [color="#88FF44",href="bookvol10.3.pdf#nameddest=DFMAT", + shape=ellipse] +"VECTCAT" [color=lightblue,href="bookvol10.2.pdf#nameddest=VECTCAT"]; +"MATCAT" [color=lightblue,href="bookvol10.2.pdf#nameddest=MATCAT"]; +"DFMAT" -> "VECTCAT" +"DFMAT" -> "MATCAT" + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain DFVEC DoubleFloatVector} <>= )set break resume @@ -148745,6 +149068,7 @@ Note that this code is not included in the generated catdef.spad file. <> <> <> +<> <> <> <> diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index db0feee..06adeb0 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -23912,6 +23912,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|DistinctDegreeFactorize| . DDFACT) (|Divisor| . DIV) (|DoubleFloat| . DFLOAT) + (|DoubleFloatMatrix| . DFMAT) (|DoubleFloatVector| . DFVEC) (|DoubleFloatSpecialFunctions| . DFSFUN) (|DrawComplex| . DRAWCX) @@ -38038,6 +38039,50 @@ occupies two positions in the real array. @ +\section{DoubleFloatMatrix} +\defmacro{make-double-matrix}{DoubleFloatMatrix qnew function support} +<>= +(defmacro make-double-matrix (n m) + `(make-array (list ,n ,m) :element-type 'double-float)) + +@ + +\defmacro{make-double-matrix1}{DoubleFloatMatrix new function support} +<>= +(defmacro make-double-matrix1 (n m s) + `(make-array (list ,n ,m) :element-type 'double-float + :initial-element ,s)) + +@ + +\defmacro{daref2}{DoubleFloatMatrix qelt function support} +<>= +(defmacro daref2 (v i j) + `(aref (the (simple-array double-float (* *)) ,v) ,i ,j)) + +@ + +\defmacro{dsetaref2}{DoubleFloatMatrix qsetelt! function support} +<>= +(defmacro dsetaref2 (v i j s) + `(setf (aref (the (simple-array double-float (* *)) ,v) ,i ,j) + ,s)) + +@ + +\defmacro{danrows}{DoubleFloatMatrix nrows function support} +<>= +(defmacro danrows (v) + `(array-dimension (the (simple-array double-float (* *)) ,v) 0)) + +@ + +\defmacro{dancols}{DoubleFloatMatrix ncols function support} +<>= +(defmacro dancols (v) + `(array-dimension (the (simple-array double-float (* *)) ,v) 1)) + +@ \section{Integer} \defun{divide2}{Integer divide function support} @@ -39693,6 +39738,10 @@ This needs to work off the internal exposure list, not the file. <> <> <> +<> +<> +<> +<> <> <> <> @@ -39725,14 +39774,16 @@ This needs to work off the internal exposure list, not the file. <> <> <> -<> <> +<> <> <> <> <> <> <> +<> +<> <> <> <> diff --git a/books/ps/v103doublefloatmatrix.eps b/books/ps/v103doublefloatmatrix.eps new file mode 100644 index 0000000..7f5019c --- /dev/null +++ b/books/ps/v103doublefloatmatrix.eps @@ -0,0 +1,303 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Graphviz version 2.20.2 (Mon Mar 30 10:09:11 UTC 2009) +%%For: (root) root +%%Title: pic +%%Pages: 1 +%%BoundingBox: 36 36 214 152 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw text fitted to its expected width +/alignedtext { % width text + /text exch def + /width exch def + gsave + width 0 gt { + [] 0 setdash + text stringwidth pop width exch sub text length div 0 text ashow + } if + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +setupLatin1 +%%Page: 1 1 +%%PageBoundingBox: 36 36 214 152 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 178 116 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% DFMAT +gsave +[ /Rect [ 41 72 133 108 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=DFMAT) >> + /Subtype /Link +/ANN pdfmark +0.273 0.733 1.000 nodecolor +87 90 45.86 18 ellipse_path fill +1 setlinewidth +filled +0.273 0.733 1.000 nodecolor +87 90 45.86 18 ellipse_path stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +62 85.9 moveto 50 (DFMAT) alignedtext +grestore +% VECTCAT +gsave +[ /Rect [ 0 0 80 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=VECTCAT) >> + /Subtype /Link +/ANN pdfmark +0.537 0.247 0.902 nodecolor +newpath 80 36 moveto +0 36 lineto +0 0 lineto +80 0 lineto +closepath fill +1 setlinewidth +filled +0.537 0.247 0.902 nodecolor +newpath 80 36 moveto +0 36 lineto +0 0 lineto +80 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +7.5 13.9 moveto 65 (VECTCAT) alignedtext +grestore +% DFMAT->VECTCAT +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 75 72 moveto +70 64 63 54 57 44 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 60.27 42.62 moveto +52 36 lineto +54.33 46.34 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 60.27 42.62 moveto +52 36 lineto +54.33 46.34 lineto +closepath stroke +grestore +% MATCAT +gsave +[ /Rect [ 98 0 170 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=MATCAT) >> + /Subtype /Link +/ANN pdfmark +0.537 0.247 0.902 nodecolor +newpath 170 36 moveto +98 36 lineto +98 0 lineto +170 0 lineto +closepath fill +1 setlinewidth +filled +0.537 0.247 0.902 nodecolor +newpath 170 36 moveto +98 36 lineto +98 0 lineto +170 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +105.5 13.9 moveto 57 (MATCAT) alignedtext +grestore +% DFMAT->MATCAT +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 99 72 moveto +104 64 111 54 117 44 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 119.67 46.34 moveto +122 36 lineto +113.73 42.62 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 119.67 46.34 moveto +122 36 lineto +113.73 42.62 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +end +restore +%%EOF diff --git a/changelog b/changelog index 83c88ed..48c5f2e 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20100704 wxh src/axiom-website/patches.html 20100704.01.wxh.patch +20100704 wxh src/algebra/Makefile test and help files for DFMAT +20100704 wxh books/bookvol5 expose DoubleFloatMatrix and add macros +20100704 wxh books/bookvol10.3 add DoubleFloatMatrix +20100704 wxh books/ps/v103doublefloatmatrix.eps added 20100703 tpd src/axiom-website/patches.html 20100703.06.tpd.patch 20100703 tpd src/input/Makefile add TESTSET=notests 20100703 tpd src/axiom-website/patches.html 20100703.05.tpd.patch diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 2a34097..5a16d5c 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -4447,7 +4447,7 @@ Used by next layer: IVECTOR PTCAT STRICAT <>= LAYER9=\ - ${OUT}/AFFPL.o ${OUT}/BITS.o ${OUT}/DFVEC.o \ + ${OUT}/AFFPL.o ${OUT}/BITS.o ${OUT}/DFMAT.o ${OUT}/DFVEC.o \ ${OUT}/DIRPROD2.o ${OUT}/IMATRIX.o ${OUT}/INTRVL.o \ ${OUT}/IVECTOR.o ${OUT}/LOCPOWC.o \ ${OUT}/LODO1.o ${OUT}/LODO2.o ${OUT}/LPOLY.o \ @@ -4482,6 +4482,21 @@ LAYER9=\ /*"BITS" -> {"RETRACT"; "LINEXP"; "PATMAB"; "CFCAT"; "REAL"; "CHARZ"}*/ /*"BITS" -> {"STEP"; "OM"}*/ +"DFMAT" [color="#88FF44",href="bookvol10.3.pdf#nameddest=DFMAT"] +"DFMAT" -> "MATCAT" +"DFMAT" -> "VECTCAT" +/*"DFMAT" -> {"ARR2CAT"; "HOAGG"; "AGG"; "TYPE"; "SETCAT"; "BASTYPE"}*/ +/*"DFMAT" -> {"KOERCE"; "EVALAB"; "IEVALAB"; "FPS"; "RNS"; "FIELD"}*/ +/*"DFMAT" -> {"EUCDOM"; "PID"; "GCDDOM"; "INTDOM"; "COMRING"; "RING"; "RNG"}*/ +/*"DFMAT" -> {"ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"; "SGROUP"; "MONOID"}*/ +/*"DFMAT" -> {"LMODULE"; "BMODULE"; "RMODULE"; "ALGEBRA"; "MODULE"}*/ +/*"DFMAT" -> {"ENTIRER"; "UFD"; "DIVRING"; "ORDRING"; "OAGROUP"; "OCAMON"}*/ +/*"DFMAT" -> {"OAMON"; "OASGP"; "ORDSET"; "REAL"; "KONVERT"; "RETRACT"}*/ +/*"DFMAT" -> {"RADCAT"; "PATMAB"; "CHARZ"; "A1AGG"; "FLAGG"; "LNAGG"}*/ +/*"DFMAT" -> {"IXAGG"; "ELTAGG"; "ELTAB"; "CLAGG"; "INT"; "DIFRING"; "OM"}*/ +/*"DFMAT" -> {"TRANFUN"; "TRIGCAT"; "ATRIG"; "HYPCAT"; "AHYP"; "ELEMFUN"}*/ +/*"DFMAT" -> {"SPFCAT"}*/ + "DFVEC" [color="#88FF44",href="bookvol10.3.pdf#nameddest=DFVEC"] "DFVEC" -> "VECTCAT" /*"DFVEC" -> {"A1AGG"; "FLAGG"; "LNAGG"; "IXAGG"; "HOAGG"; "AGG"; "TYPE"}*/ @@ -17358,6 +17373,7 @@ SPADHELP=\ ${HELP}/Divisor.help \ ${HELP}/DivisorCategory.help \ ${HELP}/DoubleFloat.help \ + ${HELP}/DoubleFloatMatrix.help \ ${HELP}/DoubleFloatVector.help \ ${HELP}/DoublyLinkedAggregate.help \ ${HELP}/DrawOption.help \ @@ -18047,6 +18063,7 @@ REGRESS= \ Divisor.regress \ DivisorCategory.regress \ DoubleFloat.regress \ + DoubleFloatMatrix.regress \ DoubleFloatVector.regress \ DoublyLinkedAggregate.regress \ DrawOption.regress \ @@ -20156,6 +20173,16 @@ ${HELP}/DoubleFloat.help: ${BOOKS}/bookvol10.3.pamphlet >${INPUT}/DoubleFloat.input @echo "DoubleFloat (DFLOAT)" >>${HELPFILE} +${HELP}/DoubleFloatMatrix.help: ${BOOKS}/bookvol10.3.pamphlet + @echo 7210 create DoubleFloatMatrix.help from \ + ${BOOKS}/bookvol10.3.pamphlet + @${TANGLE} -R"DoubleFloatMatrix.help" ${BOOKS}/bookvol10.3.pamphlet \ + >${HELP}/DoubleFloatMatrix.help + @cp ${HELP}/DoubleFloatMatrix.help ${HELP}/DFMAT.help + @${TANGLE} -R"DoubleFloatMatrix.input" ${BOOKS}/bookvol10.3.pamphlet \ + >${INPUT}/DoubleFloatMatrix.input + @echo "DoubleFloatMatrix (DFMAT)" >>${HELPFILE} + ${HELP}/DoubleFloatVector.help: ${BOOKS}/bookvol10.3.pamphlet @echo 7210 create DoubleFloatVector.help from \ ${BOOKS}/bookvol10.3.pamphlet diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index b8a78d8..03ed1be 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2978,5 +2978,7 @@ books/bookvol10.4 fix Export3D unit test
books/bookvol10.3 fix DoubleFloatVector unit test, help file
20100703.06.tpd.patch src/input/Makefile add TESTSET=notests
+20100704.01.wxh.patch +books/bookvol10.3 add DoubleFloatMatrix