diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet index f906c5f..344a8e0 100644 --- a/books/bookvol10.3.pamphlet +++ b/books/bookvol10.3.pamphlet @@ -141788,6 +141788,371 @@ UniversalSegment(S: Type): SegmentCategory(S) with \end{chunk} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain U8VEC U8Vector} + +\begin{chunk}{U8Vector.input} +)set break resume +)sys rm -f U8Vector.output +)spool U8Vector.output +)set message test on +)set message auto off +)clear all + +--S 1 of 12 +t1:=empty()$U8Vector +--R +--R (1) [] +--R Type: U8Vector +--E 1 + +--S 2 of 12 +t2:=new(10,10)$U8Vector +--R +--R (2) [10,10,10,10,10,10,10,10,10,10] +--R Type: U8Vector +--E 2 + +--S 3 of 12 +t3:=qelt(t2,2) +--R +--R (3) 10 +--R Type: PositiveInteger +--E 3 + +--S 4 of 12 +t4:=elt(t2,2) +--R +--R (4) 10 +--R Type: PositiveInteger +--E 4 + +--S 5 of 12 +t5:=t2.2 +--R +--R (5) 10 +--R Type: PositiveInteger +--E 5 + +--S 6 of 12 +t6:=qsetelt!(t2,2,5) +--R +--R (6) 5 +--R Type: PositiveInteger +--E 6 + +--S 7 of 12 +t2.2 +--R +--R (7) 5 +--R Type: PositiveInteger +--E 7 + +--S 8 of 12 +t7:=setelt(t2,3,6) +--R +--R (8) 6 +--R Type: PositiveInteger +--E 8 + +--S 9 of 12 +t2.3 +--R +--R (9) 6 +--R Type: PositiveInteger +--E 9 + +--S 10 of 12 +#t2 +--R +--R (10) 10 +--R Type: PositiveInteger +--E 10 + +--S 11 of 12 +t8:=fill!(t2,7) +--R +--R (11) [7,7,7,7,7,7,7,7,7,7] +--R Type: U8Vector +--E 11 + +--S 12 of 12 +)show U8Vector +--R U8Vector is a domain constructor +--R Abbreviation for U8Vector is U8VEC +--R This constructor is exposed in this frame. +--R Issue )edit bookvol10.3.pamphlet to see algebra source code for U8VEC +--R +--R------------------------------- Operations -------------------------------- +--R concat : List(%) -> % concat : (%,%) -> % +--R concat : (Integer,%) -> % concat : (%,Integer) -> % +--R construct : List(Integer) -> % copy : % -> % +--R delete : (%,Integer) -> % ?.? : (%,Integer) -> Integer +--R empty : () -> % empty? : % -> Boolean +--R entries : % -> List(Integer) eq? : (%,%) -> Boolean +--R index? : (Integer,%) -> Boolean indices : % -> List(Integer) +--R insert : (%,%,Integer) -> % qelt : (%,Integer) -> Integer +--R reverse : % -> % sample : () -> % +--R #? : % -> NonNegativeInteger if $ has finiteAggregate +--R ? Boolean if Integer has ORDSET +--R ?<=? : (%,%) -> Boolean if Integer has ORDSET +--R ?=? : (%,%) -> Boolean if Integer has SETCAT +--R ?>? : (%,%) -> Boolean if Integer has ORDSET +--R ?>=? : (%,%) -> Boolean if Integer has ORDSET +--R any? : ((Integer -> Boolean),%) -> Boolean if $ has finiteAggregate +--R coerce : % -> OutputForm if Integer has SETCAT +--R convert : % -> InputForm if Integer has KONVERT(INFORM) +--R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable +--R count : (Integer,%) -> NonNegativeInteger if $ has finiteAggregate and Integer has SETCAT +--R count : ((Integer -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate +--R delete : (%,UniversalSegment(Integer)) -> % +--R ?.? : (%,UniversalSegment(Integer)) -> % +--R elt : (%,Integer,Integer) -> Integer +--R entry? : (Integer,%) -> Boolean if $ has finiteAggregate and Integer has SETCAT +--R eval : (%,List(Integer),List(Integer)) -> % if Integer has EVALAB(INT) and Integer has SETCAT +--R eval : (%,Integer,Integer) -> % if Integer has EVALAB(INT) and Integer has SETCAT +--R eval : (%,Equation(Integer)) -> % if Integer has EVALAB(INT) and Integer has SETCAT +--R eval : (%,List(Equation(Integer))) -> % if Integer has EVALAB(INT) and Integer has SETCAT +--R every? : ((Integer -> Boolean),%) -> Boolean if $ has finiteAggregate +--R fill! : (%,Integer) -> % if $ has shallowlyMutable +--R find : ((Integer -> Boolean),%) -> Union(Integer,"failed") +--R first : % -> Integer if Integer has ORDSET +--R hash : % -> SingleInteger if Integer has SETCAT +--R insert : (Integer,%,Integer) -> % +--R latex : % -> String if Integer has SETCAT +--R less? : (%,NonNegativeInteger) -> Boolean +--R map : (((Integer,Integer) -> Integer),%,%) -> % +--R map : ((Integer -> Integer),%) -> % +--R map! : ((Integer -> Integer),%) -> % if $ has shallowlyMutable +--R max : (%,%) -> % if Integer has ORDSET +--R maxIndex : % -> Integer if Integer has ORDSET +--R member? : (Integer,%) -> Boolean if $ has finiteAggregate and Integer has SETCAT +--R members : % -> List(Integer) if $ has finiteAggregate +--R merge : (%,%) -> % if Integer has ORDSET +--R merge : (((Integer,Integer) -> Boolean),%,%) -> % +--R min : (%,%) -> % if Integer has ORDSET +--R minIndex : % -> Integer if Integer has ORDSET +--R more? : (%,NonNegativeInteger) -> Boolean +--R new : (NonNegativeInteger,Integer) -> % +--R parts : % -> List(Integer) if $ has finiteAggregate +--R position : (Integer,%,Integer) -> Integer if Integer has SETCAT +--R position : (Integer,%) -> Integer if Integer has SETCAT +--R position : ((Integer -> Boolean),%) -> Integer +--R qsetelt! : (%,Integer,Integer) -> Integer if $ has shallowlyMutable +--R reduce : (((Integer,Integer) -> Integer),%) -> Integer if $ has finiteAggregate +--R reduce : (((Integer,Integer) -> Integer),%,Integer) -> Integer if $ has finiteAggregate +--R reduce : (((Integer,Integer) -> Integer),%,Integer,Integer) -> Integer if $ has finiteAggregate and Integer has SETCAT +--R remove : ((Integer -> Boolean),%) -> % if $ has finiteAggregate +--R remove : (Integer,%) -> % if $ has finiteAggregate and Integer has SETCAT +--R removeDuplicates : % -> % if $ has finiteAggregate and Integer has SETCAT +--R reverse! : % -> % if $ has shallowlyMutable +--R select : ((Integer -> Boolean),%) -> % if $ has finiteAggregate +--R setelt : (%,UniversalSegment(Integer),Integer) -> Integer if $ has shallowlyMutable +--R setelt : (%,Integer,Integer) -> Integer if $ has shallowlyMutable +--R size? : (%,NonNegativeInteger) -> Boolean +--R sort : % -> % if Integer has ORDSET +--R sort : (((Integer,Integer) -> Boolean),%) -> % +--R sort! : % -> % if $ has shallowlyMutable and Integer has ORDSET +--R sort! : (((Integer,Integer) -> Boolean),%) -> % if $ has shallowlyMutable +--R sorted? : % -> Boolean if Integer has ORDSET +--R sorted? : (((Integer,Integer) -> Boolean),%) -> Boolean +--R swap! : (%,Integer,Integer) -> Void if $ has shallowlyMutable +--R ?~=? : (%,%) -> Boolean if Integer has SETCAT +--R +--E 12 + +)spool +)lisp (bye) +\end{chunk} +\begin{chunk}{U8Vector.help} +==================================================================== +U8Vector examples +==================================================================== + +t1:=empty()$U8Vector + [] + +t2:=new(10,10)$U8Vector + [10,10,10,10,10,10,10,10,10,10] + +t3:=qelt(t2,2) + 10 + +t4:=elt(t2,2) + 10 + +t5:=t2.2 + 10 + +t6:=qsetelt!(t2,2,5) + 5 + +t2.2 + 5 + +t7:=setelt(t2,3,6) + 6 + +t2.3 + 6 + +#t2 + 10 + +t8:=fill!(t2,7) + [7,7,7,7,7,7,7,7,7,7] + +See Also: +o )show U8Vector +o )show U16Vector +o )show U32Vector + +\end{chunk} +\pagehead{U8Vector}{U8VEC} +\pagepic{ps/v103u8vector.eps}{U8VEC}{1.00} +{\bf See}\\ +\pageto{Segment}{SEG} +\pageto{SegmentBinding}{SEGBIND} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{U8VEC}{\#{}?} & +\cross{U8VEC}{?.?} & +\cross{U8VEC}{?.?} & +\cross{U8VEC}{?$<=$?} & +\cross{U8VEC}{?$<$?} \\ +\cross{U8VEC}{?=?} & +\cross{U8VEC}{?$>=$?} & +\cross{U8VEC}{?$>$?} & +\cross{U8VEC}{?\~{}=?} & +\cross{U8VEC}{any?} \\ +\cross{U8VEC}{coerce} & +\cross{U8VEC}{concat} & +\cross{U8VEC}{construct} & +\cross{U8VEC}{convert} & +\cross{U8VEC}{copy} \\ +\cross{U8VEC}{copyInto!} & +\cross{U8VEC}{count} & +\cross{U8VEC}{delete} & +\cross{U8VEC}{elt} & +\cross{U8VEC}{empty} \\ +\cross{U8VEC}{empty?} & +\cross{U8VEC}{entries} & +\cross{U8VEC}{entry?} & +\cross{U8VEC}{eq?} & +\cross{U8VEC}{eval} \\ +\cross{U8VEC}{every?} & +\cross{U8VEC}{fill!} & +\cross{U8VEC}{find} & +\cross{U8VEC}{first} & +\cross{U8VEC}{hash} \\ +\cross{U8VEC}{index?} & +\cross{U8VEC}{indices} & +\cross{U8VEC}{insert} & +\cross{U8VEC}{latex} & +\cross{U8VEC}{less?} \\ +\cross{U8VEC}{map} & +\cross{U8VEC}{map!} & +\cross{U8VEC}{max} & +\cross{U8VEC}{maxIndex} & +\cross{U8VEC}{member?} \\ +\cross{U8VEC}{members} & +\cross{U8VEC}{merge} & +\cross{U8VEC}{min} & +\cross{U8VEC}{minIndex} & +\cross{U8VEC}{more?} \\ +\cross{U8VEC}{new} & +\cross{U8VEC}{parts} & +\cross{U8VEC}{position} & +\cross{U8VEC}{qelt} & +\cross{U8VEC}{qsetelt!} \\ +\cross{U8VEC}{reduce} & +\cross{U8VEC}{remove} & +\cross{U8VEC}{removeDuplicates} & +\cross{U8VEC}{reverse} & +\cross{U8VEC}{reverse!} \\ +\cross{U8VEC}{sample} & +\cross{U8VEC}{select} & +\cross{U8VEC}{setelt} & +\cross{U8VEC}{size?} & +\cross{U8VEC}{sort} \\ +\cross{U8VEC}{sort!} & +\cross{U8VEC}{sorted?} & +\cross{U8VEC}{swap!} && +\end{tabular} + +\begin{chunk}{domain U8VEC U8Vector} +)abbrev domain U8VEC U8Vector +++ Author: Waldek Hebisch +++ Description: This is a low-level domain which implements vectors +++ (one dimensional arrays) of unsigned 8-bit numbers. Indexing +++ is 0 based, there is no bound checking (unless provided by +++ lower level). +U8Vector() : OneDimensionalArrayAggregate Integer == add + Qsize ==> QVLENU8$Lisp + Qelt ==> ELTU8$Lisp + Qsetelt ==> SETELTU8$Lisp + Qnew ==> GETREFVU8$Lisp + + #x == Qsize x + ++ returns the length of the vector + ++ + ++X t1:=new(10,10)$U8Vector + ++X #t1 + + minIndex x == 0 + ++ minIndex returns the minimum index of the vector + ++ + ++X t1:=new(10,10)$U8Vector + ++X minIndex t1 + + empty() == Qnew(0$Lisp, 0$Lisp) + ++ empty() returns a new vector of length 0 + ++ + ++X t1:=empty()$U8Vector + + new(n, x) == Qnew (n, x) + ++ new(n, x) returns a new vector of length n filled with x + ++ + ++X t1:=new(10,7)$U8Vector + + qelt(x, i) == Qelt(x, i) + ++ qelt(x, i) returns the i-th element of x + ++ + ++X t1:=new(10,7)$U8Vector + ++X qelt(t1,3) + + elt(x:%, i:Integer) == Qelt(x, i) + ++ elt(x, i) returns the i-th element of x + ++ + ++X t1:=new(10,7)$U8Vector + ++X elt(t1,3) + + qsetelt_!(x, i, s) == Qsetelt(x, i, s) + ++ qsetelt(x, i, s) modifies the i-th element of x to be s + ++ + ++X t1:=new(10,7)$U8Vector + ++X qsetelt!(t1,3,9) + + setelt(x:%, i:Integer, s:Integer) == Qsetelt(x, i, s) + ++ setelt(x, i, s) modifies the i-th element of x to be s + ++ + ++X t1:=new(10,7)$U8Vector + ++X setelt(t1,3,9) + + fill_!(x, s) == (for i in 0..((Qsize x) - 1) repeat Qsetelt(x, i, s); x) + ++ fill!(x, s) modifies a vector x so every element has value s + ++ + ++X t1:=new(10,7)$U8Vector + ++X fill!(t1,9) + +\end{chunk} +\begin{chunk}{U8VEC.dotabb} +"U8VEC" [color="#88FF44",href="bookvol10.3.pdf#nameddest=U8VEC"] +"A1AGG" [color="#4488FF",href="bookvol10.2.pdf#nameddest=A1AGG"] +"U8VEC" -> "A1AGG" + +\end{chunk} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain U16VEC U16Vector} \begin{chunk}{U16Vector.input} @@ -142002,6 +142367,7 @@ t8:=fill!(t2,7) [7,7,7,7,7,7,7,7,7,7] See Also: +o )show U8Vector o )show U16Vector o )show U32Vector @@ -142376,8 +142742,9 @@ t8:=fill!(t2,7) \end{thebibliography} \end{document} See Also: -o )show U32Vector +o )show U8Vector o )show U16Vector +o )show U32Vector \end{chunk} \pagehead{U32Vector}{U32VEC} @@ -153482,6 +153849,7 @@ Note that this code is not included in the generated catdef.spad file. \getchunk{domain UTSZ UnivariateTaylorSeriesCZero} \getchunk{domain UNISEG UniversalSegment} +\getchunk{domain U8VEC U16Vector} \getchunk{domain U16VEC U16Vector} \getchunk{domain U32VEC U32Vector} \getchunk{domain VARIABLE Variable} diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index d1949eb..35d7805 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -24644,6 +24644,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|UniversalSegment| . UNISEG) (|UniversalSegmentFunctions2| . UNISEG2) (|UserDefinedVariableOrdering| . UDVO) + (|U8Vector| . U8VEC) (|U16Vector| . U16VEC) (|U32Vector| . U32VEC) (|Vector| . VECTOR) @@ -39273,6 +39274,35 @@ Given a form, $u$, we try to recover the input line that created it. \end{chunk} +\section{U8Vector} + +\defmacro{qvlenU8} +\begin{chunk}{defmacro qvlenU8} +(defmacro qvlenU8 (v) + `(length (the (simple-array (unsigned-byte 8) (*)) ,v))) + +\end{chunk} + +\defmacro{eltU8} +\begin{chunk}{defmacro eltU8} +(defmacro eltU8 (v i) + `(aref (the (simple-array (unsigned-byte 8) (*)) ,v) ,i)) + +\end{chunk} + +\defmacro{seteltU8} +\begin{chunk}{defmacro seteltU8} +(defmacro seteltU8 (v i s) + `(setf (aref (the (simple-array (unsigned-byte 8) (*)) ,v) ,i), s)) + +\end{chunk} + +\defun{getRefvU8}{getRefvU8} +\begin{chunk}{defun getRefvU8} +(defun getRefvU8 (x n) + (make-array n :initial-element x :element-type '(unsigned-byte 8))) +\end{chunk} + \section{U16Vector} \defmacro{qvlenU16} @@ -43874,6 +43904,7 @@ This needs to work off the internal exposure list, not the file. \getchunk{defmacro dlen} \getchunk{defmacro dsetaref2} \getchunk{defmacro dsetelt} +\getchunk{defmacro eltU8} \getchunk{defmacro eltU16} \getchunk{defmacro eltU32} \getchunk{defmacro funfind} @@ -43884,10 +43915,12 @@ This needs to work off the internal exposure list, not the file. \getchunk{defmacro make-double-matrix1} \getchunk{defmacro make-double-vector} \getchunk{defmacro make-double-vector1} +\getchunk{defmacro qvlenU8} \getchunk{defmacro qvlenU16} \getchunk{defmacro qvlenU32} \getchunk{defmacro Rest} \getchunk{defmacro startsId?} +\getchunk{defmacro seteltU8} \getchunk{defmacro seteltU16} \getchunk{defmacro seteltU32} \getchunk{defmacro trapNumericErrors} @@ -44543,6 +44576,7 @@ This needs to work off the internal exposure list, not the file. \getchunk{defun mac0SubstituteOuter} \getchunk{defun make-appendstream} \getchunk{defun make-databases} +\getchunk{defun getRefvU8} \getchunk{defun getRefvU16} \getchunk{defun getRefvU32} \getchunk{defun makeFullNamestring} diff --git a/books/ps/v103u8vector.eps b/books/ps/v103u8vector.eps new file mode 100644 index 0000000..5ed1746 --- /dev/null +++ b/books/ps/v103u8vector.eps @@ -0,0 +1,278 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: graphviz version 2.26.3 (20100126.1600) +%%Title: pic +%%Pages: 1 +%%BoundingBox: 36 36 112 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 112 152 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 76 116 boxprim clip newpath +1 1 set_scale 0 rotate 40 41 translate +0.16355 0.45339 0.92549 graphcolor +newpath -4 -5 moveto +-4 112 lineto +73 112 lineto +73 -5 lineto +closepath fill +1 setlinewidth +0.16355 0.45339 0.92549 graphcolor +newpath -4 -5 moveto +-4 112 lineto +73 112 lineto +73 -5 lineto +closepath stroke +% U8VEC +gsave +[ /Rect [ 2 72 66 108 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=U8VEC) >> + /Subtype /Link +/ANN pdfmark +0.27273 0.73333 1 nodecolor +newpath 66 108 moveto +2 108 lineto +2 72 lineto +66 72 lineto +closepath fill +1 setlinewidth +filled +0.27273 0.73333 1 nodecolor +newpath 66 108 moveto +2 108 lineto +2 72 lineto +66 72 lineto +closepath stroke +0 0 0 nodecolor +14 /Times-Roman set_font +9.5 86.4 moveto 49 (U8VEC) alignedtext +grestore +% A1AGG +gsave +[ /Rect [ 0 0 68 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=A1AGG) >> + /Subtype /Link +/ANN pdfmark +0.60606 0.73333 1 nodecolor +newpath 68 36 moveto +0 36 lineto +0 0 lineto +68 0 lineto +closepath fill +1 setlinewidth +filled +0.60606 0.73333 1 nodecolor +newpath 68 36 moveto +0 36 lineto +0 0 lineto +68 0 lineto +closepath stroke +0 0 0 nodecolor +14 /Times-Roman set_font +8 14.4 moveto 52 (A1AGG) alignedtext +grestore +% U8VEC->A1AGG +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 34 71.83 moveto +34 64.13 34 54.97 34 46.42 curveto +stroke +0 0 0 edgecolor +newpath 37.5 46.41 moveto +34 36.41 lineto +30.5 46.41 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 37.5 46.41 moveto +34 36.41 lineto +30.5 46.41 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +end +restore +%%EOF diff --git a/changelog b/changelog index 7f62e02..7f53725 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20130223 tpd src/axiom-website/patches.html 20130223.03.tpd.patch +20130223 tpd src/input/machinearithmetic.input unit test U8Vector +20130223 tpd books/bookvol5 add lisp support for U8Vector +20130223 tpd books/bookvol10.3 add U8Vector +20130223 tpd books/ps/v103u8vector.eps added 20130223 tpd src/axiom-website/patches.html 20130223.02.tpd.patch 20130223 tpd src/algebra/Makefile add machinearithmetic.input 20130223 tpd src/input/machinearithmetic.input test U16Vector diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index bedd7fc..a6e3dbf 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3981,5 +3981,7 @@ books/bookvol10.3 update U32Vector domain, add machinearithmetic books/bookvol5 fix exposure for MAGCDOC category 20130223.02.tpd.patch books/bookvol10.3 add U16Vector +20130223.03.tpd.patch +books/bookvol10.3 add U8Vector diff --git a/src/input/machinearithmetic.input.pamphlet b/src/input/machinearithmetic.input.pamphlet index 79479fb..9edbf2b 100644 --- a/src/input/machinearithmetic.input.pamphlet +++ b/src/input/machinearithmetic.input.pamphlet @@ -18,160 +18,237 @@ )set message auto off )clear all ---S 1 of 22 +--S 1 of 33 t1:=empty()$U32Vector --R --R (1) [] --R Type: U32Vector --E 1 ---S 2 of 22 +--S 2 of 33 t2:=new(10,10)$U32Vector --R --R (2) [10,10,10,10,10,10,10,10,10,10] --R Type: U32Vector --E 2 ---S 3 of 22 +--S 3 of 33 t3:=qelt(t2,2) --R --R (3) 10 --R Type: PositiveInteger --E 3 ---S 4 of 22 +--S 4 of 33 t4:=elt(t2,2) --R --R (4) 10 --R Type: PositiveInteger --E 4 ---S 5 of 22 +--S 5 of 33 t5:=t2.2 --R --R (5) 10 --R Type: PositiveInteger --E 5 ---S 6 of 22 +--S 6 of 33 t6:=qsetelt!(t2,2,5) --R --R (6) 5 --R Type: PositiveInteger --E 6 ---S 7 of 22 +--S 7 of 33 t2.2 --R --R (7) 5 --R Type: PositiveInteger --E 7 ---S 8 of 22 +--S 8 of 33 t7:=setelt(t2,3,6) --R --R (8) 6 --R Type: PositiveInteger --E 8 ---S 9 of 22 +--S 9 of 33 t2.3 --R --R (9) 6 --R Type: PositiveInteger --E 9 ---S 10 of 22 +--S 10 of 33 #t2 --R --R (10) 10 --R Type: PositiveInteger --E 10 ---S 11 of 22 +--S 11 of 33 t8:=fill!(t2,7) --R --R (11) [7,7,7,7,7,7,7,7,7,7] --R Type: U32Vector --E 11 ---S 12 of 22 +--S 12 of 33 ta:=empty()$U16Vector --R --R (12) [] --R Type: U16Vector --E 12 ---S 13 of 22 +--S 13 of 33 tb:=new(10,10)$U16Vector --R --R (13) [10,10,10,10,10,10,10,10,10,10] --R Type: U16Vector --E 13 ---S 14 of 22 +--S 14 of 33 tc:=qelt(tb,2) --R --R (14) 10 --R Type: PositiveInteger --E 14 ---S 15 of 22 +--S 15 of 33 td:=elt(tb,2) --R --R (15) 10 --R Type: PositiveInteger --E 15 ---S 16 of 22 +--S 16 of 33 te:=tb.2 --R --R (16) 10 --R Type: PositiveInteger --E 16 ---S 17 of 22 +--S 17 of 33 tf:=qsetelt!(tb,2,5) --R --R (17) 5 --R Type: PositiveInteger --E 17 ---S 18 of 22 +--S 18 of 33 tb.2 --R --R (18) 5 --R Type: PositiveInteger --E 18 ---S 19 of 22 +--S 19 of 33 tg:=setelt(tb,3,6) --R --R (19) 6 --R Type: PositiveInteger --E 19 ---S 20 of 22 +--S 20 of 33 tb.3 --R --R (20) 6 --R Type: PositiveInteger --E 20 ---S 21 of 22 +--S 21 of 33 #tb --R --R (21) 10 --R Type: PositiveInteger --E 21 ---S 22 of 22 +--S 22 of 33 th:=fill!(tb,7) --R --R (22) [7,7,7,7,7,7,7,7,7,7] --R Type: U16Vector --E 22 +--S 23 of 33 +t1a:=empty()$U8Vector +--R +--R (23) [] +--R Type: U8Vector +--E 23 + +--S 24 of 33 +t1b:=new(10,10)$U8Vector +--R +--R (24) [10,10,10,10,10,10,10,10,10,10] +--R Type: U8Vector +--E 24 + +--S 25 of 33 +t1c:=qelt(t1b,2) +--R +--R (25) 10 +--R Type: PositiveInteger +--E 25 + +--S 26 of 33 +t1d:=elt(t1b,2) +--R +--R (26) 10 +--R Type: PositiveInteger +--E 26 + +--S 27 of 33 +t1e:=t1b.2 +--R +--R (27) 10 +--R Type: PositiveInteger +--E 27 + +--S 28 of 33 +t1f:=qsetelt!(t1b,2,5) +--R +--R (28) 5 +--R Type: PositiveInteger +--E 28 + +--S 29 of 33 +t1b.2 +--R +--R (29) 5 +--R Type: PositiveInteger +--E 29 + +--S 30 of 33 +t1g:=setelt(t1b,3,6) +--R +--R (30) 6 +--R Type: PositiveInteger +--E 30 + +--S 31 of 33 +t1b.3 +--R +--R (31) 6 +--R Type: PositiveInteger +--E 31 + +--S 32 of 33 +#t1b +--R +--R (32) 10 +--R Type: PositiveInteger +--E 32 + +--S 33 of 33 +t1h:=fill!(t1b,7) +--R +--R (33) [7,7,7,7,7,7,7,7,7,7] +--R Type: U8Vector +--E 33 + )spool )lisp (bye)