diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet index bd5e00d..c72984e 100644 --- a/books/bookvol10.4.pamphlet +++ b/books/bookvol10.4.pamphlet @@ -156347,481 +156347,6 @@ UTSodetools(F, UP, L, UTS): Exports == Implementation where @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{package POLYVEC U32VectorPolynomialOperations} -<>= -)set break resume -)sys rm -f U32VectorPolynomialOperations.output -)spool U32VectorPolynomialOperations.output -)set message test on -)set message auto off -)clear all - ---S 1 of 1 -)show U32VectorPolynomialOperations ---R U32VectorPolynomialOperations is a package constructor ---R Abbreviation for U32VectorPolynomialOperations is POLYVEC ---R This constructor is exposed in this frame. ---R Issue )edit bookvol10.4.pamphlet to see algebra source code for POLYVEC ---R ---R------------------------------- Operations -------------------------------- ---R degree : U32Vector -> Integer ---R copy_first : (U32Vector,U32Vector,Integer) -> Void ---R copy_slice : (U32Vector,U32Vector,Integer,Integer) -> Void ---R differentiate : (U32Vector,Integer) -> U32Vector ---R differentiate : (U32Vector,NonNegativeInteger,Integer) -> U32Vector ---R divide! : (U32Vector,U32Vector,U32Vector,Integer) -> Void ---R eval_at : (U32Vector,Integer,Integer,Integer) -> Integer ---R gcd : (U32Vector,U32Vector,Integer) -> U32Vector ---R gcd : (PrimitiveArray U32Vector,Integer,Integer,Integer) -> U32Vector ---R lcm : (PrimitiveArray U32Vector,Integer,Integer,Integer) -> U32Vector ---R mul : (U32Vector,U32Vector,Integer) -> U32Vector ---R mul_by_binomial : (U32Vector,Integer,Integer) -> Void ---R mul_by_binomial : (U32Vector,Integer,Integer,Integer) -> Void ---R mul_by_scalar : (U32Vector,Integer,Integer,Integer) -> Void ---R pow : (U32Vector,PositiveInteger,NonNegativeInteger,Integer) -> U32Vector ---R remainder! : (U32Vector,U32Vector,Integer) -> Void ---R to_mod_pa : (SparseUnivariatePolynomial Integer,Integer) -> U32Vector ---R truncated_mul_add : (U32Vector,U32Vector,U32Vector,Integer,Integer) -> Void ---R truncated_multiplication : (U32Vector,U32Vector,Integer,Integer) -> U32Vector ---R vector_add_mul : (U32Vector,U32Vector,Integer,Integer,Integer,Integer) -> Void ---R vector_combination : (U32Vector,Integer,U32Vector,Integer,Integer,Integer,Integer) -> Void ---R ---E 1 - -)spool -)lisp (bye) -@ -<>= -==================================================================== -U32VectorPolynomialOperations examples -==================================================================== - -See Also: -o )show U32VectorPolynomialOperations - -@ -\pagehead{U32VectorPolynomialOperations}{POLYVEC} -\pagepic{ps/v104u32vectorpolynomialoperations.eps}{POLYVEC}{1.00} - -{\bf Exports:}\\ -\begin{tabular}{lll} -\cross{POLYVEC}{copy\_first} & -\cross{POLYVEC}{copy\_slice} & -\cross{POLYVEC}{degree} \\ -\cross{POLYVEC}{differentiate} & -\cross{POLYVEC}{divide!} & -\cross{POLYVEC}{eval\_at} \\ -\cross{POLYVEC}{gcd} & -\cross{POLYVEC}{lcm} & -\cross{POLYVEC}{mul} \\ -\cross{POLYVEC}{mul\_by\_binomial} & -\cross{POLYVEC}{mul\_by\_scalar} & -\cross{POLYVEC}{pow} \\ -\cross{POLYVEC}{remainder!} & -\cross{POLYVEC}{to\_mod\_pa} & -\cross{POLYVEC}{truncated\_mul\_add} \\ -\cross{POLYVEC}{truncated\_multiplication} & -\cross{POLYVEC}{vector\_add\_mul} & -\cross{POLYVEC}{vector\_combination} -\end{tabular} - -<>= -)abbrev package POLYVEC U32VectorPolynomialOperations -++ Author: Waldek Hebisch -++ Description: -++ This is a low-level package which implements operations -++ on vectors treated as univariate modular polynomials. Most -++ operations takes modulus as parameter. Modulus is machine -++ sized prime which should be small enough to avoid overflow -++ in intermediate calculations. -U32VectorPolynomialOperations() : Export == Implementation where - PA ==> U32Vector - Export ==> with - copy__first : (PA, PA, Integer) -> Void - ++ copy__first(v1, v2, n) copies first n elements - ++ of v2 into n first positions in v1. - copy__slice : (PA, PA, Integer, Integer) -> Void - ++ copy__first(v1, v2, m, n) copies the slice of v2 starting - ++ at m elements and having n elements into corresponding - ++ positions in v1. - eval__at : (PA, Integer, Integer, Integer) -> Integer - ++ eval__at(v, deg, pt, p) treats v as coefficients of - ++ polynomial of degree deg and evaluates the - ++ polynomial at point pt modulo p - vector__add__mul : (PA, PA, Integer, Integer, Integer, Integer) _ - -> Void - ++ vector__add__mul(v1, v2, m, n, c, p) sets v1(m), ..., - ++ v1(n) to corresponding extries in v1 + c*v2 - ++ modulo p. - mul__by__binomial : (PA, Integer, Integer) -> Void - ++ mul__by__binomial(v, pt, p) treats v a polynomial - ++ and multiplies in place this polynomial by binomial (x + pt). - ++ Highest coefficient of product is ignored. - mul__by__binomial : (PA, Integer, Integer, Integer) -> Void - ++ mul__by__binomial(v, deg, pt, p) treats v as - ++ coefficients of polynomial of degree deg and - ++ multiplies in place this polynomial by binomial (x + pt). - ++ Highest coefficient of product is ignored. - mul__by__scalar : (PA, Integer, Integer, Integer) -> Void - ++ mul__by__scalar(v, deg, c, p) treats v as - ++ coefficients of polynomial of degree deg and - ++ multiplies in place this polynomial by scalar c - mul : (PA, PA, Integer) -> PA - ++ Polynomial multiplication. - truncated__multiplication : (PA, PA, Integer, Integer) -> PA - ++ truncated__multiplication(x, y, d, p) computes - ++ x*y truncated after degree d - truncated__mul__add : (PA, PA, PA, Integer, Integer) -> Void - ++ truncated__mul__add(x, y, z, d, p) adds to z - ++ the produce x*y truncated after degree d - pow : (PA, PositiveInteger, NonNegativeInteger, Integer) -> PA - ++ pow(u, n, d, p) returns u^n truncated after degree d, except if - ++ n=1, in which case u itself is returned - differentiate : (PA, Integer) -> PA - ++ Polynomial differentiation. - differentiate : (PA, NonNegativeInteger, Integer) -> PA - ++ Polynomial differentiation. - divide! : (PA, PA, PA, Integer) -> Void - ++ Polynomial division. - remainder! : (PA, PA, Integer) -> Void - ++ Polynomial remainder - vector__combination : (PA, Integer, PA, Integer, _ - Integer, Integer, p : Integer) -> Void - ++ vector__combination(v1, c1, v2, c2, n, delta, p) replaces - ++ first n + 1 entires of v1 by corresponding entries of - ++ c1*v1+c2*x^delta*v2 mod p. - to__mod__pa : (SparseUnivariatePolynomial Integer, Integer) -> PA - ++ to__mod__pa(s, p) reduces coefficients of polynomial - ++ s modulo primte p and converts the resut to vector - gcd : (PA, PA, Integer) -> PA - ++ Polynomial gcd. - gcd : (PrimitiveArray PA, Integer, Integer, Integer) -> PA - ++ gcd(a, lo, hi, p) computes gcd of elements - ++ a(lo), a(lo+1), ..., a(hi). - lcm : (PrimitiveArray PA, Integer, Integer, Integer) -> PA - ++ lcm(a, lo, hi, p) computes lcm of elements - ++ a(lo), a(lo+1), ..., a(hi). - degree : PA -> Integer - ++ degree(v) is degree of v treated as polynomial - - Implementation ==> add - - Qmuladdmod ==> QSMULADDMOD64_-32$Lisp - Qmuladd ==> QSMULADD64_-32$Lisp - Qmul ==> QSMULMOD32$Lisp - Qdot2 ==> QSDOT2MOD64_-32$Lisp - Qrem ==> QSMOD64_-32$Lisp - modInverse ==> invmod - - copy__first(np : PA, op : PA, n : Integer) : Void == - ns := n pretend SingleInteger - for j in 0..(ns - 1) repeat - np(j) := op(j) - - copy__slice(np : PA, op : PA, m : Integer, _ - n : Integer) : Void == - ms := m pretend SingleInteger - ns := n pretend SingleInteger - for j in ms..(ms + ns - 1) repeat - np(j) := op(j) - - eval__at(v : PA, deg : Integer, pt : Integer, _ - p : Integer) : Integer == - i : SingleInteger := deg::SingleInteger - res : Integer := 0 - while i >= 0 repeat - res := Qmuladdmod(pt, res, v(i), p) - i := i - 1 - res - - to__mod__pa(s : SparseUnivariatePolynomial Integer, p : Integer) : PA == - zero?(s) => new(1, 0)$PA - n0 := degree(s) pretend SingleInteger - ncoeffs := new((n0+1) pretend NonNegativeInteger, 0)$PA - while not(zero?(s)) repeat - n := degree(s) - ncoeffs(n) := positiveRemainder(leadingCoefficient(s), p) - s := reductum(s) - ncoeffs - - vector__add__mul(v1 : PA, v2 : PA, m : Integer, n : Integer, _ - c : Integer, p : Integer) : Void == - ms := m pretend SingleInteger - ns := n pretend SingleInteger - for i in ms..ns repeat - v1(i) := Qmuladdmod(c, v2(i), v1(i), p) - - mul__by__binomial(v : PA, n : Integer, pt : Integer, _ - p : Integer) : Void == - prev__coeff : Integer := 0 - ns := n pretend SingleInteger - for i in 0..(ns - 1) repeat - pp := v(i) - v(i) := Qmuladdmod(pt, pp, prev__coeff, p) - prev__coeff := pp - - mul__by__binomial(v : PA, pt : Integer, _ - p : Integer) : Void == - mul__by__binomial(v, #v, pt, p) - - mul__by__scalar(v : PA, n : Integer, c : Integer, _ - p : Integer) : Void == - ns := n pretend SingleInteger - for i in 0..ns repeat - v(i) := Qmul(c, v(i), p) - - degree(v : PA) : Integer == - n := #v - for i in (n - 1)..0 by -1 repeat - v(i) ~= 0 => return i - -1 - - vector__combination(v1 : PA, c1 : Integer, _ - v2 : PA, c2 : Integer, _ - n : Integer, delta : Integer, _ - p : Integer) : Void == - ns := n pretend SingleInteger - ds := delta pretend SingleInteger - if c1 ~= 1 then - for i in 0..(ds - 1) repeat - v1(i) := Qmul(v1(i), c1, p) - for i in ds..ns repeat - v1(i) := Qdot2(v1(i), c1, v2(i - ds), c2, p) - else - for i in ds..ns repeat - v1(i) := Qmuladdmod(c2, v2(i - ds), v1(i), p) - - divide!(r0 : PA, r1 : PA, res : PA, p: Integer) : Void == - dr0 := degree(r0) - dr1 := degree(r1) - c0 := r1(dr1) - c0 := modInverse(c0, p) - while dr0 >= dr1 repeat - delta := dr0 - dr1 - c1 := Qmul(c0, r0(dr0), p) - res(delta) := c1 - c1 := p - c1 - r0(dr0) := 0 - dr0 := dr0 - 1 - if dr0 < 0 then break - vector__combination(r0, 1, r1, c1, dr0, delta, p) - while r0(dr0) = 0 repeat - dr0 := dr0 - 1 - if dr0 < 0 then break - - remainder!(r0 : PA, r1 : PA, p: Integer) : Void == - dr0 := degree(r0) - dr1 := degree(r1) - c0 := r1(dr1) - c0 := modInverse(c0, p) - while dr0 >= dr1 repeat - delta := dr0 - dr1 - c1 := Qmul(c0, r0(dr0), p) - c1 := p - c1 - r0(dr0) := 0 - dr0 := dr0 - 1 - if dr0 < 0 then break - vector__combination(r0, 1, r1, c1, dr0, delta, p) - while r0(dr0) = 0 repeat - dr0 := dr0 - 1 - if dr0 < 0 then break - - gcd(x : PA, y : PA, p : Integer) : PA == - dr0 := degree(y) pretend SingleInteger - dr1 : SingleInteger - if dr0 < 0 then - tmpp := x - x := y - y := tmpp - dr1 := dr0 - dr0 := degree(y) pretend SingleInteger - else - dr1 := degree(x) pretend SingleInteger - dr0 < 0 => - dr1 < 0 => - return new(1, 0)$PA - r1 := new((dr1 + 1) pretend NonNegativeInteger, 0)$PA - copy__first(r1, x, dr1 + 1) - c := r1(dr1) - c := modInverse(c, p) - mul__by__scalar(r1, dr1, c, p) - return r1 - r0 := new((dr0 + 1) pretend NonNegativeInteger, 0)$PA - copy__first(r0, y, dr0 + 1) - r1 := new((dr1 + 1) pretend NonNegativeInteger, 0)$PA - copy__first(r1, x, dr1 + 1) - while dr1 > 0 repeat - while dr0 >= dr1 repeat - delta := dr0 - dr1 - c1 := QSDIFFERENCE(p, r0(dr0))$Lisp - c0 := r1(dr1) - if c0 ~= 1 and delta > 30 then - c0 := modInverse(c0, p) - mul__by__scalar(r1, dr1, c0, p) - c0 := 1 - r0(dr0) := 0 - dr0 := dr0 - 1 - vector__combination(r0, c0, r1, c1, dr0, delta, p) - while r0(dr0) = 0 repeat - dr0 := dr0 - 1 - if dr0 < 0 then break - tmpp := r0 - tmp := dr0 - r0 := r1 - dr0 := dr1 - r1 := tmpp - dr1 := tmp - dr1 >= 0 => - r1(0) := 1 - return r1 - c := r0(dr0) - c := modInverse(c, p) - mul__by__scalar(r0, dr0, c, p) - r0 - - gcd(a : PrimitiveArray PA, lo : Integer, hi: Integer, p: Integer) _ - : PA == - res := a(lo) - for i in (lo + 1)..hi repeat - res := gcd(a(i), res, p) - res - - lcm2(v1 : PA, v2 : PA, p : Integer) : PA == - pp := gcd(v1, v2, p) - dv2 := degree(v2) - dpp := degree(pp) - dv2 = dpp => - v1 - dpp = 0 => mul(v1, v2, p) - tmp1 := new((dv2 + 1) pretend NonNegativeInteger, 0)$PA - tmp2 := new((dv2 - dpp + 1) pretend NonNegativeInteger, 0)$PA - copy__first(tmp1, v2, dv2 + 1) - divide!(tmp1, pp, tmp2, p) - mul(v1, tmp2, p) - - lcm(a : PrimitiveArray PA, lo : Integer, hi: Integer, p: Integer) _ - : PA == - res := a(lo) - for i in (lo + 1)..hi repeat - res := lcm2(a(i), res, p) - res - - inner__mul : (PA, PA, PA, SingleInteger, SingleInteger, _ - SingleInteger, Integer) -> Void - - mul(x : PA, y : PA, p : Integer) : PA == - xdeg := degree(x) pretend SingleInteger - ydeg := degree(y) pretend SingleInteger - if xdeg > ydeg then - tmpp := x - tmp := xdeg - x := y - xdeg := ydeg - y := tmpp - ydeg := tmp - xcoeffs := x - ycoeffs := y - xdeg < 0 => x - xdeg = 0 and xcoeffs(0) = 1 => copy(y) - zdeg : SingleInteger := xdeg + ydeg - zdeg0 := (zdeg::Integer) pretend NonNegativeInteger - zcoeffs := new(zdeg0 + 1, 0)$PA - inner__mul(xcoeffs, ycoeffs, zcoeffs, xdeg, ydeg, zdeg, p) - zcoeffs - - inner__mul(x, y, z, xdeg, ydeg, zdeg, p) == - if xdeg > ydeg then - tmpp := x - tmp := xdeg - x := y - xdeg := ydeg - y := tmpp - ydeg := tmp - xdeg := - xdeg > zdeg => zdeg - xdeg - ydeg := - ydeg > zdeg => zdeg - ydeg - ss : Integer - i : SingleInteger - j : SingleInteger - for i in 0..xdeg repeat - ss := z(i) - for j in 0..i repeat - ss := Qmuladd(x(i - j), y(j), ss) - z(i) := Qrem(ss, p) - for i in (xdeg+1)..ydeg repeat - ss := z(i) - for j in 0..xdeg repeat - ss := Qmuladd(x(j), y(i-j), ss) - z(i) := Qrem(ss, p) - for i in (ydeg+1)..zdeg repeat - ss := z(i) - for j in (i-xdeg)..ydeg repeat - ss := Qmuladd(x(i - j), y(j), ss) - z(i) := Qrem(ss, p) - - truncated__mul__add(x, y, z, m, p) == - xdeg := (#x - 1) pretend SingleInteger - ydeg := (#y - 1) pretend SingleInteger - inner__mul(x, y, z, xdeg, ydeg, m pretend SingleInteger, p) - - truncated__multiplication(x, y, m, p) == - xdeg := (#x - 1) pretend SingleInteger - ydeg := (#y - 1) pretend SingleInteger - z := new((m pretend SingleInteger + 1) - pretend NonNegativeInteger, 0)$PA - inner__mul(x, y, z, xdeg, ydeg, m pretend SingleInteger, p) - z - - pow(x : PA, n : PositiveInteger, d: NonNegativeInteger, _ - p : Integer) : PA == - one? n => x - odd?(n)$Integer => - truncated__multiplication(x, - pow(truncated__multiplication(x, x, d, p), - shift(n,-1) pretend PositiveInteger, - d, - p), - d, - p) - pow(truncated__multiplication(x, x, d, p), - shift(n,-1) pretend PositiveInteger, - d, - p) - - differentiate(x: PA, p: Integer): PA == - d := #x - 1 - if zero? d then empty()$PA - else - r := new(d::NonNegativeInteger, 0)$PA - for i in 0..d-1 repeat - i1 := i+1 - r.i := Qmul(i1, x.i1, p) - r - - differentiate(x: PA, n: NonNegativeInteger, p: Integer): PA == - zero? n => x - d := #x - 1 - if d < n then empty()$PA - else - r := new((d-n+1) pretend NonNegativeInteger, 0)$PA - for i in n..d repeat - j := i-n - f := j+1 - for k in j+2..i repeat f := Qmul(f, k, p) - r.(j pretend NonNegativeInteger) := Qmul(f, x.i, p) - r - -@ -<>= -"POLYVEC" [color="#FF4488",href="bookvol10.4.pdf#nameddest=POLYVEC"] -"A1AGG" [color="#4488FF",href="bookvol10.2.pdf#nameddest=A1AGG"] -"POLYVEC" -> "A1AGG" - -@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chapter V} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{package VECTOR2 VectorFunctions2} diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index 56721b0..cc22727 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -24011,7 +24011,6 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|UniversalSegmentFunctions2| . UNISEG2) (|UserDefinedVariableOrdering| . UDVO) (|U32Vector| . U32VEC) - (|U32VectorPolynomialOperations| . POLYVEC) (|Vector| . VECTOR) (|VectorFunctions2| . VECTOR2) (|ViewDefaultsPackage| . VIEWDEF) diff --git a/books/ps/v104u32vectorpolynomialoperations.eps b/books/ps/v104u32vectorpolynomialoperations.eps deleted file mode 100644 index 8ddd59f..0000000 --- a/books/ps/v104u32vectorpolynomialoperations.eps +++ /dev/null @@ -1,266 +0,0 @@ -%!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 124 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 124 152 -%%PageOrientation: Portrait -0 0 1 beginpage -gsave -36 36 88 116 boxprim clip newpath -1 1 set_scale 0 rotate 40 40 translate -% POLYVEC -gsave -[ /Rect [ 0 72 80 108 ] - /Border [ 0 0 0 ] - /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=POLYVEC) >> - /Subtype /Link -/ANN pdfmark -0.939 0.733 1.000 nodecolor -newpath 80 108 moveto -0 108 lineto -0 72 lineto -80 72 lineto -closepath fill -1 setlinewidth -filled -0.939 0.733 1.000 nodecolor -newpath 80 108 moveto -0 108 lineto -0 72 lineto -80 72 lineto -closepath stroke -0.000 0.000 0.000 nodecolor -14 /Times-Roman set_font -7.5 85.9 moveto 65 (POLYVEC) alignedtext -grestore -% A1AGG -gsave -[ /Rect [ 7 0 73 36 ] - /Border [ 0 0 0 ] - /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=A1AGG) >> - /Subtype /Link -/ANN pdfmark -0.606 0.733 1.000 nodecolor -newpath 73 36 moveto -7 36 lineto -7 0 lineto -73 0 lineto -closepath fill -1 setlinewidth -filled -0.606 0.733 1.000 nodecolor -newpath 73 36 moveto -7 36 lineto -7 0 lineto -73 0 lineto -closepath stroke -0.000 0.000 0.000 nodecolor -14 /Times-Roman set_font -14.5 13.9 moveto 51 (A1AGG) alignedtext -grestore -% POLYVEC->A1AGG -gsave -1 setlinewidth -0.000 0.000 0.000 edgecolor -newpath 40 72 moveto -40 64 40 55 40 46 curveto -stroke -0.000 0.000 0.000 edgecolor -newpath 43.5 46 moveto -40 36 lineto -36.5 46 lineto -closepath fill -1 setlinewidth -solid -0.000 0.000 0.000 edgecolor -newpath 43.5 46 moveto -40 36 lineto -36.5 46 lineto -closepath stroke -grestore -endpage -showpage -grestore -%%PageTrailer -%%EndPage: 1 -%%Trailer -end -restore -%%EOF diff --git a/changelog b/changelog index b9cf799..1ba0684 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20100813 tpd src/axiom-website/patches.html 20100813.01.tpd.patch +20100813 tpd src/algebra/Makefile.pamphlet remove POLYVEC +20100813 tpd books/ps/v104u32vectorpolynomialoperations.eps remove POLYVEC +20100813 tpd books/bookvol5 remove POLYVEC +20100813 tpd books/bookvol10.4 remove POLYVEC 20100806 tpd src/axiom-website/patches.html 20100806.01.tpd.patch 20100806 tpd books/ps/v103guessoptionfunctions0.eps added 20100805 tpd src/axiom-website/patches.html 20100805.01.tpd.patch diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index c06e32a..698dbff 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -4468,7 +4468,7 @@ LAYER9=\ ${OUT}/DIRPROD2.o ${OUT}/IMATRIX.o ${OUT}/INTRVL.o \ ${OUT}/IVECTOR.o ${OUT}/LOCPOWC.o \ ${OUT}/LODO1.o ${OUT}/LODO2.o ${OUT}/LPOLY.o \ - ${OUT}/LSMP.o ${OUT}/LSMP1.o ${OUT}/MATCAT2.o ${OUT}/POLYVEC.o \ + ${OUT}/LSMP.o ${OUT}/LSMP1.o ${OUT}/MATCAT2.o \ ${OUT}/PROJPL.o ${OUT}/PTCAT.o ${OUT}/STRICAT.o ${OUT}/TRIMAT.o \ layer9done @@ -4660,22 +4660,6 @@ LAYER9=\ "MATCAT2" -> "MATCAT" /*"MATCAT2" -> "ARR2CAT"*/ -"POLYVEC" [color="#FF4488",href="bookvol10.4.pdf#nameddest=POLYVEC"] -"POLYVEC" -> "A1AGG" -/*"POLYVEC" -> {"SINT"; "NNI"; "INT"; "FLAGG"; "LNAGG"; "IXAGG"; "HOAGG"}*/ -/*"POLYVEC" -> {"AGG"; "TYPE"; "SETCAT"; "BASTYPE"; "KOERCE"; "EVALAB"}*/ -/*"POLYVEC" -> {"IEVALAB"; "ELTAGG"; "ELTAB"; "CLAGG"; "KONVERT"; "ORDSET"}*/ -/*"POLYVEC" -> {"BOOLEAN"; "INS"; "UFD"; "GCDDOM"; "INTDOM"; "COMRING"}*/ -/*"POLYVEC" -> {"RING"; "RNG"; "ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"}*/ -/*"POLYVEC" -> {"SGROUP"; "MONOID"; "LMODULE"; "BMODULE"; "RMODULE"; "PI"}*/ -/*"POLYVEC" -> {"ALGEBRA"; "MODULE"; "ENTIRER"; "EUCDOM"; "PID"; "OINTDOM"}*/ -/*"POLYVEC" -> {"ORDRING"; "OAGROUP"; "OCAMON"; "OAMON"; "OASGP"; "DIFRING"}*/ -/*"POLYVEC" -> {"RETRACT"; "LINEXP"; "PATMAB"; "CFCAT"; "REAL"; "CHARZ"}*/ -/*"POLYVEC" -> {"STEP"; "INS-"; "EUCDOM-"; "UFD-"; "GCDDOM-"; "INTDOM-"}*/ -/*"POLYVEC" -> {"ALGEBRA-"; "DIFRING-"; "ORDRING-"; "MODULE-"; "RING-"}*/ -/*"POLYVEC" -> {"ABELGRP-"; "ABELMON-"; "MONOID-"; "ORDSET-"; "ABELSG-"}*/ -/*"POLYVEC" -> {"SGROUP-"; "SETCAT-"; "RETRACT-"; "BASTYPE-"; "PRIMARR"}*/ - "PROJPL" [color="#88FF44",href="bookvol10.3.pdf#nameddest=PROJPL"] /*"PROJPL" -> {"PRSPCAT"; "SETCATD"; "SETCAT"; "BASTYPE"; "KOERCE"; "FIELD"}*/ "PROJPL" -> "PROJSP" @@ -17983,7 +17967,6 @@ SPADHELP=\ ${HELP}/UnivariateTaylorSeriesCategory.help \ ${HELP}/UniversalSegment.help \ ${HELP}/U32Vector.help \ - ${HELP}/U32VectorPolynomialOperations.help \ ${HELP}/Variable.help \ ${HELP}/Vector.help \ ${HELP}/VectorCategory.help \ @@ -18664,7 +18647,6 @@ REGRESS= \ UnivariateTaylorSeriesCategory.regress \ UniversalSegment.regress \ U32Vector.regress \ - U32VectorPolynomialOperations.regress \ Variable.regress \ Vector.regress \ VectorCategory.regress \ @@ -26758,18 +26740,6 @@ ${HELP}/U32Vector.help: ${BOOKS}/bookvol10.3.pamphlet >${INPUT}/U32Vector.input @echo "U32Vector (U32VEC)" >>${HELPFILE} -${HELP}/U32VectorPolynomialOperations.help: ${BOOKS}/bookvol10.4.pamphlet - @echo 8200 create U32VectorPolynomialOperations.help from \ - ${BOOKS}/bookvol10.4.pamphlet - @${TANGLE} -R"U32VectorPolynomialOperations.help" \ - ${BOOKS}/bookvol10.4.pamphlet \ - >${HELP}/U32VectorPolynomialOperations.help - @cp -f ${HELP}/U32VectorPolynomialOperations.help ${HELP}/POLYVEC.help - @${TANGLE} -R"U32VectorPolynomialOperations.input" \ - ${BOOKS}/bookvol10.4.pamphlet \ - >${INPUT}/U32VectorPolynomialOperations.input - @echo "U32VectorPolynomialOperations (POLYVEC)" >>${HELPFILE} - ${HELP}/Variable.help: ${BOOKS}/bookvol10.3.pamphlet @echo 5000 create Variable.help from \ ${BOOKS}/bookvol10.3.pamphlet diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index a03a643..f0651fc 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3057,5 +3057,7 @@ src/axiom-website/download.html add debian, fedora
src/axiom-website/download.html add vector
20100806.01.tpd.patch books/ps/v103guessoptionfunctions0.eps added
+20100813.01.tpd.patch +books/bookvol10.4 remove POLYVEC