diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet index da31f0c..ecedeeb 100644 --- a/books/bookvol10.3.pamphlet +++ b/books/bookvol10.3.pamphlet @@ -18994,6 +18994,325 @@ Complex(R:CommutativeRing): ComplexCategory(R) with @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain CDFVEC ComplexDoubleFloatVector} +<>= +)set break resume +)sys rm -f ComplexDoubleFloatVector.output +)spool ComplexDoubleFloatVector.output +)set message test on +)set message auto off +)clear all + +--S 1 of 6 +)show ComplexDoubleFloatVector +--R ComplexDoubleFloatVector is a domain constructor +--R Abbreviation for ComplexDoubleFloatVector is CDFVEC +--R This constructor is exposed in this frame. +--R Issue )edit bookvol10.3.pamphlet to see algebra source code for CDFVEC +--R +--R------------------------------- Operations -------------------------------- +--R concat : List % -> % concat : (%,%) -> % +--R copy : % -> % delete : (%,Integer) -> % +--R empty : () -> % empty? : % -> Boolean +--R eq? : (%,%) -> Boolean index? : (Integer,%) -> Boolean +--R indices : % -> List Integer insert : (%,%,Integer) -> % +--R qnew : Integer -> % reverse : % -> % +--R sample : () -> % +--R #? : % -> NonNegativeInteger if $ has finiteAggregate +--R ?*? : (%,Complex DoubleFloat) -> % if Complex DoubleFloat has MONOID +--R ?*? : (Complex DoubleFloat,%) -> % if Complex DoubleFloat has MONOID +--R ?*? : (Integer,%) -> % if Complex DoubleFloat has ABELGRP +--R ?+? : (%,%) -> % if Complex DoubleFloat has ABELSG +--R ?-? : (%,%) -> % if Complex DoubleFloat has ABELGRP +--R -? : % -> % if Complex DoubleFloat has ABELGRP +--R ? Boolean if Complex DoubleFloat has ORDSET +--R ?<=? : (%,%) -> Boolean if Complex DoubleFloat has ORDSET +--R ?=? : (%,%) -> Boolean if Complex DoubleFloat has SETCAT +--R ?>? : (%,%) -> Boolean if Complex DoubleFloat has ORDSET +--R ?>=? : (%,%) -> Boolean if Complex DoubleFloat has ORDSET +--R any? : ((Complex DoubleFloat -> Boolean),%) -> Boolean if $ has finiteAggregate +--R coerce : % -> OutputForm if Complex DoubleFloat has SETCAT +--R concat : (Complex DoubleFloat,%) -> % +--R concat : (%,Complex DoubleFloat) -> % +--R construct : List Complex DoubleFloat -> % +--R convert : % -> InputForm if Complex DoubleFloat has KONVERT INFORM +--R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable +--R count : (Complex DoubleFloat,%) -> NonNegativeInteger if $ has finiteAggregate and Complex DoubleFloat has SETCAT +--R count : ((Complex DoubleFloat -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate +--R cross : (%,%) -> % if Complex DoubleFloat has RING +--R delete : (%,UniversalSegment Integer) -> % +--R dot : (%,%) -> Complex DoubleFloat if Complex DoubleFloat has RING +--R ?.? : (%,UniversalSegment Integer) -> % +--R ?.? : (%,Integer) -> Complex DoubleFloat +--R elt : (%,Integer,Complex DoubleFloat) -> Complex DoubleFloat +--R entries : % -> List Complex DoubleFloat +--R entry? : (Complex DoubleFloat,%) -> Boolean if $ has finiteAggregate and Complex DoubleFloat has SETCAT +--R eval : (%,List Complex DoubleFloat,List Complex DoubleFloat) -> % if Complex DoubleFloat has EVALAB COMPLEX DFLOAT and Complex DoubleFloat has SETCAT +--R eval : (%,Complex DoubleFloat,Complex DoubleFloat) -> % if Complex DoubleFloat has EVALAB COMPLEX DFLOAT and Complex DoubleFloat has SETCAT +--R eval : (%,Equation Complex DoubleFloat) -> % if Complex DoubleFloat has EVALAB COMPLEX DFLOAT and Complex DoubleFloat has SETCAT +--R eval : (%,List Equation Complex DoubleFloat) -> % if Complex DoubleFloat has EVALAB COMPLEX DFLOAT and Complex DoubleFloat has SETCAT +--R every? : ((Complex DoubleFloat -> Boolean),%) -> Boolean if $ has finiteAggregate +--R fill! : (%,Complex DoubleFloat) -> % if $ has shallowlyMutable +--R find : ((Complex DoubleFloat -> Boolean),%) -> Union(Complex DoubleFloat,"failed") +--R first : % -> Complex DoubleFloat if Integer has ORDSET +--R hash : % -> SingleInteger if Complex DoubleFloat has SETCAT +--R insert : (Complex DoubleFloat,%,Integer) -> % +--R latex : % -> String if Complex DoubleFloat has SETCAT +--R length : % -> Complex DoubleFloat if Complex DoubleFloat has RADCAT and Complex DoubleFloat has RING +--R less? : (%,NonNegativeInteger) -> Boolean +--R magnitude : % -> Complex DoubleFloat if Complex DoubleFloat has RADCAT and Complex DoubleFloat has RING +--R map : (((Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat),%,%) -> % +--R map : ((Complex DoubleFloat -> Complex DoubleFloat),%) -> % +--R map! : ((Complex DoubleFloat -> Complex DoubleFloat),%) -> % if $ has shallowlyMutable +--R max : (%,%) -> % if Complex DoubleFloat has ORDSET +--R maxIndex : % -> Integer if Integer has ORDSET +--R member? : (Complex DoubleFloat,%) -> Boolean if $ has finiteAggregate and Complex DoubleFloat has SETCAT +--R members : % -> List Complex DoubleFloat if $ has finiteAggregate +--R merge : (%,%) -> % if Complex DoubleFloat has ORDSET +--R merge : (((Complex DoubleFloat,Complex DoubleFloat) -> Boolean),%,%) -> % +--R min : (%,%) -> % if Complex DoubleFloat has ORDSET +--R minIndex : % -> Integer if Integer has ORDSET +--R more? : (%,NonNegativeInteger) -> Boolean +--R new : (NonNegativeInteger,Complex DoubleFloat) -> % +--R outerProduct : (%,%) -> Matrix Complex DoubleFloat if Complex DoubleFloat has RING +--R parts : % -> List Complex DoubleFloat if $ has finiteAggregate +--R position : (Complex DoubleFloat,%,Integer) -> Integer if Complex DoubleFloat has SETCAT +--R position : (Complex DoubleFloat,%) -> Integer if Complex DoubleFloat has SETCAT +--R position : ((Complex DoubleFloat -> Boolean),%) -> Integer +--R qelt : (%,Integer) -> Complex DoubleFloat +--R qsetelt! : (%,Integer,Complex DoubleFloat) -> Complex DoubleFloat if $ has shallowlyMutable +--R reduce : (((Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat),%) -> Complex DoubleFloat if $ has finiteAggregate +--R reduce : (((Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat),%,Complex DoubleFloat) -> Complex DoubleFloat if $ has finiteAggregate +--R reduce : (((Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat),%,Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat if $ has finiteAggregate and Complex DoubleFloat has SETCAT +--R remove : ((Complex DoubleFloat -> Boolean),%) -> % if $ has finiteAggregate +--R remove : (Complex DoubleFloat,%) -> % if $ has finiteAggregate and Complex DoubleFloat has SETCAT +--R removeDuplicates : % -> % if $ has finiteAggregate and Complex DoubleFloat has SETCAT +--R reverse! : % -> % if $ has shallowlyMutable +--R select : ((Complex DoubleFloat -> Boolean),%) -> % if $ has finiteAggregate +--R setelt : (%,UniversalSegment Integer,Complex DoubleFloat) -> Complex DoubleFloat if $ has shallowlyMutable +--R setelt : (%,Integer,Complex DoubleFloat) -> Complex DoubleFloat if $ has shallowlyMutable +--R size? : (%,NonNegativeInteger) -> Boolean +--R sort : % -> % if Complex DoubleFloat has ORDSET +--R sort : (((Complex DoubleFloat,Complex DoubleFloat) -> Boolean),%) -> % +--R sort! : % -> % if $ has shallowlyMutable and Complex DoubleFloat has ORDSET +--R sort! : (((Complex DoubleFloat,Complex DoubleFloat) -> Boolean),%) -> % if $ has shallowlyMutable +--R sorted? : % -> Boolean if Complex DoubleFloat has ORDSET +--R sorted? : (((Complex DoubleFloat,Complex DoubleFloat) -> Boolean),%) -> Boolean +--R swap! : (%,Integer,Integer) -> Void if $ has shallowlyMutable +--R vector : List Complex DoubleFloat -> % +--R zero : NonNegativeInteger -> % if Complex DoubleFloat has ABELMON +--R ?~=? : (%,%) -> Boolean if Complex DoubleFloat has SETCAT +--R +--E 1 + +--S 2 of 6 +t1:CDFVEC:=qnew(5) +--R +--R (1) [0.,0.,0.,0.,0.] +--R Type: ComplexDoubleFloatVector +--E 2 + +-- NOTE: CDFVEC arrays are 0-based, normal Axiom arrays are 1-based +--S 3 of 6 +t1.1:=1.0+2*%i +--R +--R (2) 1. + 2. %i +--R Type: Complex DoubleFloat +--E 3 + +--S 4 of 6 +t1 +--R +--R (3) [0.,1. + 2. %i,0.,0.,0.] +--R Type: ComplexDoubleFloatVector +--E 4 + +--S 5 of 6 +t1.0:=3.0+4.0*%i +--R +--R (4) 3. + 4. %i +--R Type: Complex DoubleFloat +--E 5 + +--S 6 of 6 +t1 +--R +--R (5) [3. + 4. %i,1. + 2. %i,0.,0.,0.] +--R Type: ComplexDoubleFloatVector +--E 6 + +)spool +)lisp (bye) + +@ + +<>= +==================================================================== +ComplexDoubleFloatVector examples +==================================================================== +This domain creates a lisp simple array of machine complex doublefloats. +It provides one new function called qnew which takes an integer +that gives the array length. + +NOTE: Unlike normal Axiom arrays the ComplexDoubleFloatVector arrays +are 0-based so the first element is 0. Axiom arrays normally +start at 1. + +t1:CDFVEC:=qnew(5) + [0.,0.,0.,0.,0.] + +t1.1:=1.0+2*%i + 1. + 2. %i + +t1 + [0.,1. + 2. %i,0.,0.,0.] + +t1.0:=3.0+4.0*%i + 3. + 4. %i + +t1 + + [3. + 4. %i,1. + 2. %i,0.,0.,0.] + +See Also: +o )help Float +o )help DoubleFloat +o )show ComplexDoubleFloatVector + +@ +\pagehead{ComplexDoubleFloatVector}{CDFVEC} +\pagepic{ps/v103complexdoublefloatvector.eps}{CDFVEC}{1.00} + +{\bf Exports:}\\ +\begin{tabular}{llll} +\cross{CDFVEC}{\#?} & +\cross{CDFVEC}{-?} & +\cross{CDFVEC}{?*?} & +\cross{CDFVEC}{?+?} \\ +\cross{CDFVEC}{?-?} & +\cross{CDFVEC}{?.?} & +\cross{CDFVEC}{?$<=$?} & +\cross{CDFVEC}{?$<$?} \\ +\cross{CDFVEC}{?=?} & +\cross{CDFVEC}{?$>=$?} & +\cross{CDFVEC}{?$>$?} & +\cross{CDFVEC}{?\~{}=?} \\ +\cross{CDFVEC}{any?} & +\cross{CDFVEC}{coerce} & +\cross{CDFVEC}{concat} & +\cross{CDFVEC}{construct} \\ +\cross{CDFVEC}{convert} & +\cross{CDFVEC}{copy} & +\cross{CDFVEC}{copyInto!} & +\cross{CDFVEC}{count} \\ +\cross{CDFVEC}{cross} & +\cross{CDFVEC}{delete} & +\cross{CDFVEC}{dot} & +\cross{CDFVEC}{elt} \\ +\cross{CDFVEC}{empty} & +\cross{CDFVEC}{empty?} & +\cross{CDFVEC}{entries} & +\cross{CDFVEC}{entry?} \\ +\cross{CDFVEC}{eq?} & +\cross{CDFVEC}{eval} & +\cross{CDFVEC}{every?} & +\cross{CDFVEC}{fill!} \\ +\cross{CDFVEC}{find} & +\cross{CDFVEC}{first} & +\cross{CDFVEC}{hash} & +\cross{CDFVEC}{index?} \\ +\cross{CDFVEC}{indices} & +\cross{CDFVEC}{insert} & +\cross{CDFVEC}{latex} & +\cross{CDFVEC}{length} \\ +\cross{CDFVEC}{less?} & +\cross{CDFVEC}{magnitude} & +\cross{CDFVEC}{map} & +\cross{CDFVEC}{map!} \\ +\cross{CDFVEC}{max} & +\cross{CDFVEC}{maxIndex} & +\cross{CDFVEC}{member?} & +\cross{CDFVEC}{members} \\ +\cross{CDFVEC}{merge} & +\cross{CDFVEC}{min} & +\cross{CDFVEC}{minIndex} & +\cross{CDFVEC}{more?} \\ +\cross{CDFVEC}{new} & +\cross{CDFVEC}{outerProduct} & +\cross{CDFVEC}{parts} & +\cross{CDFVEC}{position} \\ +\cross{CDFVEC}{qelt} & +\cross{CDFVEC}{qnew} & +\cross{CDFVEC}{qsetelt!} & +\cross{CDFVEC}{reduce} \\ +\cross{CDFVEC}{remove} & +\cross{CDFVEC}{removeDuplicates} & +\cross{CDFVEC}{reverse} & +\cross{CDFVEC}{reverse!} \\ +\cross{CDFVEC}{sample} & +\cross{CDFVEC}{select} & +\cross{CDFVEC}{setelt} & +\cross{CDFVEC}{size?} \\ +\cross{CDFVEC}{sort} & +\cross{CDFVEC}{sort!} & +\cross{CDFVEC}{sorted?} & +\cross{CDFVEC}{swap!} \\ +\cross{CDFVEC}{vector} & +\cross{CDFVEC}{zero} && +\end{tabular} + +<>= +)abbrev domain CDFVEC ComplexDoubleFloatVector +++ Author: Waldek Hebisch +++ Description: This is a low-level domain which implements vectors +++ (one dimensional arrays) of complex double precision floating point +++ numbers. Indexing is 0 based, there is no bound checking (unless +++ provided by lower level). +ComplexDoubleFloatVector : VectorCategory Complex DoubleFloat with + qnew : Integer -> % + ++ qnew(n) creates a new uninitialized vector of length n. + ++ + ++X t1:CDFVEC:=qnew 7 + vector: List Complex DoubleFloat -> % + ++ vector(l) converts the list l to a vector. + ++ + ++X t1:List(Complex(DoubleFloat)):=[1+2*%i,3+4*%i,-5-6*%i] + ++X t2:CDFVEC:=vector(t1) + == add + + Qelt1 ==> CDELT$Lisp + Qsetelt1 ==> CDSETELT$Lisp + + qelt(x, i) == Qelt1(x, i) + qsetelt_!(x, i, s) == Qsetelt1(x, i, s) + Qsize ==> CDLEN$Lisp + Qnew ==> MAKE_-CDOUBLE_-VECTOR$Lisp + + #x == Qsize x + minIndex x == 0 + empty() == Qnew(0$Lisp) + qnew(n) == Qnew(n) + new(n, x) == + res := Qnew(n) + fill_!(res, x) + qelt(x, i) == Qelt1(x, i) + elt(x:%, i:Integer) == Qelt1(x, i) + qsetelt_!(x, i, s) == Qsetelt1(x, i, s) + setelt(x : %, i : Integer, s : Complex DoubleFloat) == + Qsetelt1(x, i, s) + fill_!(x, s) == + for i in 0..((Qsize(x)) - 1) repeat Qsetelt1(x, i, s) + x + +@ +<>= +"CDFVEC" [color="#88FF44",href="bookvol10.3.pdf#nameddest=CDFVEC", + shape=ellipse] +"COMPCAT" [color=lightblue,href="bookvol10.2.pdf#nameddest=COMPCAT"]; +"CDFVEC" -> "COMPCAT" + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain CONTFRAC ContinuedFraction} <>= @@ -148409,6 +148728,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 2d14288..db0feee 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -23889,6 +23889,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|CommonDenominator| . CDEN) (|Commutator| . COMM) (|Complex| . COMPLEX) + (|ComplexDoubleFloatVector| . CDFVEC) (|ComplexFactorization| . COMPFACT) (|ComplexFunctions2| . COMPLEX2) (|ComplexRootPackage| . CMPLXRT) @@ -37948,7 +37949,8 @@ an AssociationList representation \section{DoubleFloatVector} Double Float Vectors are simple arrays of lisp double-floats -made available at the Spad language level. +made available at the Spad language level. Note that these vectors +are 0 based whereas other Spad language vectors are 1-based. \defmacro{dlen}{DoubleFloatVector Qsize function support} <>= @@ -37985,6 +37987,58 @@ made available at the Spad language level. @ +\section{ComplexDoubleFloatVector} +Complex Double Float Vectors are simple arrays of lisp double-floats +made available at the Spad language level. Note that these vectors +are 0 based whereas other Spad language vectors are 1-based. +Complex array is implemented as an array of doubles. Each complex number +occupies two positions in the real array. + +\defmacro{make-cdouble-vector}{ComplexDoubleFloatVector Qnew function support} +<>= +(defmacro make-cdouble-vector (n) + `(make-array (list (* 2 ,n)) :element-type 'double-float)) + +@ + +\defmacro{cdelt}{ComplexDoubleFloatVector Qelt1 function support} +<>= +(defmacro CDELT(ov oi) + (let ((v (gensym)) + (i (gensym))) + `(let ((,v ,ov) + (,i ,oi)) + (cons + (aref (the (simple-array double-float (*)) ,v) (* 2 ,i)) + (aref (the (simple-array double-float (*)) ,v) (+ (* 2 ,i) 1)))))) + +@ + +\defmacro{cdsetelt}{ComplexDoubleFloatVector Qsetelt1 function support} +<>= +(defmacro cdsetelt(ov oi os) + (let ((v (gensym)) + (i (gensym)) + (s (gensym))) + `(let ((,v ,ov) + (,i ,oi) + (,s ,os)) + (setf (aref (the (simple-array double-float (*)) ,v) (* 2 ,i)) + (car ,s)) + (setf (aref (the (simple-array double-float (*)) ,v) (+ (* 2 ,i) 1)) + (cdr ,s)) + ,s))) + +@ + +\defmacro{cdlen}{ComplexDoubleFloatVector Qsize function support} +<>= +(defmacro cdlen(v) + `(truncate (length (the (simple-array double-float (*)) ,v)) 2)) + +@ + + \section{Integer} \defun{divide2}{Integer divide function support} Note that this is defined as a SPADReplace function in Integer @@ -39636,6 +39690,9 @@ This needs to work off the internal exposure list, not the file. <> <> <> +<> +<> +<> <> <> <> @@ -39675,6 +39732,7 @@ This needs to work off the internal exposure list, not the file. <> <> <> +<> <> <> <> diff --git a/books/ps/v103complexdoublefloatvector.eps b/books/ps/v103complexdoublefloatvector.eps new file mode 100644 index 0000000..190494d --- /dev/null +++ b/books/ps/v103complexdoublefloatvector.eps @@ -0,0 +1,258 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Graphviz version 2.20.2 (Mon Mar 30 10:09:11 UTC 2009) +%%For: (root) root +%%Title: pic +%%Pages: 1 +%%BoundingBox: 36 36 146 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 146 152 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 110 116 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% CDFVEC +gsave +[ /Rect [ 0 72 102 108 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=CDFVEC) >> + /Subtype /Link +/ANN pdfmark +0.273 0.733 1.000 nodecolor +51 90 50.92 18 ellipse_path fill +1 setlinewidth +filled +0.273 0.733 1.000 nodecolor +51 90 50.92 18 ellipse_path stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +22 85.9 moveto 58 (CDFVEC) alignedtext +grestore +% COMPCAT +gsave +[ /Rect [ 8 0 94 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=COMPCAT) >> + /Subtype /Link +/ANN pdfmark +0.537 0.247 0.902 nodecolor +newpath 94 36 moveto +8 36 lineto +8 0 lineto +94 0 lineto +closepath fill +1 setlinewidth +filled +0.537 0.247 0.902 nodecolor +newpath 94 36 moveto +8 36 lineto +8 0 lineto +94 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +16 13.9 moveto 70 (COMPCAT) alignedtext +grestore +% CDFVEC->COMPCAT +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 51 72 moveto +51 64 51 55 51 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 54.5 46 moveto +51 36 lineto +47.5 46 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 54.5 46 moveto +51 36 lineto +47.5 46 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +end +restore +%%EOF diff --git a/changelog b/changelog index c80ef8d..8b66a39 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20100703 wxh src/axiom-website/patches.html 20100703.03.wxh.patch +20100703 wxh src/algebra/Makefile help and test for ComplexDoubleFloatVector +20100703 wxh books/bookvol5 expose ComplexDoubleFloatVector, add macros +20100703 wxh books/bookvol10.3 add ComplexDoubleFloatVector +20100703 wxh books/ps/v103complexdoublefloatvector.eps added 20100703 wxh src/axiom-website/patches.html 20100703.02.wxh.patch 20100703 wxh src/algebra/Makefile help and test files for DoubleFloatVector 20100703 wxh books/bookvol5 expose DFVEC, add support macros diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 2aac71f..2a34097 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -12369,6 +12369,7 @@ LAYER17=\ ${OUT}/ALGSC.o ${OUT}/AN.o ${OUT}/APPRULE.o ${OUT}/ASP19.o \ ${OUT}/ASP20.o ${OUT}/ASP31.o ${OUT}/ASP35.o ${OUT}/ASP41.o \ ${OUT}/ASP42.o ${OUT}/ASP74.o ${OUT}/ASP77.o ${OUT}/ASP80.o \ + ${OUT}/CDFVEC.o \ ${OUT}/CINTSLPE.o ${OUT}/COMBF.o ${OUT}/COMPFACT.o ${OUT}/COMPLEX.o \ ${OUT}/COMPLPAT.o ${OUT}/CMPLXRT.o ${OUT}/CPMATCH.o ${OUT}/CRFP.o \ ${OUT}/CTRIGMNP.o ${OUT}/D01WGTS.o ${OUT}/D02AGNT.o ${OUT}/D03EEFA.o \ @@ -12784,6 +12785,23 @@ LAYER17=\ "ASP80" -> "FS" /*"ASP80" -> "GROUP"*/ +"CDFVEC" [color="#88FF44",href="bookvol10.3.pdf#nameddest=CDFVEC"] +"CDFVEC" -> "COMPCAT" +/*"CDFVEC" -> {"VECTCAT"; "A1AGG"; "FLAGG"; "LNAGG"; "IXAGG"; "HOAGG"}*/ +/*"CDFVEC" -> {"AGG"; "TYPE"; "SETCAT"; "BASTYPE"; "KOERCE"; "EVALAB"*/ +/*"CDFVEC" -> {"IEVALAB"; "ELTAGG"; "ELTAB"; "CLAGG"; "KONVERT"; "ORDSET"}*/ +/*"CDFVEC" -> {"FPS"; "RNS"; "FIELD"; "EUCDOM"; "PID"; "GCDDOM"; "INTDOM"}*/ +/*"CDFVEC" -> {"COMRING"; "RING"; "RNG"; "ABELGRP"; "CABMON"; "ABELMON"}*/ +/*"CDFVEC" -> {"ABELSG"; "SGROUP"; "MONOID"; "LMODULE"; "BMODULE"; "RMODULE"}*/ +/*"CDFVEC" -> {"ALGEBRA"; "MODULE"; "ENTIRER"; "UFD"; "DIVRING"; "ORDRING"}*/ +/*"CDFVEC" -> {"OAGROUP"; "OCAMON"; "OAMON"; "OASGP"; "REAL"; "RETRACT"}*/ +/*"CDFVEC" -> {"RADCAT"; "PATMAB"; "CHARZ"; "INT"; "SINT"; "NNI"; "MONOGEN"}*/ +/*"CDFVEC" -> {"FRAMALG"; "FINRALG"; "CHARNZ"; "FRETRCT"; "FLINEXP"}*/ +/*"CDFVEC" -> {"LINEXP"; "FINITE"; "DIFEXT"; "DIFRING"; "PDRING"; "FFIELDC"}*/ +/*"CDFVEC" -> {"FPC"; "STEP"; "FEVALAB"; "FPATMAB"; "PATAB"; "TRANFUN"}*/ +/*"CDFVEC" -> {"TRIGCAT"; "ATRIG"; "HYPCAT"; "AHYP"; "ELEMFUN"; "PFECAT"}*/ +/*"CDFVEC" -> {"OM"; "SPFCAT"; "INS"; "OINTDOM"; "CFCAT"}*/ + "CINTSLPE" [color="#FF4488",href="bookvol10.4.pdf#nameddest=CINTSLPE"] /*"CINTSLPE" -> {"INS"; "UFD"; "GCDDOM"; "INTDOM"; "COMRING"; "RING"}*/ /*"CINTSLPE" -> {"RNG"; "ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"; "SETCAT"}*/ @@ -17310,6 +17328,7 @@ SPADHELP=\ ${HELP}/Commutator.help \ ${HELP}/Complex.help \ ${HELP}/ComplexCategory.help \ + ${HELP}/ComplexDoubleFloatVector.help \ ${HELP}/ContinuedFraction.help \ ${HELP}/ConvertibleTo.help \ ${HELP}/CycleIndicators.help \ @@ -17998,6 +18017,7 @@ REGRESS= \ Commutator.regress \ Complex.regress \ ComplexCategory.regress \ + ComplexDoubleFloatVector.regress \ ContinuedFraction.regress \ ConvertibleTo.regress \ CycleIndicators.regress \ @@ -19798,6 +19818,18 @@ ${HELP}/ContinuedFraction.help: ${BOOKS}/bookvol10.3.pamphlet >${INPUT}/ContinuedFraction.input @echo "ContinuedFraction (CONTFRAC)" >>${HELPFILE} +${HELP}/ComplexDoubleFloatVector.help: ${BOOKS}/bookvol10.3.pamphlet + @echo 7150 create ComplexDoubleFloatVector.help from \ + ${BOOKS}/bookvol10.3.pamphlet + @${TANGLE} -R"ComplexDoubleFloatVector.help" \ + ${BOOKS}/bookvol10.3.pamphlet \ + >${HELP}/ComplexDoubleFloatVector.help + @cp ${HELP}/ComplexDoubleFloatVector.help ${HELP}/CDFVEC.help + @${TANGLE} -R"ComplexDoubleFloatVector.input" \ + ${BOOKS}/bookvol10.3.pamphlet \ + >${INPUT}/ComplexDoubleFloatVector.input + @echo "ComplexDoubleFloatVector (CDFVEC)" >>${HELPFILE} + ${HELP}/ConvertibleTo.help: ${BOOKS}/bookvol10.2.pamphlet @echo 5000 create ConvertibleTo.help from \ ${BOOKS}/bookvol10.2.pamphlet diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index b50e256..fd6f6cc 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2970,5 +2970,7 @@ src/input/Makefile segment test set choice from command line
books/bookvol6 fix deleted variable from axiom script
20100703.02.wxh.patch books/bookvol10.3 add DoubleFloatVector
+20100703.03.wxh.patch +books/bookvol10.3 add ComplexDoubleFloatVector