diff --git a/changelog b/changelog index beaca4a..02caa58 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,12 @@ +20081206 tpd src/axiom-website/patches.html 20081206.01.tpd.patch +20081206 tpd src/input/Makefile add fixed.regress +20081206 tpd src/input/fixed.input convert to a regression file +20081206 tpd src/input/schaum17.input fix missing space typo +20081205 tpd src/axiom-website/patches.html 20081205.02.tpd.patch +20081205 txl src/input/schaum17.input fix 14.355, 14.356 +20081205 tpd src/interp/setq.lisp add Tim Lahey +20081205 tpd readme add Tim Lahey +20081205 txl Tim Lahey 20081205 tpd src/axiom-website/patches.html 20081205.01.tpd.patch 20081205 tpd src/algebra/integer.spad fix r21bugsbig regression 20081205 tpd src/input/r20bugs.input.pamphlet fix regression diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 1891268..2428e91 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -785,6 +785,8 @@ clean up input regression files
bug 7161: integer.spad remove signature change
20081205.02.tpd.patch schaum17 fix 14.355, 14.356
+20081206.01.tpd.patch +regression file fixed created
\ No newline at end of file diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet index 032ce85..2cf453c 100644 --- a/src/input/Makefile.pamphlet +++ b/src/input/Makefile.pamphlet @@ -305,7 +305,8 @@ REGRES= algaggr.regress algbrbf.regress algfacob.regress alist.regress \ expexpan.regress explim.regress expr1.regress exprode.regress \ expr.regress exseries.regress exsum.regress exprpoly.regress \ farray.regress ffdemo.regress fferr.regress ffx72.regress \ - fib.regress file.regress float1.regress float2.regress \ + fib.regress file.regress fixed.regress \ + float1.regress float2.regress \ float.regress fname1.regress fname.regress fnla.regress \ fns.regress fparfrac.regress fparfrc.regress fr1.regress \ fr2.regress frac.regress fr.regress free.regress \ @@ -315,7 +316,7 @@ REGRES= algaggr.regress algbrbf.regress algfacob.regress alist.regress \ herm.regress heugcd.regress \ hexadec.regress ico.regress ideal.regress \ ifact.regress ifthenelse.regress \ - infprod.regress intaf.regress intbypart.regress \ + infprod.regress intaf.regress intbypart.regress \ intdeq.regress \ intef2.regress intef.regress intg0.regress intheory.regress \ intmix2.regress intmix.regress int.regress intrf.regress \ diff --git a/src/input/fixed.input.pamphlet b/src/input/fixed.input.pamphlet index c221351..4a5a5c3 100644 --- a/src/input/fixed.input.pamphlet +++ b/src/input/fixed.input.pamphlet @@ -10,413 +10,1181 @@ \tableofcontents \eject \section{License} -<>= ---Copyright The Numerical Algorithms Group Limited 1996. -@ +Copyright The Numerical Algorithms Group Limited 1996. + +daly/10/06/92 <<*>>= -<> ---fixed.input +)spool fixed.output +)set message test on +)set message auto off +)set break resume +)set expose add constructor SquareMatrix -------------------------------------------------------------------- --- daly/10/06/92 -------------------------------------------------------------------- +@ +Something is wrong with the integration of serices, when the +coeffiennts are not constants. while the series is mathematically +correct, this is not what one expects as the taylor series, which +does not exist. +<<*>>= )clear all --- something is wrong with the integration of serices, when the --- coeffiennts are not constants. while the series is mathematically --- correct, this is not what one expects as the taylor series, which --- does not exist. -series(x/(x+log(x))) --- here integrate is treating log(x) as a constant, which is incorrect. -integrate(%) -------------------------------------------------------------------- --- bmt/10/19/92 integrate problem -- serious, wrong answer -------------------------------------------------------------------- +--S 1 +t1:=series(x/(x+log(x))) +--R +--R (1) +--R 1 1 2 1 3 1 4 1 5 1 6 +--R ------ x - ------- x + ------- x - ------- x + ------- x - ------- x +--R log(x) 2 3 4 5 6 +--R log(x) log(x) log(x) log(x) log(x) +--R + +--R 1 7 1 8 1 9 1 10 1 11 12 +--R ------- x - ------- x + ------- x - -------- x + -------- x + O(x ) +--R 7 8 9 10 11 +--R log(x) log(x) log(x) log(x) log(x) +--R Type: GeneralUnivariatePowerSeries(Expression Integer,x,0) +--E + +@ +Here integrate is treating log(x) as a constant, which is incorrect. +<<*>>= + +--S 2 +integrate(t1) +--R +--R +--RDaly Bug +--R >> Error detected within library code: +--R "'integrate' unavailable on this domain; use 'approximate' first" +--R +--R Continuing to read the file... +--R +--E + +@ +bmt/10/19/92 integrate problem -- serious, wrong answer +<<*>>= )clear all -2*sin(t)*sqrt(1+cos(t)) ---correct answer is 2*sin(t)/sqrt(1+cos(t)) -integrate(%,t) -------------------------------------------------------------------- --- bmt/10/20/92 multiple complex in type tower -------------------------------------------------------------------- +--S 3 +t1:=2*sin(t)*sqrt(1+cos(t)) +--R +--R +----------+ +--R (1) 2sin(t)\|cos(t) + 1 +--R Type: Expression Integer +--E + +@ +Correct answer is \[\frac{2\sin(t)}{\sqrt{1+\cos(t)}}\] +<<*>>= + +--S 4 +integrate(t1,t) +--R +--R +----------+ +--R (- 4cos(t) - 4)\|cos(t) + 1 +--R (2) ---------------------------- +--R 3 +--R Type: Union(Expression Integer,...) +--E + +@ +bmt/10/20/92 multiple complex in type tower +<<*>>= )clear all + +--S 5 n:Complex ? --- an invalid type. can't have 2 complex constructors in a tower +--R Type: Void +--E + +@ +An invalid type. can't have 2 complex constructors in a tower +<<*>>= + +--S 6 n:=x/y+%i +--R +--R x +--R (2) - + %i +--R y +--R Type: Complex Fraction Polynomial Integer +--E + +@ +grabm/09/28/92 coercion bug -------------------------------------------------------------------------- --- grabm/09/28/92 coercion bug --- comment: this coercion must carefully check whether there is a symbol --- among the kernels which is equal to an indeterminate of the --- polynomial ring, and not simply considering every expression --- as a constant -------------------------------------------------------------------------- +This coercion must carefully check whether there is a symbol +among the kernels which is equal to an indeterminate of the +polynomial ring, and not simply considering every expression +as a constant +<<*>>= )clear all + +--S 7 f:=(a-b-c-d)**2::EXPR INT -f::DMP(['a,'b],EXPR INT) -degree % - -------------------------------------------------------------------- --- bmt/10/26/92 wrong answer --- comment:I believe this problem simplifies to --- lfintegrate(sqrt(u**3+u**2),u) which returns the --- wrong answer due to some confusion in prootintegrate in INTPAF. --- I think the confusion happens with the use of radPoly and rootPoly. --- The answer is computed with respect to the result returned by rootPoly --- but the kernel which is substituted for "y" corresponds to radPoly. -------------------------------------------------------------------- -)clear all --- should be 2*sin(t)/sqrt(1+cos(t)) +--R +--R 2 2 2 2 +--R (1) d + (2c + 2b - 2a)d + c + (2b - 2a)c + b - 2a b + a +--R Type: Expression Integer +--E + +--S 8 +t1:=f::DMP(['a,'b],EXPR INT) +--R +--R 2 2 2 2 +--R (2) a - 2a b + (- 2d - 2c)a + b + (2d + 2c)b + d + 2c d + c +--R Type: DistributedMultivariatePolynomial([a,b],Expression Integer) +--E + +--S 9 +degree t1 +--R +--R (3) [2,0] +--R Type: DirectProduct(2,NonNegativeInteger) +--E + +@ +bmt/10/26/92 wrong answer + +I believe this problem simplifies to +{\tt lfintegrate(sqrt(u**3+u**2),u)} which returns the +wrong answer due to some confusion in prootintegrate in {\tt INTPAF}. +I think the confusion happens with the use of radPoly and rootPoly. +The answer is computed with respect to the result returned by rootPoly +but the kernel which is substituted for ``y'' corresponds to radPoly. + +The answer should be should be \[\frac{2*\sin(t)}{\sqrt{1+\cos(t)}}\] +<<*>>= +)clear all + +--S 10 integrate(sqrt(1+cos(x)),x) +--R +--R +----------+ +--R 2sin(x)\|cos(x) + 1 +--R (1) -------------------- +--R cos(x) + 1 +--R Type: Union(Expression Integer,...) +--E -------------------------------------------------------------------- --- bmt/09/28/92 bug in ITRIGMNP --- gives: --- Cannot convert kernel to gaussian function -------------------------------------------------------------------- +@ +bmt/09/28/92 bug in ITRIGMNP + +gives: Cannot convert kernel to gaussian function +<<*>>= )clear all + +--S 11 integrate(exp(x**2),x) +--R +--R x 2 +--I ++ %K +--I (1) | %e d%K +--R ++ +--R Type: Union(Expression Integer,...) +--E -------------------------------------------------------------------- --- themos/11/06/92 integration bug ---comment: ---I suggest changing line 11 of limitedLogs in INTTR from: --- rows := max(degree den, 1 + "max"/[degree(u.contrib) for u in l1]) ---to: --- rows := max(degree den, --- 1 + reduce(max,[degree(u.contrib) for u in l1],0)$List(N)) ---Does you agree, thus max/ empty list would return 0. -------------------------------------------------------------------- +@ +themos/11/06/92 integration bug + +I suggest changing line 11 of limitedLogs in INTTR from: +\begin{verbatim} + rows := max(degree den, 1 + "max"/[degree(u.contrib) for u in l1]) +\end{verbatim} +to +\begin{verbatim} + rows := max(degree den, + 1 + reduce(max,[degree(u.contrib) for u in l1],0)$List(N)) +\end{verbatim} +Do you agree, thus max/ empty list would return 0. +<<*>>= )clear all + +--S 12 f:=log(1-(b*x/(a+c*x**2)))/x --- 2 --- c x - b x + a --- log(--------------) --- 2 --- c x + a --- (1) ------------------- --- x -integrate(%,x) --- 2 --- %J c - %J b + a --- log(---------------) --- x 2 --- ++ %J c + a --- (2) | -------------------- d%J --- ++ %J -expand f --- 2 2 --- - log(c x + a) + log(c x - b x + a) --- (3) ------------------------------------- --- x -integrate(%,x) --- >> Error detected within library code: --- No identity element for reduce of empty list using operation --- max - -------------------------------------------------------------------- --- bmt/11/17/92 interpreter resolve problem -------------------------------------------------------------------- --- says cannot find an appropriate * +--R +--R 2 +--R c x - b x + a +--R log(--------------) +--R 2 +--R c x + a +--R (1) ------------------- +--R x +--R Type: Expression Integer +--E + +--S 13 +integrate(f,x) +--R +--R 2 +--I %K c - %K b + a +--R log(---------------) +--R x 2 +--I ++ %K c + a +--I (2) | -------------------- d%K +--I ++ %K +--R Type: Union(Expression Integer,...) +--E + +--S 14 +g:=expand f +--R +--R 2 2 +--R - log(c x + a) + log(c x - b x + a) +--R (3) ------------------------------------- +--R x +--R Type: Expression Integer +--E + +--S 15 +integrate(g,x) +--R +--R x 2 2 +--I ++ - log(%K c + a) + log(%K c - %K b + a) +--I (4) | -------------------------------------- d%K +--I ++ %K +--R Type: Union(Expression Integer,...) +--E + +@ +bmt/11/17/92 interpreter resolve problem\\ +Says cannot find an appropriate * +<<*>>= )clear all + +--S 16 %i/m*sqrt(m) +--R +--R +-+ +--R %i\|m +--R (1) ------ +--R m +--R Type: Expression Complex Integer +--E -------------------------------------------------------------------------- --- tpd/09/22/92 this generates extra brackets -------------------------------------------------------------------------- +@ +tpd/09/22/92 this generates extra brackets +<<*>>= )clear all + +--S 17 foo n == matrix[[i for i in 1..n] for j in 1..n] +--R Type: Void +--E + +--S 18 foo +--R +--R (2) foo n == [[i for i in 1..n] for j in 1..n] +--R Type: FunctionCalled foo +--E + +)clear all + +msq := Matrix SquareMatrix(2,POLY INT) -------------------------------------------------------------------------- ---- tpd/09/24/92 matrix multiplication appears broken in the product. --- fails with --- >> System error: --- The function |deleteAssoc| is undefined. --- You are being returned to the top level of the interpreter. --- comment: (barry) --- This bug is due to the new autoloading scheme for the compiler, the --- function deleteAssoc needs to be moved into the in core system. --- As a work around, --- if you compile a non existent file, the apropriate files will be loaded, --- e.g.: --- )co foo --- comment: this works in version 2 -------------------------------------------------------------------------- +@ +tpd/09/24/92 matrix multiplication appears broken in the product.\\ +fails with +\begin{verbatim} + >> System error: + The function |deleteAssoc| is undefined. + You are being returned to the top level of the interpreter. +\end{verbatim} +comment: (barry)\\ +This bug is due to the new autoloading scheme for the compiler, the +function deleteAssoc needs to be moved into the in core system. + +As a work around, +if you compile a non existent file, the apropriate files will be loaded, +e.g.: +\begin{verbatim} +)co foo +\end{verbatim} +comment: this works in version 2 +<<*>>= +)clear all + +--S 19 msq := Matrix SquareMatrix(2,POLY INT) +--R +--R +--R (1) Matrix SquareMatrix(2,Polynomial Integer) +--R Type: Domain +--E + +--S 20 m : msq := zero(2,2) +--R +--R ++0 0+ +0 0++ +--R || | | || +--R |+0 0+ +0 0+| +--R (2) | | +--R |+0 0+ +0 0+| +--R || | | || +--R ++0 0+ +0 0++ +--R Type: Matrix SquareMatrix(2,Polynomial Integer) +--E + +--S 21 m(1,1) := matrix([[1,2],[a,b]]) +--R +--R +1 2+ +--R (3) | | +--R +a b+ +--R Type: SquareMatrix(2,Polynomial Integer) +--E + +--S 22 m(1,2) := matrix([[a,b],[2,b]]) +--R +--R +a b+ +--R (4) | | +--R +2 b+ +--R Type: SquareMatrix(2,Polynomial Integer) +--E + +--S 23 m(2,2) := matrix([[1,2],[2,b]]) +--R +--R +1 2+ +--R (5) | | +--R +2 b+ +--R Type: SquareMatrix(2,Polynomial Integer) +--E + +--S 24 m +--R +--R ++1 2+ +a b++ +--R || | | || +--R |+a b+ +2 b+| +--R (6) | | +--R |+0 0+ +1 2+| +--R || | | || +--R ++0 0+ +2 b++ +--R Type: Matrix SquareMatrix(2,Polynomial Integer) +--E + +--S 25 m*m +--R +--R + + 2 ++ +--R |+2a + 1 2b + 2 + |2b + 2a + 4 b + 3b + 2a || +--R || | | || +--R || 2 | | 2 2 || +--R (7) |+a b + a b + 2a+ +4b + a + 2 2b + a b + 4+| +--R | | +--R | +0 0+ + 5 2b + 2+ | +--R | | | | | | +--R | +0 0+ | 2 | | +--R + +2b + 2 b + 4+ + +--R Type: Matrix SquareMatrix(2,Polynomial Integer) +--E + +--S 26 m**2 +--R +--R + + 2 ++ +--R |+2a + 1 2b + 2 + |2b + 2a + 4 b + 3b + 2a || +--R || | | || +--R || 2 | | 2 2 || +--R (8) |+a b + a b + 2a+ +4b + a + 2 2b + a b + 4+| +--R | | +--R | +0 0+ + 5 2b + 2+ | +--R | | | | | | +--R | +0 0+ | 2 | | +--R + +2b + 2 b + 4+ + +--R Type: Matrix SquareMatrix(2,Polynomial Integer) +--E + +--S 27 m**3 +--R +--R +matrix1 matrix2+ +--R (9) | | +--R +matrix3 matrix4+ +--R +--R +--R +--R + 2 + +--R | 2a b + 4a + 1 2b + 2b + 4a + 2| +--R where matrix1= | | +--R | 2 2 3 | +--R +a b + a b + 2a + a b + 4a b + 2a + +--R +--R and matrix2 = +--R + 2 2 3 2 + +--R | 2b + 12b + 2a + 7a + 8 b + 5b + (4a + 7)b + 4a + 8 | +--R | | +--R | 2 2 2 3 2 2 | +--R +6b + (a + 2a + 4)b + 2a + 4a + 10 3b + 2a b + (3a + 12)b + 2a + 4+ +--R +--R +0 0+ +--R and matrix3= | | +--R +0 0+ +--R +--R + 2 + +--R | 4b + 9 2b + 2b + 10| +--R and matrix4= | | +--R | 2 3 | +--R +2b + 2b + 10 b + 8b + 4 + +--R Type: Matrix SquareMatrix(2,Polynomial Integer) +--E + +--S 28 (m*m)*m +--R +--R +matrix1 matrix2+ +--R (10) | | +--R +matrix3 matrix4+ +--R +--R +--R +--R + 2 + +--R | 2a b + 4a + 1 2b + 2b + 4a + 2| +--R where matrix1= | | +--R | 2 2 3 | +--R +a b + a b + 2a + a b + 4a b + 2a + +--R +--R and matrix2 = +--R + 2 2 3 2 + +--R | 2b + 12b + 2a + 7a + 8 b + 5b + (4a + 7)b + 4a + 8 | +--R | | +--R | 2 2 2 3 2 2 | +--R +6b + (a + 2a + 4)b + 2a + 4a + 10 3b + 2a b + (3a + 12)b + 2a + 4+ +--R +--R +0 0+ +--R and matrix3= | | +--R +0 0+ +--R +--R + 2 + +--R | 4b + 9 2b + 2b + 10| +--R and matrix4= | | +--R | 2 3 | +--R +2b + 2b + 10 b + 8b + 4 + +--R Type: Matrix SquareMatrix(2,Polynomial Integer) +--E + +--S 29 mm:=m*m +--R +--R + + 2 ++ +--R |+2a + 1 2b + 2 + |2b + 2a + 4 b + 3b + 2a || +--R || | | || +--R || 2 | | 2 2 || +--R (11) |+a b + a b + 2a+ +4b + a + 2 2b + a b + 4+| +--R | | +--R | +0 0+ + 5 2b + 2+ | +--R | | | | | | +--R | +0 0+ | 2 | | +--R + +2b + 2 b + 4+ + +--R Type: Matrix SquareMatrix(2,Polynomial Integer) +--E + +--S 30 mm*m +--R +--R +matrix1 matrix2+ +--R (12) | | +--R +matrix3 matrix4+ +--R +--R +--R +--R + 2 + +--R | 2a b + 4a + 1 2b + 2b + 4a + 2| +--R where matrix1= | | +--R | 2 2 3 | +--R +a b + a b + 2a + a b + 4a b + 2a + +--R +--R and matrix2 = +--R + 2 2 3 2 + +--R | 2b + 12b + 2a + 7a + 8 b + 5b + (4a + 7)b + 4a + 8 | +--R | | +--R | 2 2 2 3 2 2 | +--R +6b + (a + 2a + 4)b + 2a + 4a + 10 3b + 2a b + (3a + 12)b + 2a + 4+ +--R +--R +0 0+ +--R and matrix3= | | +--R +0 0+ +--R +--R + 2 + +--R | 4b + 9 2b + 2b + 10| +--R and matrix4= | | +--R | 2 3 | +--R +2b + 2b + 10 b + 8b + 4 + +--R Type: Matrix SquareMatrix(2,Polynomial Integer) +--E -------------------------------------------------------------------------- --- tpd/09/25/92 new equation.spad from johannes grabmeier -------------------------------------------------------------------------- - - ---Furthermore, we have function to put 0 or 1 on one side ---and factor the left hand side, after the right hand side ---is 0 and we have an IntegralDomain. ---Johannes +@ +tpd/09/25/92 new equation.spad from johannes grabmeier +Furthermore, we have function to put 0 or 1 on one side +and factor the left hand side, after the right hand side +is 0 and we have an IntegralDomain.\\ +Johannes +<<*>>= +)clear all +--S 31 eq1 := (-6*x**3+13*x**2+4)=(-x**4+12*x) --- --- --- 3 2 4 --- (1) - 6x + 13x + 4= - x + 12x --- Type: Equation Polynomial Integer --- Time: 1.61 (IN) + 1.47 (OT) = 3.08 sec +--R +--R 3 2 4 +--R (1) - 6x + 13x + 4= - x + 12x +--R Type: Equation Polynomial Integer +--E + +--S 32 eq2 := x**4+13*x**2-12*x = 6*x**3-4 --- --- --- 4 2 3 --- (2) x + 13x - 12x= 6x - 4 --- Type: Equation Polynomial Integer --- Time: 0.16 (IN) + 0.11 (OT) = 0.27 sec +--R +--R 4 2 3 +--R (2) x + 13x - 12x= 6x - 4 +--R Type: Equation Polynomial Integer +--E + +--S 33 eq := eq1*y**2+eq2 --- --- --- 3 2 2 4 2 4 2 3 --- (3) (- 6x + 13x + 4)y + x + 13x - 12x= (- x + 12x)y + 6x - 4 --- Type: Equation Polynomial Integer --- Time: 0.26 (IN) + 0.01 (EV) + 0.01 (OT) + 1.54 (GC) = 1.82 sec -swap % --- --- --- 4 2 3 3 2 2 4 2 --- (4) (- x + 12x)y + 6x - 4= (- 6x + 13x + 4)y + x + 13x - 12x --- Type: Equation Polynomial Integer --- Time: 0.07 (OT) = 0.07 sec -% + 4 --- --- --- 4 2 3 3 2 2 4 2 --- (5) (- x + 12x)y + 6x = (- 6x + 13x + 4)y + x + 13x - 12x + 4 --- Type: Equation Polynomial Integer --- Time: 0.69 (IN) + 0.01 (OT) = 0.70 sec -%-6*x**3 --- --- --- 4 2 3 2 2 4 3 2 --- (6) (- x + 12x)y = (- 6x + 13x + 4)y + x - 6x + 13x - 12x + 4 --- Type: Equation Polynomial Integer --- Time: 0.19 (IN) + 0.01 (OT) = 0.20 sec -leftZero % --- --- --- 4 3 2 2 4 3 2 --- (7) 0= (x - 6x + 13x - 12x + 4)y + x - 6x + 13x - 12x + 4 --- Type: Equation Polynomial Integer --- Time: 0.01 (IN) + 0.05 (OT) = 0.06 sec -swap % --- --- --- 4 3 2 2 4 3 2 --- (8) (x - 6x + 13x - 12x + 4)y + x - 6x + 13x - 12x + 4= 0 --- Type: Equation Polynomial Integer --- Time: 0.01 (IN) = 0.01 sec -factor lhs % --- --- --- 2 2 2 --- (9) (x - 2) (x - 1) (y + 1) --- Type: Factored Polynomial Integer --- Time: 0.50 (IN) + 0.09 (EV) + 0.30 (OT) = 0.89 sec -factorAndSplit eq --- --- --- 2 --- (10) [x - 2= 0,x - 1= 0,y + 1= 0] --- Type: List Equation Polynomial Integer --- Time: 0.09 (EV) + 0.21 (OT) = 0.30 sec -inv (eq :: EQ FRAC POLY INT) --- --- --- 1 1 --- (11) - ------------------------------------= - ---------------------- --- 3 2 2 4 2 4 2 3 --- (6x - 13x - 4)y - x - 13x + 12x (x - 12x)y - 6x + 4 --- Type: Equation Fraction Polynomial Integer --- Time: 0.03 (IN) = 0.03 sec -- % --- --- --- 1 1 --- (12) ------------------------------------= ---------------------- --- 3 2 2 4 2 4 2 3 --- (6x - 13x - 4)y - x - 13x + 12x (x - 12x)y - 6x + 4 --- Type: Equation Fraction Polynomial Integer --- Time: 0.01 (IN) + 0.01 (OT) = 0.02 sec - - -------------------------------------------------------------------- --- bmt/09/29/92 coercion bug --- fails with: --- failed cannot be coerced to mode --- (Record (: coef1 (Integer)) (: coef2 (Integer))) --- fixed on 09/29/92 -------------------------------------------------------------------- -)clear all -(p,q):UP(x,INT) -p:=3*x**4+11*x**2-4 -q:=9*x**4+9*x**2-4 +--R +--R 3 2 2 4 2 4 2 3 +--R (3) (- 6x + 13x + 4)y + x + 13x - 12x= (- x + 12x)y + 6x - 4 +--R Type: Equation Polynomial Integer +--E + +--S 34 +t1:=swap eq +--R +--R 4 2 3 3 2 2 4 2 +--R (4) (- x + 12x)y + 6x - 4= (- 6x + 13x + 4)y + x + 13x - 12x +--R Type: Equation Polynomial Integer +--E + +--S 35 +t2:=t1 + 4 +--R +--R 4 2 3 3 2 2 4 2 +--R (5) (- x + 12x)y + 6x = (- 6x + 13x + 4)y + x + 13x - 12x + 4 +--R Type: Equation Polynomial Integer +--E + +--S 36 +t3:=t2-6*x**3 +--R +--R 4 2 3 2 2 4 3 2 +--R (6) (- x + 12x)y = (- 6x + 13x + 4)y + x - 6x + 13x - 12x + 4 +--R Type: Equation Polynomial Integer +--E + +--S 37 +t4:=leftZero t3 +--R +--R 4 3 2 2 4 3 2 +--R (7) 0= (x - 6x + 13x - 12x + 4)y + x - 6x + 13x - 12x + 4 +--R Type: Equation Polynomial Integer +--E + +--S 38 +t5:=swap t4 +--R +--R 4 3 2 2 4 3 2 +--R (8) (x - 6x + 13x - 12x + 4)y + x - 6x + 13x - 12x + 4= 0 +--R Type: Equation Polynomial Integer +--E + +--S 39 +t6:=factor lhs t5 +--R +--R 2 2 2 +--R (9) (x - 2) (x - 1) (y + 1) +--R Type: Factored Polynomial Integer +--E + +--S 40 +t7:=factorAndSplit eq +--R +--R 2 +--R (10) [x - 2= 0,x - 1= 0,y + 1= 0] +--R Type: List Equation Polynomial Integer +--E + +--S 41 +t8:=inv (eq :: EQ FRAC POLY INT) +--R +--R 1 1 +--R (11) - ------------------------------------= - ---------------------- +--R 3 2 2 4 2 4 2 3 +--R (6x - 13x - 4)y - x - 13x + 12x (x - 12x)y - 6x + 4 +--R Type: Equation Fraction Polynomial Integer +--E + +--S 42 +- t8 +--R +--R 1 1 +--R (12) ------------------------------------= ---------------------- +--R 3 2 2 4 2 4 2 3 +--R (6x - 13x - 4)y - x - 13x + 12x (x - 12x)y - 6x + 4 +--R Type: Equation Fraction Polynomial Integer +--E + +@ +bmt/09/29/92 coercion bug\\ +fails with: +\begin{verbatim} + failed cannot be coerced to mode + (Record (: coef1 (Integer)) (: coef2 (Integer))) +\end{verbatim} +fixed on 09/29/92 + +Another subtle bug exists as of Nov 2008 release. +The expression +\begin{verbatim} + (p,q):UP(x,INT) +\end{verbatim} +generates the error +\begin{verbatim} +Daly Bug + Category, domain or package constructor : is not available. +\end{verbatim} +works fine at the top of this file but not here. Which means that +some property is not being cleared properly. The symbol ``p'' does get +properly declared despite the error message. --Tim +<<*>>= +)clear all + +--S 43 +(p1,p2):UP(x,INT) +--R Type: Void +--E + +--S 44 +p1:=3*x**4+11*x**2-4 +--R +--R 4 2 +--R (2) 3x + 11x - 4 +--R Type: UnivariatePolynomial(x,Integer) +--E + +--S 45 +p2:=9*x**4+9*x**2-4 +--R +--R 4 2 +--R (3) 9x + 9x - 4 +--R Type: UnivariatePolynomial(x,Integer) +--E + +--S 46 myNextPrime: (INT,NNI) -> INT +--R Type: Void +--E + +--S 47 myNextPrime(x,n)==nextPrime(x)$PRIMES(INT) --- runs forever due to algebra bug in handling leading coefficients -modularGcd([p,q])$InnerModularGcd(INT,UP(x,INT),67108859,myNextPrime) +--R Type: Void +--E -------------------------------------------------------------------- --- dewar/10/02/92 --- actually, this was never wrong -------------------------------------------------------------------- +@ +Runs forever due to algebra bug in handling leading coefficients +<<*>>= +--S 48 +modularGcd([p1,p2])$InnerModularGcd(INT,UP(x,INT),67108859,myNextPrime) +--R Compiling function myNextPrime with type (Integer,NonNegativeInteger +--R ) -> Integer +--R +--R 2 +--R (6) 3x - 1 +--R Type: UnivariatePolynomial(x,Integer) +--E + +@ +dewar/10/02/92 actually, this was never wrong +<<*>>= +)clear all + +--S 49 numeric(%e ** %pi) ---gives - (61) --- 23.1406926327 7926900563 5493084578 4861294789 0532254433 2912200665 --- 6744971913 2534837468 7163222983 2730035 +--R +--R (1) 23.1406926327 79269006 +--R Type: Float +--E -------------------------------------------------------------------- --- themos/10/07/92 -------------------------------------------------------------------- +@ +themos/10/07/92 +<<*>>= )clear all + +--S 50 y:=operator 'y +--R +--R (1) y +--R Type: BasicOperator +--E + +--S 51 deqx:=differentiate(y(x),x,2)+differentiate(y(x),x)+y(x) +--R +--R ,, , +--R (2) y (x) + y (x) + y(x) +--R +--R Type: Expression Integer +--E + +--S 52 solve(deqx,y,x) +--R +--R x x +--R +-+ - - - - +-+ +--R x\|3 2 2 x\|3 +--R (3) [particular= 0,basis= [cos(-----)%e ,%e sin(-----)]] +--R 2 2 +--RType: Union(Record(particular: Expression Integer,basis: List Expression Integer),...) +--E + +--S 53 solve(deqx,y,x=0,[1]) +--R +--R x +--R +-+ - - +--R x\|3 2 +--R (4) cos(-----)%e +--R 2 +--R Type: Union(Expression Integer,...) +--E + +--S 54 deqt:=differentiate(y(t),t,2)+differentiate(y(t),t)+y(t) +--R +--R ,, , +--R (5) y (t) + y (t) + y(t) +--R +--R Type: Expression Integer +--E + +--S 55 solve(deqt,y,t) +--R +--R t t +--R +-+ - - - - +-+ +--R t\|3 2 2 t\|3 +--R (6) [particular= 0,basis= [cos(-----)%e ,%e sin(-----)]] +--R 2 2 +--RType: Union(Record(particular: Expression Integer,basis: List Expression Integer),...) +--E + +--S 56 solve(deqt,y,t=0,[1]) -- bug +--R +--R t +--R +-+ - - +--R t\|3 2 +--R (7) cos(-----)%e +--R 2 +--R Type: Union(Expression Integer,...) +--E + +--S 57 deqz:=differentiate(y(z),z,2)+differentiate(y(z),z)+y(z) +--R +--R ,, , +--R (8) y (z) + y (z) + y(z) +--R +--R Type: Expression Integer +--E + +--S 58 solve(deqz,y,z) +--R +--R z z +--R +-+ - - - - +-+ +--R z\|3 2 2 z\|3 +--R (9) [particular= 0,basis= [cos(-----)%e ,%e sin(-----)]] +--R 2 2 +--RType: Union(Record(particular: Expression Integer,basis: List Expression Integer),...) +--E + +--S 59 solve(deqz,y,z=0,[1]) --bug +--R +--R z +--R +-+ - - +--R z\|3 2 +--R (10) cos(-----)%e +--R 2 +--R Type: Union(Expression Integer,...) +--E -------------------------------------------------------------------- --- themos/10/07/92 equation -------------------------------------------------------------------- +@ +themos/10/07/92 equation +<<*>>= )clear all + +--S 60 y:=operator 'y -deq:=D(y(x),x)+x**2=(y x)/x-(y x)**2 +--R +--R (1) y +--R Type: BasicOperator +--E +--S 61 +deq:=D(y(x),x)+x**2=(y x)/x-(y x)**2 +--R +--R 2 +--R , 2 - x y(x) + y(x) +--R (2) y (x) + x = ---------------- +--R x +--R Type: Equation Expression Integer +--E -------------------------------------------------------------------- --- bmt/10/08/92 laplace -------------------------------------------------------------------- +@ +bmt/10/08/92 laplace +<<*>>= )clear all + +--S 62 laplace(exp(-x**3)*x**7,x,s) +--R +--R 3 +--R 7 - x +--R (1) laplace(x %e ,x,s) +--R Type: Expression Integer +--E + +@ +bmt/09/30/92 nonlinear ODE -------------------------------------------------------------------- --- bmt/09/30/92 nonlinear ODE -------------------------------------------------------------------- --- Any hope of solving the following which appeared in Barry --- Simon's computer algebra test suite: --- (Apparently it has Bernoulli form) +Any hope of solving the following which appeared in Barry +Simon's computer algebra test suite: +(Apparently it has Bernoulli form) +<<*>>= +)clear all + +--S 63 y:=operator 'y +--R +--R (1) y +--R Type: BasicOperator +--E + +--S 64 x**2 * D(y x, x) + 2*x*(y x) - (y x)**3 = 0 +--R +--R 2 , 3 +--R (2) x y (x) - y(x) + 2x y(x)= 0 +--R +--R Type: Equation Expression Integer +--E + +--S 65 solve(%,y,x) +--R +--R 5 2 +--R (- 3x - 2)y(x) + 5x +--R (3) --------------------- +--R 5 2 +--R 5x y(x) +--R Type: Union(Expression Integer,...) +--E +@ +sit/10/08/92 factor bug +<<*>>= +)clear all -------------------------------------------------------------------- --- sit/10/08/92 factor bug -------------------------------------------------------------------- +--S 66 p:POLY FRAC INT := 3*(x+1) --- is wrong (missing factor of 3). +--R +--R (1) 3x + 3 +--R Type: Polynomial Fraction Integer +--E + +@ +Is wrong (missing factor of 3). +<<*>>= + +--S 67 factor(p)**2 +--R +--R 2 +--R (2) 9(x + 1) +--R Type: Factored Polynomial Fraction Integer +--E + +@ +henderson/10/08/92 + +TextFile cliams that the operator readLineIfCan! returns ``failed'' when +the end of the file is reached. In fact, I get a system error, which is +not very useful: +\begin{verbatim} +(16) ->readLineIfCan!(fp) + >> System error: + Unexpected end of #. + You are being returned to the top level of the interpreter. +\end{verbatim} + +<<*>>= +)clear all -------------------------------------------------------------------- --- henderson/10/08/92 -------------------------------------------------------------------- -)clear all ---TextFile cliams that the operator readLineIfCan! returns "failed" when ---the end of the file is reached. In fact, I get a system error, which is ---not very useful: ---(16) ->readLineIfCan!(fp) --- >> System error: --- Unexpected end of #. --- You are being returned to the top level of the interpreter. +--S 68 fout:TextFile:=open("/tmp/foo","output") +--R +--R (1) "/tmp/foo" +--R Type: TextFile +--E + +--S 69 write!(fout,"foo") +--R +--R (2) "foo" +--R Type: String +--E + +--S 70 close!(fout) +--R +--R (3) "/tmp/foo" +--R Type: TextFile +--E + +--S 71 fin:TextFile:=open("/tmp/foo","input") +--R +--R (4) "/tmp/foo" +--R Type: TextFile +--E + +--S 72 readLineIfCan!(fin) +--R +--R (5) "foo" +--R Type: Union(String,...) +--E + +--S 73 readLineIfCan!(fin) +--R +--R (6) "failed" +--R Type: Union("failed",...) +--E + +--S 74 close!(fin) +--R +--R (7) "/tmp/foo" +--R Type: TextFile +--E + +--S 75 )lis (system "rm /tmp/foo") +--R +--RValue = 0 +--E -------------------------------------------------------------------- --- bmt/10/08/92 factoring over SAEs -------------------------------------------------------------------- +@ +bmt/10/08/92 factoring over SAEs +<<*>>= )clear all + +--S 76 a | a**2+1 -(x+a)*(x+a+1) -factor % +--R Your statement has resulted in the following assignments and +--R declaration: +--R +--R SAEa := SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(a,Fraction Integer),a*a+1) +--R a : SAEa := a +--R +--R (1) a +--RType: SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(a,Fraction Integer),a*a+1) +--E + +--S 77 +t1:=(x+a)*(x+a+1) +--R +--R 2 +--R (2) x + (2a + 1)x + a - 1 +--RType: Polynomial SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(a,Fraction Integer),a*a+1) +--E + +--S 78 +factor t1 +--R +--R (3) (x + a + 1)(x + a) +--RType: Factored Polynomial SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(a,Fraction Integer),a*a+1) +--E -------------------------------------------------------------------- --- miller/10/09/92 local vars in types -------------------------------------------------------------------- -)clear all ---Fixed (Victor's) bug with using local variables in type expressions ---assigned to local variables. It now gives a message and correctly uses ---interpret-only mode. ---The function changed was getAndEvalConstructorArgument from i-spec1.boot. +@ +miller/10/09/92 local vars in types + +Fixed (Victor's) bug with using local variables in type expressions +assigned to local variables. It now gives a message and correctly uses +interpret-only mode. +The function changed was getAndEvalConstructorArgument from i-spec1.boot. + +themos/10/19/92 -------------------------------------------------------------------- --- themos/10/19/92 -------------------------------------------------------------------- +Do this in a virgin system +<<*>>= )clear all --- Do this in a virgin system + )set expose add constructor SquareMatrix + +--S 79 S2:= SquareMatrix(2,FRAC POLY INT); -V2: S2 := matrix([[v,-v],[-v,v]]); -I2: S2 := 1; -m:=5; +--R +--R Type: Domain +--E + +--S 80 +V2: S2 := matrix([[v,-v],[-v,v]]) +--R +--R + v - v+ +--R (2) | | +--R +- v v + +--R Type: SquareMatrix(2,Fraction Polynomial Integer) +--E + +--S 81 +I2: S2 := 1 +--R +--R +1 0+ +--R (3) | | +--R +0 1+ +--R Type: SquareMatrix(2,Fraction Polynomial Integer) +--E + +--S 82 +m:=5 +--R +--R (4) 5 +--R Type: PositiveInteger +--E + +--S 83 l: List(S2) := append(cons(V2+h*I2,_ [(V2+2*h*I2) for i in 2 .. (m-1)]),_ [V2+h*I2]) +--R +--R +--R (5) +--R +v + h - v + +v + 2h - v + +v + 2h - v + +v + 2h - v + +--R [| |, | |, | |, | |, +--R + - v v + h+ + - v v + 2h+ + - v v + 2h+ + - v v + 2h+ +--R +v + h - v + +--R | |] +--R + - v v + h+ +--R Type: List SquareMatrix(2,Fraction Polynomial Integer) +--E + +@ +Does this give an error of deleteAssoc not defined ?? +<<*>>= +--S 84 A: SquareMatrix(m, S2) := diagonalMatrix(l) --- did you get an error of deleteAssoc not defined ?? +--R +--R +matrix1 matrix2 matrix2 matrix2 matrix2+ +--R | | +--R |matrix2 matrix3 matrix2 matrix2 matrix2| +--R | | +--R (6) |matrix2 matrix2 matrix3 matrix2 matrix2| +--R | | +--R |matrix2 matrix2 matrix2 matrix3 matrix2| +--R | | +--R +matrix2 matrix2 matrix2 matrix2 matrix1+ +--R +--R +--R +--R +v + h - v + +--R where matrix1= | | +--R + - v v + h+ +--R +--R +0 0+ +--R and matrix2= | | +--R +0 0+ +--R +--R +v + 2h - v + +--R and matrix3= | | +--R + - v v + 2h+ +--R Type: SquareMatrix(5,SquareMatrix(2,Fraction Polynomial Integer)) +--E --- load definition of deleteAssoc +@ +load definition of deleteAssoc +\begin{verbatim} )li (load "/spad/obj/rios/interp/c-util") A: SquareMatrix(m, S2) := diagonalMatrix(l) ---now , can print. +\end{verbatim} +now , can print. + +bmt/10/19/92 squareFree bug + +Has an extra factor of 2. +<<*>>= +)clear all -------------------------------------------------------------------- --- bmt/10/19/92 squareFree bug -------------------------------------------------------------------- --- has an extra factor of 2. +--S 85 squareFree((2*x*y+1)*(x*y+1)**2) +--R +--R 2 +--R (1) (x y + 1) (2x y + 1) +--R Type: Factored Polynomial Integer +--E + +@ +bmt/10/19/92 division by zero error +<<*>>= +)clear all -------------------------------------------------------------------- --- bmt/10/19/92 division by zero error -------------------------------------------------------------------- +--S 86 limit(atan(1/sin(x)),x=0) +--R +--R %pi %pi +--R (1) [leftHandLimit= - ---,rightHandLimit= ---] +--R 2 2 +--RType: Union(Record(leftHandLimit: Union(OrderedCompletion Expression Integer,"failed"),rightHandLimit: Union(OrderedCompletion Expression Integer,"failed")),...) +--E + +@ +bmt/10/19/92 limit problem -------------------------------------------------------------------- --- bmt/10/19/92 limit problem -------------------------------------------------------------------- +The left and right hand limits don't agree +<<*>>= )clear all --- the left and right hand limits don't agree + +--S 87 limit(atan(-sin(x)/(cos(x)+e)),x=acos(-e)) --- the left and right hand limits don't agree +--R +--R %pi %pi +--R (1) [leftHandLimit= - ---,rightHandLimit= ---] +--R 2 2 +--RType: Union(Record(leftHandLimit: Union(OrderedCompletion Expression Integer,"failed"),rightHandLimit: Union(OrderedCompletion Expression Integer,"failed")),...) +--E + +--S 88 limit(atan(1/(cos(x)+e)),x=acos(-e)) +--R +--R %pi %pi +--R (2) [leftHandLimit= ---,rightHandLimit= - ---] +--R 2 2 +--RType: Union(Record(leftHandLimit: Union(OrderedCompletion Expression Integer,"failed"),rightHandLimit: Union(OrderedCompletion Expression Integer,"failed")),...) +--E -------------------------------------------------------------------- --- grabmeier/10/19/92 unable to compute the determinant of an 8x8 -------------------------------------------------------------------- +@ +grabmeier/10/19/92 unable to compute the determinant of an 8x8 +<<*>>= )clear all -D := MATRIX FRAC(POLY INT) +--S 89 +D := MATRIX FRAC(POLY INT) +--R +--R (1) Matrix Fraction Polynomial Integer +--R Type: Domain +--E +--S 90 d : (INT, Boolean) -> POLY INT +--R Type: Void +--E + +--S 91 d(i,ss) == ex := i rem 4 if ex < 0 then ex := ex+4 @@ -429,13 +1197,34 @@ d(i,ss) == ex = 1 => 'd ex = 2 => 'dd 'ddd - - +--R +--R Type: Void +--E -- 1,d,dd,ddd,s,sd,sdd,sddd +--S 92 mTV4 : D := new(8,8,0) - +--R +--R +0 0 0 0 0 0 0 0+ +--R | | +--R |0 0 0 0 0 0 0 0| +--R | | +--R |0 0 0 0 0 0 0 0| +--R | | +--R |0 0 0 0 0 0 0 0| +--R (4) | | +--R |0 0 0 0 0 0 0 0| +--R | | +--R |0 0 0 0 0 0 0 0| +--R | | +--R |0 0 0 0 0 0 0 0| +--R | | +--R +0 0 0 0 0 0 0 0+ +--R Type: Matrix Fraction Polynomial Integer +--E + +--S 93 for i in 1..8 repeat for j in 1..8 repeat mTV4(i,j) := @@ -444,52 +1233,1022 @@ for i in 1..8 repeat d(-i+j,true) j <= 4 => d(i+j-2,true) d(-i+j,false) +--R +--R Compiling function d with type (Integer,Boolean) -> Polynomial +--R Integer +--R Type: Void +--E + +--S 94 mTV4 +--R +--R + 1 d dd ddd s sd sdd sddd+ +--R | | +--R | d dd ddd 1 sddd s sd sdd | +--R | | +--R | dd ddd 1 d sdd sddd s sd | +--R | | +--R |ddd 1 d dd sd sdd sddd s | +--R (6) | | +--R | s sd sdd sddd 1 d dd ddd | +--R | | +--R | sd sdd sddd s ddd 1 d dd | +--R | | +--R |sdd sddd s sd dd ddd 1 d | +--R | | +--R +sddd s sd sdd d dd ddd 1 + +--R Type: Matrix Fraction Polynomial Integer +--E + +--S 95 gdd4 := determinant mTV4 +--R +--R (7) +--R 8 2 2 2 2 6 +--R - sddd + (8s sdd + 4sd + 4ddd + 4dd + 4d + 4)sddd +--R + +--R 2 +--R - 8sd sdd + ((- 8dd - 8)ddd - 8d dd - 8d)sdd +--R + +--R 2 +--R (- 8s - 16d ddd - 16dd)sd + ((- 8dd - 8)ddd - 8d dd - 8d)s +--R * +--R 5 +--R sddd +--R + +--R 4 2 2 2 2 2 +--R 2sdd + (- 20s + 4ddd + 16d ddd + 4dd + 16dd + 4d + 4)sdd +--R + +--R 2 +--R - 8s sd + ((24dd + 24)ddd + 24d dd + 24d)sd +--R + +--R 2 2 2 +--R (- 16ddd + 16d ddd - 16dd + 16dd - 16d - 16)s +--R * +--R sdd +--R + +--R 4 2 2 2 2 +--R - 6sd + (- 4ddd - 4dd - 4d - 4)sd +--R + +--R 4 +--R ((24dd + 24)ddd + 24d dd + 24d)s sd + 2s +--R + +--R 2 2 2 2 4 +--R (4ddd + 16d ddd + 4dd + 16dd + 4d + 4)s - 6ddd +--R + +--R 2 2 2 2 4 +--R (- 8dd + 8dd - 4d - 8)ddd + (8d dd + 32d dd + 8d)ddd - 6dd +--R + +--R 2 2 2 4 2 +--R (- 8d - 4)dd + 8d dd - 6d - 8d - 6 +--R * +--R 4 +--R sddd +--R + +--R 3 +--R (32s sd + (- 16dd - 16)ddd - 16d dd - 16d)sdd +--R + +--R 3 2 +--R (16sd + (- 32d ddd - 32dd)sd + ((16dd + 16)ddd + 16d dd + 16d)s)sdd +--R + +--R 2 +--R ((- 16dd - 16)ddd - 16d dd - 16d)sd +--R + +--R 3 2 2 2 +--R (32s + (- 32ddd - 32dd - 32d - 32)s)sd +--R + +--R 2 3 +--R ((16dd + 16)ddd + 16d dd + 16d)s + (16dd + 16)ddd +--R + +--R 2 +--R (- 16d dd - 16d)ddd +--R + +--R 3 2 2 2 3 +--R (16dd - 16dd + (- 16d - 16)dd - 16d + 16)ddd + 16d dd +--R + +--R 2 3 3 +--R - 16d dd + (16d - 16d)dd + 16d + 16d +--R * +--R sdd +--R + +--R 2 3 2 +--R (16s + 32d ddd + 32dd)sd + ((- 16dd - 16)ddd - 16d dd - 16d)s sd +--R + +--R 2 3 2 2 +--R (- 32d ddd - 32dd)s + 32d ddd + (- 16dd - 16)ddd +--R + +--R 3 3 2 2 2 +--R (- 64d dd + 32d )ddd + 32dd - 16d dd + 32dd - 16d +--R * +--R sd +--R + +--R 3 +--R ((- 16dd - 16)ddd - 16d dd - 16d)s +--R + +--R 3 2 +--R (16dd + 16)ddd + (- 16d dd - 16d)ddd +--R + +--R 3 2 2 2 3 +--R (16dd - 16dd + (- 16d - 16)dd - 16d + 16)ddd + 16d dd +--R + +--R 2 3 3 +--R - 16d dd + (16d - 16d)dd + 16d + 16d +--R * +--R s +--R * +--R 3 +--R sddd +--R + +--R 5 2 2 2 2 4 +--R - 8s sdd + (- 20sd + 4ddd + 16d ddd + 4dd + 16dd + 4d + 4)sdd +--R + +--R 3 3 +--R (((16dd + 16)ddd + 16d dd + 16d)sd + 16s + (- 32d ddd - 32dd)s)sdd +--R + +--R 2 2 2 2 2 +--R (- 56s + 24ddd - 32d ddd + 24dd - 32dd + 24d + 24)sd +--R + +--R ((- 16dd - 16)ddd - 16d dd - 16d)s sd +--R + +--R 2 2 2 2 4 3 +--R (24ddd - 32d ddd + 24dd - 32dd + 24d + 24)s - 8ddd - 16d ddd +--R + +--R 2 2 2 3 4 3 +--R (- 8dd + 16d - 8)ddd + (96d dd - 16d )ddd - 8dd - 16dd +--R + +--R 2 2 4 2 +--R (- 8d + 16)dd - 16dd - 8d - 8d - 8 +--R * +--R 2 +--R sdd +--R + +--R 4 3 +--R - 8s sd + ((- 16dd - 16)ddd - 16d dd - 16d)sd +--R + +--R 2 2 2 2 +--R (32ddd + 96d ddd + 32dd + 96dd + 32d + 32)s sd +--R + +--R 2 3 +--R ((- 16dd - 16)ddd - 16d dd - 16d)s + (- 16dd - 16)ddd +--R + +--R 2 +--R (16d dd + 16d)ddd +--R + +--R 3 2 2 2 3 +--R (- 16dd + 16dd + (16d + 16)dd + 16d - 16)ddd - 16d dd +--R + +--R 2 3 3 +--R 16d dd + (- 16d + 16d)dd - 16d - 16d +--R * +--R sd +--R + +--R 5 3 +--R - 8s + (- 32d ddd - 32dd)s +--R + +--R 4 2 2 2 4 +--R 8ddd + (- 32dd + 48d )ddd + (- 32d dd - 32d)ddd + 8dd +--R + +--R 2 2 4 +--R 48dd - 32d dd + 8d + 8 +--R * +--R s +--R * +--R sdd +--R + +--R 6 2 2 2 4 +--R 4sd + (- 4ddd - 4dd - 4d - 4)sd +--R + +--R 3 +--R ((- 16dd - 16)ddd - 16d dd - 16d)s sd +--R + +--R 4 2 2 2 2 4 +--R - 20s + (24ddd - 32d ddd + 24dd - 32dd + 24d + 24)s - 4ddd +--R + +--R 2 2 2 2 4 +--R (16dd + 48dd - 88d + 16)ddd + (48d dd - 64d dd + 48d)ddd - 4dd +--R + +--R 2 2 2 4 2 +--R (16d - 88)dd + 48d dd - 4d + 16d - 4 +--R * +--R 2 +--R sd +--R + +--R 3 +--R ((16dd + 16)ddd + 16d dd + 16d)s +--R + +--R 3 2 +--R (- 16dd - 16)ddd + (16d dd + 16d)ddd +--R + +--R 3 2 2 2 3 +--R (- 16dd + 16dd + (16d + 16)dd + 16d - 16)ddd - 16d dd +--R + +--R 2 3 3 +--R 16d dd + (- 16d + 16d)dd - 16d - 16d +--R * +--R s +--R * +--R sd +--R + +--R 2 2 2 4 +--R (4ddd + 16d ddd + 4dd + 16dd + 4d + 4)s +--R + +--R 4 3 2 2 2 3 +--R - 8ddd - 16d ddd + (- 8dd + 16d - 8)ddd + (96d dd - 16d )ddd +--R + +--R 4 3 2 2 4 2 +--R - 8dd - 16dd + (- 8d + 16)dd - 16dd - 8d - 8d - 8 +--R * +--R 2 +--R s +--R + +--R 6 2 2 4 3 +--R 4ddd + (4dd - 16dd - 4d + 4)ddd - 32d dd ddd +--R + +--R 4 2 2 2 4 2 2 +--R (4dd + (24d + 24)dd + 32d dd - 4d + 24d + 4)ddd +--R + +--R 4 3 2 3 6 +--R (- 16d dd - 32d dd + 32d dd + (- 32d - 32d)dd - 16d)ddd + 4dd +--R + +--R 2 4 4 2 2 4 6 4 2 +--R (4d - 4)dd + (4d + 24d - 4)dd - 16d dd + 4d + 4d + 4d + 4 +--R * +--R 2 +--R sddd +--R + +--R 6 5 +--R 8sd sdd + ((- 8dd - 8)ddd - 8d dd - 8d)sdd +--R + +--R 2 2 2 2 +--R (- 8s - 16ddd + 16d ddd - 16dd + 16dd - 16d - 16)sd +--R + +--R ((24dd + 24)ddd + 24d dd + 24d)s +--R * +--R 4 +--R sdd +--R + +--R 3 2 +--R 32s sd + ((16dd + 16)ddd + 16d dd + 16d)sd +--R + +--R 2 2 2 +--R (- 32ddd - 32dd - 32d - 32)s sd +--R + +--R 2 3 +--R ((- 16dd - 16)ddd - 16d dd - 16d)s + (16dd + 16)ddd +--R + +--R 2 +--R (- 16d dd - 16d)ddd +--R + +--R 3 2 2 2 3 +--R (16dd - 16dd + (- 16d - 16)dd - 16d + 16)ddd + 16d dd +--R + +--R 2 3 3 +--R - 16d dd + (16d - 16d)dd + 16d + 16d +--R * +--R 3 +--R sdd +--R + +--R 5 3 +--R - 8sd + (- 32d ddd - 32dd)sd +--R + +--R 2 +--R ((- 16dd - 16)ddd - 16d dd - 16d)s sd +--R + +--R 4 2 2 2 2 4 +--R - 8s + (32ddd + 96d ddd + 32dd + 96dd + 32d + 32)s + 8ddd +--R + +--R 2 2 2 4 2 +--R (- 32dd + 48d )ddd + (- 32d dd - 32d)ddd + 8dd + 48dd +--R + +--R 2 4 +--R - 32d dd + 8d + 8 +--R * +--R sd +--R + +--R 3 +--R ((- 16dd - 16)ddd - 16d dd - 16d)s +--R + +--R 3 2 +--R (- 16dd - 16)ddd + (16d dd + 16d)ddd +--R + +--R 3 2 2 2 3 +--R (- 16dd + 16dd + (16d + 16)dd + 16d - 16)ddd - 16d dd +--R + +--R 2 3 3 +--R 16d dd + (- 16d + 16d)dd - 16d - 16d +--R * +--R s +--R * +--R 2 +--R sdd +--R + +--R 4 +--R ((24dd + 24)ddd + 24d dd + 24d)sd +--R + +--R 3 2 2 2 3 +--R (32s + (- 32ddd - 32dd - 32d - 32)s)sd +--R + +--R 2 3 +--R ((- 16dd - 16)ddd - 16d dd - 16d)s + (- 16dd - 16)ddd +--R + +--R 2 +--R (16d dd + 16d)ddd +--R + +--R 3 2 2 2 3 +--R (- 16dd + 16dd + (16d + 16)dd + 16d - 16)ddd - 16d dd +--R + +--R 2 3 3 +--R 16d dd + (- 16d + 16d)dd - 16d - 16d +--R * +--R 2 +--R sd +--R + +--R 2 2 2 3 +--R (- 32ddd - 32dd - 32d - 32)s +--R + +--R 4 3 2 2 2 +--R 32ddd - 64d ddd + (96dd - 64d + 96)ddd +--R + +--R 3 4 3 2 2 +--R (- 128d dd - 64d )ddd + 32dd - 64dd + (96d - 64)dd +--R + +--R 4 2 +--R - 64dd + 32d + 96d + 32 +--R * +--R s +--R * +--R sd +--R + +--R 4 +--R ((24dd + 24)ddd + 24d dd + 24d)s +--R + +--R 3 2 +--R (- 16dd - 16)ddd + (16d dd + 16d)ddd +--R + +--R 3 2 2 2 3 +--R (- 16dd + 16dd + (16d + 16)dd + 16d - 16)ddd - 16d dd +--R + +--R 2 3 3 +--R 16d dd + (- 16d + 16d)dd - 16d - 16d +--R * +--R 2 +--R s +--R + +--R 5 4 +--R (- 8dd - 8)ddd + (24d dd + 24d)ddd +--R + +--R 3 2 2 2 3 +--R (- 16dd + 16dd + (- 16d + 16)dd - 16d - 16)ddd +--R + +--R 3 2 3 3 2 +--R (16d dd - 16d dd + (- 16d - 16d)dd - 16d + 16d)ddd +--R + +--R 5 4 2 3 2 2 +--R - 8dd + 24dd + (16d - 16)dd + (- 16d - 16)dd +--R + +--R 4 2 4 2 +--R (24d - 16d + 24)dd + 24d + 16d - 8 +--R * +--R ddd +--R + +--R 5 4 3 3 3 2 +--R - 8d dd + 24d dd + (- 16d - 16d)dd + (16d - 16d)dd +--R + +--R 5 3 5 3 +--R (- 8d + 16d + 24d)dd - 8d - 16d - 8d +--R * +--R sdd +--R + +--R 2 5 4 +--R (- 8s - 16d ddd - 16dd)sd + ((24dd + 24)ddd + 24d dd + 24d)s sd +--R + +--R 2 3 2 2 +--R (- 32d ddd - 32dd)s + 32d ddd + (- 16dd - 16)ddd +--R + +--R 3 3 2 2 2 +--R (- 64d dd + 32d )ddd + 32dd - 16d dd + 32dd - 16d +--R * +--R 3 +--R sd +--R + +--R 3 +--R ((16dd + 16)ddd + 16d dd + 16d)s +--R + +--R 3 2 +--R (- 16dd - 16)ddd + (16d dd + 16d)ddd +--R + +--R 3 2 2 2 3 +--R (- 16dd + 16dd + (16d + 16)dd + 16d - 16)ddd - 16d dd +--R + +--R 2 3 3 +--R 16d dd + (- 16d + 16d)dd - 16d - 16d +--R * +--R s +--R * +--R 2 +--R sd +--R + +--R 6 2 2 2 4 +--R 8s + (- 16ddd + 16d ddd - 16dd + 16dd - 16d - 16)s +--R + +--R 4 2 2 2 4 +--R 8ddd + (- 32dd + 48d )ddd + (- 32d dd - 32d)ddd + 8dd +--R + +--R 2 2 4 +--R 48dd - 32d dd + 8d + 8 +--R * +--R 2 +--R s +--R + +--R 5 2 4 2 3 3 +--R - 16d ddd + (16dd + 16dd + 16)ddd + (- 32d dd + 32d - 32d)ddd +--R + +--R 4 3 2 2 2 2 2 +--R (16dd - 32dd + (- 32d - 32)dd + (96d - 32)dd - 32d + 16)ddd +--R + +--R 4 3 2 5 3 5 +--R (16d dd + (- 32d + 96d)dd - 16d - 32d + 16d)ddd - 16dd +--R + +--R 2 4 2 3 4 2 2 +--R 16d dd + (- 32d + 32)dd + (16d - 32d )dd +--R + +--R 4 2 4 2 +--R (16d - 32d - 16)dd + 16d + 16d +--R * +--R sd +--R + +--R 5 +--R ((- 8dd - 8)ddd - 8d dd - 8d)s +--R + +--R 3 2 +--R (16dd + 16)ddd + (- 16d dd - 16d)ddd +--R + +--R 3 2 2 2 3 +--R (16dd - 16dd + (- 16d - 16)dd - 16d + 16)ddd + 16d dd +--R + +--R 2 3 3 +--R - 16d dd + (16d - 16d)dd + 16d + 16d +--R * +--R 3 +--R s +--R + +--R 5 4 +--R (- 8dd - 8)ddd + (24d dd + 24d)ddd +--R + +--R 3 2 2 2 3 +--R (- 16dd + 16dd + (- 16d + 16)dd - 16d - 16)ddd +--R + +--R 3 2 3 3 2 +--R (16d dd - 16d dd + (- 16d - 16d)dd - 16d + 16d)ddd +--R + +--R 5 4 2 3 2 2 +--R - 8dd + 24dd + (16d - 16)dd + (- 16d - 16)dd +--R + +--R 4 2 4 2 +--R (24d - 16d + 24)dd + 24d + 16d - 8 +--R * +--R ddd +--R + +--R 5 4 3 3 3 2 +--R - 8d dd + 24d dd + (- 16d - 16d)dd + (16d - 16d)dd +--R + +--R 5 3 5 3 +--R (- 8d + 16d + 24d)dd - 8d - 16d - 8d +--R * +--R s +--R * +--R sddd +--R + +--R 8 2 2 2 2 6 +--R - sdd + (4s + 4ddd + 4dd + 4d + 4)sdd +--R + +--R 2 5 +--R (- 8s sd + ((- 8dd - 8)ddd - 8d dd - 8d)sd + (- 16d ddd - 16dd)s)sdd +--R + +--R 4 2 2 2 2 +--R 2sd + (4ddd + 16d ddd + 4dd + 16dd + 4d + 4)sd +--R + +--R 4 +--R ((24dd + 24)ddd + 24d dd + 24d)s sd - 6s +--R + +--R 2 2 2 2 4 2 2 2 +--R (- 4ddd - 4dd - 4d - 4)s - 6ddd + (- 8dd + 8dd - 4d - 8)ddd +--R + +--R 2 4 2 2 2 4 2 +--R (8d dd + 32d dd + 8d)ddd - 6dd + (- 8d - 4)dd + 8d dd - 6d - 8d - 6 +--R * +--R 4 +--R sdd +--R + +--R 3 3 2 +--R ((- 16dd - 16)ddd - 16d dd - 16d)sd + (16s + (- 32d ddd - 32dd)s)sd +--R + +--R 2 3 +--R ((- 16dd - 16)ddd - 16d dd - 16d)s + (16dd + 16)ddd +--R + +--R 2 +--R (- 16d dd - 16d)ddd +--R + +--R 3 2 2 2 3 +--R (16dd - 16dd + (- 16d - 16)dd - 16d + 16)ddd + 16d dd +--R + +--R 2 3 3 +--R - 16d dd + (16d - 16d)dd + 16d + 16d +--R * +--R sd +--R + +--R 3 +--R (32d ddd + 32dd)s +--R + +--R 3 2 2 3 3 +--R 32d ddd + (- 16dd - 16)ddd + (- 64d dd + 32d )ddd + 32dd +--R + +--R 2 2 2 +--R - 16d dd + 32dd - 16d +--R * +--R s +--R * +--R 3 +--R sdd +--R + +--R 2 2 2 2 4 +--R (- 20s + 4ddd + 16d ddd + 4dd + 16dd + 4d + 4)sd +--R + +--R 3 +--R ((16dd + 16)ddd + 16d dd + 16d)s sd +--R + +--R 2 2 2 2 4 3 +--R (24ddd - 32d ddd + 24dd - 32dd + 24d + 24)s - 8ddd - 16d ddd +--R + +--R 2 2 2 3 4 3 +--R (- 8dd + 16d - 8)ddd + (96d dd - 16d )ddd - 8dd - 16dd +--R + +--R 2 2 4 2 +--R (- 8d + 16)dd - 16dd - 8d - 8d - 8 +--R * +--R 2 +--R sd +--R + +--R 3 +--R ((- 16dd - 16)ddd - 16d dd - 16d)s +--R + +--R 3 2 +--R (- 16dd - 16)ddd + (16d dd + 16d)ddd +--R + +--R 3 2 2 2 3 +--R (- 16dd + 16dd + (16d + 16)dd + 16d - 16)ddd - 16d dd +--R + +--R 2 3 3 +--R 16d dd + (- 16d + 16d)dd - 16d - 16d +--R * +--R s +--R * +--R sd +--R + +--R 6 2 2 2 4 +--R 4s + (- 4ddd - 4dd - 4d - 4)s +--R + +--R 4 2 2 2 +--R - 4ddd + (16dd + 48dd - 88d + 16)ddd +--R + +--R 2 4 2 2 2 4 +--R (48d dd - 64d dd + 48d)ddd - 4dd + (16d - 88)dd + 48d dd - 4d +--R + +--R 2 +--R 16d - 4 +--R * +--R 2 +--R s +--R + +--R 6 2 2 4 3 +--R 4ddd + (4dd - 16dd - 4d + 4)ddd - 32d dd ddd +--R + +--R 4 2 2 2 4 2 2 +--R (4dd + (24d + 24)dd + 32d dd - 4d + 24d + 4)ddd +--R + +--R 4 3 2 3 6 +--R (- 16d dd - 32d dd + 32d dd + (- 32d - 32d)dd - 16d)ddd + 4dd +--R + +--R 2 4 4 2 2 4 6 4 2 +--R (4d - 4)dd + (4d + 24d - 4)dd - 16d dd + 4d + 4d + 4d + 4 +--R * +--R 2 +--R sdd +--R + +--R 6 5 +--R 8s sd + ((- 8dd - 8)ddd - 8d dd - 8d)sd +--R + +--R 2 2 2 4 +--R (- 16ddd + 16d ddd - 16dd + 16dd - 16d - 16)s sd +--R + +--R 2 3 +--R ((16dd + 16)ddd + 16d dd + 16d)s + (16dd + 16)ddd +--R + +--R 2 +--R (- 16d dd - 16d)ddd +--R + +--R 3 2 2 2 3 +--R (16dd - 16dd + (- 16d - 16)dd - 16d + 16)ddd + 16d dd +--R + +--R 2 3 3 +--R - 16d dd + (16d - 16d)dd + 16d + 16d +--R * +--R 3 +--R sd +--R + +--R 5 3 +--R - 8s + (- 32d ddd - 32dd)s +--R + +--R 4 2 2 2 4 +--R 8ddd + (- 32dd + 48d )ddd + (- 32d dd - 32d)ddd + 8dd +--R + +--R 2 2 4 +--R 48dd - 32d dd + 8d + 8 +--R * +--R s +--R * +--R 2 +--R sd +--R + +--R 4 +--R ((24dd + 24)ddd + 24d dd + 24d)s +--R + +--R 3 2 +--R (- 16dd - 16)ddd + (16d dd + 16d)ddd +--R + +--R 3 2 2 2 3 +--R (- 16dd + 16dd + (16d + 16)dd + 16d - 16)ddd - 16d dd +--R + +--R 2 3 3 +--R 16d dd + (- 16d + 16d)dd - 16d - 16d +--R * +--R 2 +--R s +--R + +--R 5 4 +--R (- 8dd - 8)ddd + (24d dd + 24d)ddd +--R + +--R 3 2 2 2 3 +--R (- 16dd + 16dd + (- 16d + 16)dd - 16d - 16)ddd +--R + +--R 3 2 3 3 2 +--R (16d dd - 16d dd + (- 16d - 16d)dd - 16d + 16d)ddd +--R + +--R 5 4 2 3 2 2 +--R - 8dd + 24dd + (16d - 16)dd + (- 16d - 16)dd +--R + +--R 4 2 4 2 +--R (24d - 16d + 24)dd + 24d + 16d - 8 +--R * +--R ddd +--R + +--R 5 4 3 3 3 2 +--R - 8d dd + 24d dd + (- 16d - 16d)dd + (16d - 16d)dd +--R + +--R 5 3 5 3 +--R (- 8d + 16d + 24d)dd - 8d - 16d - 8d +--R * +--R sd +--R + +--R 5 +--R (- 16d ddd - 16dd)s +--R + +--R 3 2 2 3 3 +--R 32d ddd + (- 16dd - 16)ddd + (- 64d dd + 32d )ddd + 32dd +--R + +--R 2 2 2 +--R - 16d dd + 32dd - 16d +--R * +--R 3 +--R s +--R + +--R 5 2 4 2 3 3 +--R - 16d ddd + (16dd + 16dd + 16)ddd + (- 32d dd + 32d - 32d)ddd +--R + +--R 4 3 2 2 2 2 2 +--R (16dd - 32dd + (- 32d - 32)dd + (96d - 32)dd - 32d + 16)ddd +--R + +--R 4 3 2 5 3 5 +--R (16d dd + (- 32d + 96d)dd - 16d - 32d + 16d)ddd - 16dd +--R + +--R 2 4 2 3 4 2 2 +--R 16d dd + (- 32d + 32)dd + (16d - 32d )dd +--R + +--R 4 2 4 2 +--R (16d - 32d - 16)dd + 16d + 16d +--R * +--R s +--R * +--R sdd +--R + +--R 8 2 2 2 6 5 +--R - sd + (4ddd + 4dd + 4d + 4)sd + ((- 8dd - 8)ddd - 8d dd - 8d)s sd +--R + +--R 4 2 2 2 2 4 +--R 2s + (4ddd + 16d ddd + 4dd + 16dd + 4d + 4)s - 6ddd +--R + +--R 2 2 2 2 4 +--R (- 8dd + 8dd - 4d - 8)ddd + (8d dd + 32d dd + 8d)ddd - 6dd +--R + +--R 2 2 2 4 2 +--R (- 8d - 4)dd + 8d dd - 6d - 8d - 6 +--R * +--R 4 +--R sd +--R + +--R 3 +--R ((- 16dd - 16)ddd - 16d dd - 16d)s +--R + +--R 3 2 +--R (16dd + 16)ddd + (- 16d dd - 16d)ddd +--R + +--R 3 2 2 2 3 +--R (16dd - 16dd + (- 16d - 16)dd - 16d + 16)ddd + 16d dd +--R + +--R 2 3 3 +--R - 16d dd + (16d - 16d)dd + 16d + 16d +--R * +--R s +--R * +--R 3 +--R sd +--R + +--R 2 2 2 4 +--R (4ddd + 16d ddd + 4dd + 16dd + 4d + 4)s +--R + +--R 4 3 2 2 2 3 +--R - 8ddd - 16d ddd + (- 8dd + 16d - 8)ddd + (96d dd - 16d )ddd +--R + +--R 4 3 2 2 4 2 +--R - 8dd - 16dd + (- 8d + 16)dd - 16dd - 8d - 8d - 8 +--R * +--R 2 +--R s +--R + +--R 6 2 2 4 3 +--R 4ddd + (4dd - 16dd - 4d + 4)ddd - 32d dd ddd +--R + +--R 4 2 2 2 4 2 2 +--R (4dd + (24d + 24)dd + 32d dd - 4d + 24d + 4)ddd +--R + +--R 4 3 2 3 6 +--R (- 16d dd - 32d dd + 32d dd + (- 32d - 32d)dd - 16d)ddd + 4dd +--R + +--R 2 4 4 2 2 4 6 4 2 +--R (4d - 4)dd + (4d + 24d - 4)dd - 16d dd + 4d + 4d + 4d + 4 +--R * +--R 2 +--R sd +--R + +--R 5 +--R ((- 8dd - 8)ddd - 8d dd - 8d)s +--R + +--R 3 2 +--R (16dd + 16)ddd + (- 16d dd - 16d)ddd +--R + +--R 3 2 2 2 3 +--R (16dd - 16dd + (- 16d - 16)dd - 16d + 16)ddd + 16d dd +--R + +--R 2 3 3 +--R - 16d dd + (16d - 16d)dd + 16d + 16d +--R * +--R 3 +--R s +--R + +--R 5 4 +--R (- 8dd - 8)ddd + (24d dd + 24d)ddd +--R + +--R 3 2 2 2 3 +--R (- 16dd + 16dd + (- 16d + 16)dd - 16d - 16)ddd +--R + +--R 3 2 3 3 2 +--R (16d dd - 16d dd + (- 16d - 16d)dd - 16d + 16d)ddd +--R + +--R 5 4 2 3 2 2 +--R - 8dd + 24dd + (16d - 16)dd + (- 16d - 16)dd +--R + +--R 4 2 4 2 +--R (24d - 16d + 24)dd + 24d + 16d - 8 +--R * +--R ddd +--R + +--R 5 4 3 3 3 2 +--R - 8d dd + 24d dd + (- 16d - 16d)dd + (16d - 16d)dd +--R + +--R 5 3 5 3 +--R (- 8d + 16d + 24d)dd - 8d - 16d - 8d +--R * +--R s +--R * +--R sd +--R + +--R 8 2 2 2 6 +--R - s + (4ddd + 4dd + 4d + 4)s +--R + +--R 4 2 2 2 2 +--R - 6ddd + (- 8dd + 8dd - 4d - 8)ddd + (8d dd + 32d dd + 8d)ddd +--R + +--R 4 2 2 2 4 2 +--R - 6dd + (- 8d - 4)dd + 8d dd - 6d - 8d - 6 +--R * +--R 4 +--R s +--R + +--R 6 2 2 4 3 +--R 4ddd + (4dd - 16dd - 4d + 4)ddd - 32d dd ddd +--R + +--R 4 2 2 2 4 2 2 +--R (4dd + (24d + 24)dd + 32d dd - 4d + 24d + 4)ddd +--R + +--R 4 3 2 3 6 +--R (- 16d dd - 32d dd + 32d dd + (- 32d - 32d)dd - 16d)ddd + 4dd +--R + +--R 2 4 4 2 2 4 6 4 2 +--R (4d - 4)dd + (4d + 24d - 4)dd - 16d dd + 4d + 4d + 4d + 4 +--R * +--R 2 +--R s +--R + +--R 8 2 6 2 5 +--R - ddd + (8dd + 4d )ddd + (- 8d dd - 8d)ddd +--R + +--R 4 2 2 4 4 +--R (2dd - 20dd - 8d dd - 6d + 2)ddd +--R + +--R 3 3 2 3 3 +--R (32d dd + 16d dd + 32d dd + 16d )ddd +--R + +--R 5 2 4 3 2 2 4 6 2 2 +--R (- 8dd - 20d dd + 16dd - 56d dd + (- 8d - 8)dd + 4d - 20d )ddd +--R + +--R 6 4 3 3 5 2 3 5 8 +--R (8d dd - 8d dd + 32d dd + (- 8d - 8d)dd + 32d dd - 8d + 8d)ddd - dd +--R + +--R 6 2 5 4 4 2 3 4 2 6 2 +--R 4dd - 8d dd + (2d - 6)dd + 16d dd + (- 20d + 4)dd + (8d - 8d )dd +--R + +--R 8 4 +--R - d + 2d - 1 +--R Type: Fraction Polynomial Integer +--E -------------------------------------------------------------------- --- sutor/09/28/92 operator bug? -------------------------------------------------------------------- +@ +sutor/09/28/92 operator bug? +<<*>>= )clear all + +--S 96 L n == n = 0 => 1 n = 1 => x (2*n-1)/n * x * L(n-1) - (n-1)/n * L(n-2) +--R +--R Type: Void +--E + +--S 97 dx:=operator("D")::OP(POLY FRAC INT) +--R +--R (2) D +--R Type: Operator Polynomial Fraction Integer +--E + +--S 98 evaluate(dx,p+-> differentiate(p,'x)) +--R +--R There are 4 exposed and 1 unexposed library operations named +--R evaluate having 2 argument(s) but none was determined to be +--R applicable. Use HyperDoc Browse, or issue +--R )display op evaluate +--R to learn more about the available operations. Perhaps +--R package-calling the operation or using coercions on the arguments +--R will allow you to apply the operation. +--R +--RDaly Bug +--R Cannot find a definition or applicable library operation named +--R evaluate with argument type(s) +--R Operator Polynomial Fraction Integer +--R AnonymousFunction +--R +--R Perhaps you should use "@" to indicate the required return type, +--R or "$" to specify which version of the function you need. +--E + +--S 99 E n == (1-x**2)*dx**2-2*x*dx+n*(n+1) +--R Type: Void +--E + +--S 100 L 15 --- used to fail on this line +--R Compiling function L with type Integer -> Polynomial Fraction +--R Integer +--R Compiling function L as a recurrence relation. +--R +--R (4) +--R 9694845 15 35102025 13 50702925 11 37182145 9 14549535 7 +--R ------- x - -------- x + -------- x - -------- x + -------- x +--R 2048 2048 2048 2048 2048 +--R + +--R 2909907 5 255255 3 6435 +--R - ------- x + ------ x - ---- x +--R 2048 2048 2048 +--R Type: Polynomial Fraction Integer +--E + +@ +Used to fail on this line +<<*>>= + +--S 101 E 15 +--R Compiling function E with type PositiveInteger -> Operator +--R Polynomial Fraction Integer +--R +--R 2 2 +--R (5) 240 - 2x D - (x - 1)D +--R Type: Operator Polynomial Fraction Integer +--E -------------------------------------------------------------------- --- bmt/10/12/92 EFSTRUC recursion problem -------------------------------------------------------------------- +@ +bmt/10/12/92 EFSTRUC recursion problem +<<*>>= )clear all + +--S 102 bug:=(1+x**(1/4))**(1/3)/(x**(1/2)) --- gives a value stack overflow -integrate(bug,x) -- seems to go into infinite recursion in rischNormalize +--R +--R +--------+ +--R 3|4+-+ +--R \|\|x + 1 +--R (1) ----------- +--R +-+ +--R \|x +--R Type: Expression Integer +--E -------------------------------------------------------------------- --- james/10/28/92 coerce bug -------------------------------------------------------------------- +@ +Gives a value stack overflow + +Seems to go into infinite recursion in rischNormalize +<<*>>= +--S 103 +integrate(bug,x) +--R +--R +--------+ +--R 4+-+2 4+-+ 3|4+-+ +--R (12\|x + 3\|x - 9)\|\|x + 1 +--R (2) -------------------------------- +--R 7 +--R Type: Union(Expression Integer,...) +--E + +@ +james/10/28/92 coerce bug + +Improper character in Roman numeral: G +<<*>>= )clear all --- improper character in Roman numeral: G + +--S 104 g::ROMAN +--R +--R +--RDaly Bug +--R >> Error detected within library code: +--R Improper character in Roman numeral: +--R #\G +--R +--R Continuing to read the file... +--R +--E + +@ +grabm/10/28/92 runs forever -------------------------------------------------------------------- --- grabm/10/28/92 runs forever -------------------------------------------------------------------- +factor is quick but sqrt runs forever +<<*>>= )clear all --- this is quick + +--S 105 factor 1068303355883998767544567663620885466990173600 --- but this runs forever -sqrt 1068303355883998767544567663620885466990173600 +--R +--R 5 7 2 4 2 2 2 +--R (1) 2 3 5 7 17 19 23 3343 4219 326705949951846198203 +--R Type: Factored Integer +--E +--S 106 +sqrt 1068303355883998767544567663620885466990173600 +--R +--R +-----------------------------+ +--R (2) 196571340\|27647393656301898872761810506 +--R Type: AlgebraicNumber +--E -------------------------------------------------------------------- --- themos/11/05/92 fortran output bug -------------------------------------------------------------------- +@ +themos/11/05/92 fortran output bug +<<*>>= )clear all -- REAL T7,T6,T5,T4,T3,T2,T1 -- T1=x*x @@ -503,670 +2262,3465 @@ sqrt 1068303355883998767544567663620885466990173600 -- &16.*x)*T4+(-T5+16.*T6)*y)*COS(x))/(y**8+4.*T1*y**6+6.*T7*y**4+4.*x -- &**6*y*y+x**8) -- T7 is referenced before it is defined -a1:=sin(x)/(x**2+y**2);a2:=D(a1,[x,y]);a2+D(a2,x) - -------------------------------------------------------------------- --- grabm/11/05/92 --- comment: ---I believe the "bug" is that the interpreter is converting gb which is ---a list of dmp style polynomials to a list of POLY type polynomials. ---Unfortunately the result of such a conversion is no longer a groebner basis. ---I don't see any reasonable way to prevent this, and would therefore have to ---classify this as "user error", when working with grobner bases, the user ---needs to force all his polynomials to be the appropriate type (thus having ---the correct ordering). -------------------------------------------------------------------- --- expressing a symmetric functions in terms of elementary symm. functions --- working in POLY INT is o.k. + +--S 107 +a1:=sin(x)/(x**2+y**2) +--R +--R sin(x) +--R (1) ------- +--R 2 2 +--R y + x +--R Type: Expression Integer +--E + +--S 108 +a2:=D(a1,[x,y]) +--R +--R 3 2 +--R 8x y sin(x) + (- 2y - 2x y)cos(x) +--R (2) ---------------------------------- +--R 6 2 4 4 2 6 +--R y + 3x y + 3x y + x +--R Type: Expression Integer +--E + +--S 109 +a2+D(a2,x) +--R +--R (3) +--R 5 2 3 4 3 2 +--R (2y + (4x + 8x + 8)y + (2x + 8x - 40x )y)sin(x) +--R + +--R 5 2 3 4 3 +--R (- 2y + (- 4x + 16x)y + (- 2x + 16x )y)cos(x) +--R / +--R 8 2 6 4 4 6 2 8 +--R y + 4x y + 6x y + 4x y + x +--R Type: Expression Integer +--E + +@ +grabm/11/05/92 + +I believe the ``bug'' is that the interpreter is converting gb which is +a list of dmp style polynomials to a list of POLY type polynomials. +Unfortunately the result of such a conversion is no longer a groebner basis. +I don't see any reasonable way to prevent this, and would therefore have to +classify this as ``user error'', when working with grobner bases, the user +needs to force all his polynomials to be the appropriate type (thus having +the correct ordering). + +Expressing a symmetric functions in terms of elementary symm. functions +working in POLY INT is o.k. +<<*>>= +)clear all + +--S 110 R := FRAC INT --- (1) Fraction Integer +--R +--R (1) Fraction Integer +--R Type: Domain +--E + +--S 111 lpx : List POLY R := [x1+x2+x3, x1*x2+x1*x3+x2*x3,x1*x2*x3] --- (2) [x3 + x2 + x1,(x2 + x1)x3 + x1 x2,x1 x2 x3] -lip := [lpx.1-e3, lpx.2-e2, lpx.3-e1] --- (3) [x3 + x2 + x1 - e3,(x2 + x1)x3 + x1 x2 - e2,x1 x2 x3 - e1] +--R +--R (2) [x3 + x2 + x1,(x2 + x1)x3 + x1 x2,x1 x2 x3] +--R Type: List Polynomial Fraction Integer +--E + +--S 112 +lip := [lpx.1-e3, lpx.2-e2, lpx.3-e1]--R +--R +--R (3) [x3 + x2 + x1 - e3,(x2 + x1)x3 + x1 x2 - e2,x1 x2 x3 - e1] +--R Type: List Polynomial Fraction Integer +--E + +--S 113 gbp := groebner lip --- (4) --- 2 2 --- [x3 + x2 + x1 - e3, x2 + (x1 - e3)x2 + x1 - e3 x1 + e2, --- 3 2 --- x1 - e3 x1 + e2 x1 - e1] +--R +--R (4) +--R 2 2 +--R [x3 + x2 + x1 - e3, x2 + (x1 - e3)x2 + x1 - e3 x1 + e2, +--R 3 2 +--R x1 - e3 x1 + e2 x1 - e1] +--R Type: List Polynomial Fraction Integer +--E + +--S 114 normalForm(x1**2+x2**2+x3**2,gbp) --- 2 --- (5) e3 - 2e2 --- working in DMP is o.k. +--R +--R 2 +--R (5) e3 - 2e2 +--R Type: Polynomial Fraction Integer +--E + +--S 115 dmp := DMP([x1,x2,x3,e1,e2,e3],INT) --- (6) DistributedMultivariatePolynomial([x1,x2,x3,e1,e2,e3],Integer) +--R +--R (6) DistributedMultivariatePolynomial([x1,x2,x3,e1,e2,e3],Integer) +--R Type: Domain +--E + +--S 116 li : List dmp := [lpx.1-e1, lpx.2-e2, lpx.3-e3] --- (7) [x1 + x2 + x3 - e1,x1 x2 + x1 x3 + x2 x3 - e2,x1 x2 x3 - e3] +--R +--R (7) [x1 + x2 + x3 - e1,x1 x2 + x1 x3 + x2 x3 - e2,x1 x2 x3 - e3] +--R Type: List DistributedMultivariatePolynomial([x1,x2,x3,e1,e2,e3],Integer) +--E + +--S 117 gb := groebner li --- (8) --- 2 2 --- [x1 + x2 + x3 - e1, x2 + x2 x3 - x2 e1 + x3 - x3 e1 + e2, --- 3 2 --- x3 - x3 e1 + x3 e2 - e3] +--R +--R (8) +--R 2 2 +--R [x1 + x2 + x3 - e1, x2 + x2 x3 - x2 e1 + x3 - x3 e1 + e2, +--R 3 2 +--R x3 - x3 e1 + x3 e2 - e3] +--R Type: List DistributedMultivariatePolynomial([x1,x2,x3,e1,e2,e3],Integer) +--E + +--S 118 p:dmp:=(x1**2+x2**2+x3**2) --- 2 2 2 --- (9) x1 + x2 + x3 +--R +--R 2 2 2 +--R (9) x1 + x2 + x3 +--R Type: DistributedMultivariatePolynomial([x1,x2,x3,e1,e2,e3],Integer) +--E + +--S 119 normalForm(p,gb) --- 2 --- (10) e1 - 2e2 --- but we have some problems (coercion? ordering?) here: +--R +--R 2 +--R (10) e1 - 2e2 +--RType: DistributedMultivariatePolynomial([x1,x2,x3,e1,e2,e3],Fraction Integer) +--E + +--S 120 normalForm(x1**2+x2**2+x3**2,gb) --- 2 2 2 --- (11) 2x2 + (2x1 - 2e1)x2 + 2x1 - 2e1 x1 + e1 +--R +--R 2 2 2 +--R (11) 2x2 + (2x1 - 2e1)x2 + 2x1 - 2e1 x1 + e1 +--R Type: Polynomial Fraction Integer +--E +@ +bmt/11/17/92 Ifintegrate + +It seems that one cannot simply parametrize reducible curves. +Any attempt at parametrization can only follow one branch. +For curves of the form $y^2=a^2x^2+bx+c$, these are only reducible +if $a^2x^2+bx+c$ is a perfect square. Basically I think we need to +choose 1 branch in this case. Under some circumstances we could +try to proceed down both branches and then unify the result, but for +the time being, perhaps we should just perform the substitution +$y=sqrt(a^2x^2+bx+c)$ whenever that is a perfect square. +(then we don't even need to do any back subsitution or change to dx). + +For another example, perhaps due to the same essential difficulty try +<<*>>= +)clear all +--S 121 +integrate(normalize(sqrt(1+cos(x)),x),x) +--R +--R +--------+ +--R x | x 2 +--R 2sin(-) |2cos(-) +--R 2 \| 2 +--R (1) ------------------ +--R x +--R cos(-) +--R 2 +--R Type: Union(Expression Integer,...) +--E +@ +This gets a non-invertible error -------------------------------------------------------------------- --- bmt/11/17/92 Ifintegrate -------------------------------------------------------------------- ---It seems that one cannot simply parametrize reducible curves. ---Any attempt at parametrization can only follow one branch. ---For curves of the form y**2=a**2*x**2+b*x+c, these are only reducible ---if a**2*x**2+b*x+c is a perfect square. Basically I think we need to ---choose 1 branch in this case. Under some circumstances we could ---try to proceed down both branches and then unify the result, but for ---the time being, perhaps we should just perform the substitution ---y=sqrt(a**2*x**2+b*x+c) whenever that is a perfect square. ---(then we don't even need to do any back subsitution or change to dx). --- ---For another example, perhaps due to the same essential difficulty try +I have fixed integrate(sqrt(1+cos(x)),x) and integrate(normalize(sqrt(1+cos(x)),x),x) --- this gets a non-invertible error +fix was to function prootintegrate in INTPAF in intaf.spad ---I have fixed integrate(sqrt(1+cos(x)),x) and ---integrate(normalize(sqrt(1+cos(x)),x),x) ---fix was to function prootintegrate in INTPAF in intaf.spad +james/02/11/93 integrate +used to give error: +\begin{verbatim} + No identity element for reduce of empty list using operation max +\end{verbatim} +<<*>>= +)clear all -------------------------------------------------------------------- --- james/02/11/93 integrate --- used to give error: --- No identity element for reduce of empty list using operation --- max -------------------------------------------------------------------- +--S 122 integrate(((-x-1)*log((x**2+x))**2+2*log(x))/(x+1),x) +--R +--R x 2 2 +--I ++ (- %K - 1)log(%K + %K) + 2log(%K) +--I (1) | ----------------------------------- d%K +--I ++ %K + 1 +--R Type: Union(Expression Integer,...) +--E -------------------------------------------------------------------- --- dewar/02/15/93 -------------------------------------------------------------------- +@ +dewar/02/15/93 + +\begin{verbatim} + i::Polynomial(Integer) + %::Union(Symbol,Polynomial Integer) + list % +\end{verbatim} +This is a bug in old style union handling, this style of unions +will become obsolete, so the suggested fix is to use tagged unions instead: + +<<*>>= )clear all ---i::Polynomial(Integer) ---%::Union(Symbol,Polynomial Integer) ---list % --- ---this is a bug in old style union handling, this style of unions ---will become obsolete, so the suggested fix is to use tagged unions instead: -i::POLY INT -%::Union(s:Symbol, p:POLY INT) -list % -- works -------------------------------------------------------------------- --- grabm/03/04/93 --- parser bug? not for system commands -------------------------------------------------------------------- +--S 123 +t1:=i::POLY INT +--R +--R (1) i +--R Type: Polynomial Integer +--E + +--S 124 +t2:=t1::Union(s:Symbol, p:POLY INT) +--R +--R (2) i +--R Type: Union(p: Polynomial Integer,...) +--E + +--S 125 +list t2 +--R +--R (3) [i] +--R Type: List Union(s: Symbol,p: Polynomial Integer) +--E + +@ +grabm/03/04/93 parser bug? not for system commands +\begin{verbatim} )clear all -- gives error: Sorry, but no option begins with upd; )load /spad/mnt/rios/algebra/EQ )upd; a:=1 -- works )load /spad/mnt/rios/algebra/EQ )upd ; a:=1 +\end{verbatim} -------------------------------------------------------------------- --- bronstein/03/08/93 -------------------------------------------------------------------- +bronstein/03/08/93 wrong particular solution +<<*>>= )clear all + +--S 126 I:=operator 'I +--R +--R (1) I +--R Type: BasicOperator +--E + +--S 127 J:=operator 'J +--R +--R (2) J +--R Type: BasicOperator +--E + +--S 128 eq := mu * D(I x,x) = - (K + S) * I(x) + S*J(x) +--R +--R , +--R (3) muI (x)= S J(x) + (- S - K)I(x) +--R +--R Type: Equation Expression Integer +--E + +--S 129 solve(eq,I,x) ---> wrong particular solution - -------------------------------------------------------------------- --- dewar/03/16/93 --- bug writing backslash to files ---comment: ---This is not a bug, what is written to the file is the lisp representation ---of the string "\\test" (since '\' is lisp escape character). ---The file is read and written using lisp primitives and thus the escape ---characters need to be doubled. This is consistent, since if you read the ---item back in from the file, the correct string is reconstituted. --- ---If you want to create a text file which simply contains lines of text ---instead of lines of lisp strings, use: ---ofile : TextFile := open("test","output") ... ---then you will get a file of literal strings with no string delimiters and ---no escape characters. -------------------------------------------------------------------- +--R +--R (4) +--R (- S - K)x (- S - K)x +--R ---------- x ---------- +--I mu ++ S J(%K) mu +--I [particular= %e | ------------------ d%K ,basis= [%e ]] +--I ++ - %K S - %K K +--R ------------- +--R mu +--R mu %e +--RType: Union(Record(particular: Expression Integer,basis: List Expression Integer),...) +--E + +@ + +dewar/03/16/93 bug writing backslash to files + +This is not a bug, what is written to the file is the lisp representation +of the string "\\test" (since '\' is lisp escape character). +The file is read and written using lisp primitives and thus the escape +characters need to be doubled. This is consistent, since if you read the +item back in from the file, the correct string is reconstituted. + +If you want to create a text file which simply contains lines of text +instead of lines of lisp strings, use: +\begin{verbatim} + ofile : TextFile := open("test","output") ... +\end{verbatim} +then you will get a file of literal strings with no string delimiters and +no escape characters. +<<*>>= )clear all + +--S 130 ofile: File String := open("/tmp/test","output") --- this writes "\\\\test" but should write "\\test" +--R +--R (1) "/tmp/test" +--R Type: File String +--E + +@ +This writes ``\verb|\\\\test|'' but should write ``\verb|\\test|'' +<<*>>= + +--S 131 write!(ofile,"\\test"::String) +--R +--R (2) "\\test" +--R Type: String +--E + +--S 132 close! ofile +--R +--R (3) "/tmp/test" +--R Type: File String +--E + +@ + +themos/04/07/93 this sometimes fails -------------------------------------------------------------------- --- themos/04/07/93 --- this sometimes fails --- comment: ---thanks for tracing down the problem. Basically the lines for monicizing ---the result need to be done before we try to ---retract back from the algebraic extension. -------------------------------------------------------------------- +Thanks for tracing down the problem. Basically the lines for monicizing +the result need to be done before we try to +retract back from the algebraic extension. +<<*>>= )clear all + +--S 133 pol:DMP([x,y,z],PF(2)):=x**2*y**2+x**2*y*z+x**2*z**2+x*y*z**2+y**3*z+y*z**3 +--R +--R 2 2 2 2 2 2 3 3 +--R (1) x y + x y z + x z + x y z + y z + y z +--R Type: DistributedMultivariatePolynomial([x,y,z],PrimeField 2) +--E + +--S 134 factor pol +--R +--R 2 2 2 2 2 2 3 3 +--R (2) x y + x y z + x z + x y z + y z + y z +--R Type: Factored DistributedMultivariatePolynomial([x,y,z],PrimeField 2) +--E + +@ +williamson/04/21/93 -------------------------------------------------------------------- --- williamson/04/21/93 --- comment: ---I ran into some problems when factoring polynomials over number fields. ---Evidently the interpretor doesn't choose the correct function 'factor'. ---It uses a function from MULTFACT, when it should be using a function from ---SAEFACT. -------------------------------------------------------------------- +I ran into some problems when factoring polynomials over number fields. +Evidently the interpretor doesn't choose the correct function 'factor'. +It uses a function from MULTFACT, when it should be using a function from +SAEFACT. +<<*>>= )clear all + +--S 135 up := UP('w,FRAC INT) +--R +--R (1) UnivariatePolynomial(w,Fraction Integer) +--R Type: Domain +--E + +--S 136 p : up := w**4 + w**3 + w**2 + w + 1 +--R +--R 4 3 2 +--R (2) w + w + w + w + 1 +--R Type: UnivariatePolynomial(w,Fraction Integer) +--E + +--S 137 sae := SAE(FRAC INT,up,p) +--R +--R (3) +--R SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(w,Fraction Int +--R eger),w**4+w**3+w*w+w+1) +--R Type: Domain +--E + +--S 138 q : UP('x,sae) := x**5 - 1 -factor q -- used to report: x**5-1 +--R +--R 5 +--R (4) x - 1 +--RType: UnivariatePolynomial(x,SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(w,Fraction Integer),w**4+w**3+w*w+w+1)) +--E + +@ +Used to report: x**5-1 +<<*>>= +--S 139 +factor q +--R +--R 2 3 3 2 +--R (5) (x - 1)(x - w)(x - w )(x - w )(x + w + w + w + 1) +--RType: Factored UnivariatePolynomial(x,SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(w,Fraction Integer),w**4+w**3+w*w+w+1)) +--E + +--S 140 saefact := SAEFACT(up,sae,UP('x,sae)) +--R +--R (6) +--R SimpleAlgebraicExtensionAlgFactor(UnivariatePolynomial(w,Fraction Integer),Si +--R mpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(w,Fraction Integ +--R er),w**4+w**3+w*w+w+1),UnivariatePolynomial(x,SimpleAlgebraicExtension(Fracti +--R on Integer,UnivariatePolynomial(w,Fraction Integer),w**4+w**3+w*w+w+1))) +--R Type: Domain +--E + +--S 141 factor(q)$saefact +--R +--R 2 3 3 2 +--R (7) (x - 1)(x - w)(x - w )(x - w )(x + w + w + w + 1) +--RType: Factored UnivariatePolynomial(x,SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(w,Fraction Integer),w**4+w**3+w*w+w+1)) +--E + +@ + +grabm/04/30/93 -------------------------------------------------------------------- --- grabm/04/30/93 --- comment: ---This bug has been fixed at yorktown, in radix.spad, change line 163, the ---third line of intgroup to be: --- empty? rest li => intToExpr first(li) ---and then recompile RADIX -------------------------------------------------------------------- +This bug has been fixed at yorktown, in radix.spad, change line 163, the +third line of intgroup to be: +\begin{verbatim} + empty? rest li => intToExpr first(li) +\end{verbatim} +and then recompile RADIX + +Results in 10 and not A +<<*>>= )clear all --- results in 10 and not A + +--S 142 10::RadixExpansion(16) +--R +--R (1) A +--R Type: RadixExpansion 16 +--E + +@ +bronstei@inf.ethz.ch (manuel bronstein) -------------------------------------------------------------------- --- bronstei@inf.ethz.ch (manuel bronstein) -------------------------------------------------------------------- +Used to return x, now returns 1 +<<*>>= )clear all + +--S 143 r:=rule 'x == 1 --- used to return x, now returns 1 +--R +--R (1) x == 1 +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E + +--S 144 r x +--R +--R (2) 1 +--R Type: Expression Integer +--E + +@ +ADK@scri.fsu.edu (tony kennedy) -------------------------------------------------------------------- --- ADK@scri.fsu.edu (tony kennedy) -------------------------------------------------------------------- +<<*>>= )clear all -factor(-12) -%**2 -------------------------------------------------------------------- --- bronstei@inf.ethz.ch (manuel bronstein) --- >> Error: cannot retract nonconstant polynomial -------------------------------------------------------------------- +--S 145 +t1:=factor(-12) +--R +--R 2 +--R (1) - 2 3 +--R Type: Factored Integer +--E + +--S 146 +t1**2 +--R +--R 4 2 +--R (2) 2 3 +--R Type: Factored Integer +--E + +@ +bronstei@inf.ethz.ch (manuel bronstein) + +Error: cannot retract nonconstant polynomial +<<*>>= )clear all + +--S 147 complexNumeric(log(sqrt(-3))) +--R +--R (1) 0.5493061443 340548457 + 1.5707963267 948966192 %i +--R Type: Complex Float +--E + +@ +quitte@knuth.univ-poitiers.fr/8/15/93 (Claude Quitte) + +Why is it impossible to specify the target/cible types for the +functions leftProductBy and rightProductBy in the body of the package ??? -------------------------------------------------------------------- --- quitte@knuth.univ-poitiers.fr/8/15/93 (Claude Quitte) -------------------------------------------------------------------- +The code for leftProductBy is correct but the code for rightProductBy +troubles the compiler !!!! It seems to compile a LOCAL function with +ANOTHER signature. + +\begin{verbatim} + initializing nrlib TEST for Test + compiling into nrlib TEST + compiling exported leftProductBy : Integer -> Integer -> Integer +Time: 0.35 SEC. + + compiling local rightProductBy : Integer -> Integer +****** comp fails at level 2 with expression: ****** +error in function rightProductBy + +****** level 2 ****** +$x:= #1 +$m:= $EmptyMode +$f:= +((((|n| # #) (|rightProductBy| # # #) (|n| #) (|rightProductBy| # # #) ...))) + + >> Apparent user error: + no mode found for + #1 + You are being returned to the top level of the interpreter. +\end{verbatim} +answer (barry): + +Your problem in TEST about specifying target types which are Mapping's +was a bug in the compiler and has been fixed for Axiom release 2.0. + +<<*>>= +\begin{verbatim} )clear all ---)abbreviation package TEST Test --- ---Test() : with --- --- leftProductBy : Integer -> (Integer -> Integer) --- rightProductBy : Integer -> Mapping(Integer, Integer) --- --- == add --- --- leftProductBy(n) == n * #1 --- --- rightProductBy(n : Integer) : Mapping(Integer, Integer) == #1 * n --------------------------------------------------------------------------- --- ---Why is it impossible to specify the target/cible types for the ---functions leftProductBy and rightProductBy in the body of the package ??? --- ---The code for leftProductBy is correct but the code for rightProductBy ---troubles the compiler !!!! It seems to compile a LOCAL function with ---ANOTHER signature. --- --------------------------------------------------------------------------- --- initializing nrlib TEST for Test --- compiling into nrlib TEST --- compiling exported leftProductBy : Integer -> Integer -> Integer ---Time: 0.35 SEC. --- --- compiling local rightProductBy : Integer -> Integer ---****** comp fails at level 2 with expression: ****** ---error in function rightProductBy --- ---****** level 2 ****** ---$x:= #1 ---$m:= $EmptyMode ---$f:= ---((((|n| # #) (|rightProductBy| # # #) (|n| #) (|rightProductBy| # # #) ...))) --- --- >> Apparent user error: --- no mode found for --- #1 --- You are being returned to the top level of the interpreter. ------------------------------------------------------------------------- --- answer (barry): --- ---Your problem in TEST about specifying target types which are Mapping's ---was a bug in the compiler and has been fixed for Axiom release 2.0. --- +)sys rm -f /tmp/tpd.spad +)lisp (setq ofile (open "/tmp/tpd.spad" :direction :output)) +)lisp (format ofile ")abbreviation package TPD Tpd~%") +)lisp (format ofile "Tpd() : with~%") +)lisp (format ofile " leftProductBy : Integer -> (Integer -> Integer)~%") +)lisp (format ofile " rightProductBy : Integer -> Mapping(Integer, Integer)~%") +)lisp (format ofile " == add~%") +)lisp (format ofile " leftProductBy(n) == n * #1~%") +)lisp (format ofile " rightProductBy(n : Integer) : Mapping(Integer, Integer) == #1 * n~%") +)lisp (close ofile) +)compile /tmp/tpd.spad +)sys rm -f /tmp/tpd.spad +)sys rm -rf /tmp/TPD.nrlib -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/10/6/93 (Manuel Bronstein) -------------------------------------------------------------------- +@ +bronstei@inf.ethz.ch/10/6/93 (Manuel Bronstein) + +Here is algfunc.spad with an old bug fixed: eventh-roots of negative floats +coerced to EXPR FLOAT (e.g. sqrt(-1::EXPR FLOAT)) used to produced an error +message since the sqrt from FLOAT was called. + +I have now fixed iroot from AF(R,) +to call the sqrt from R only if either R is algebraically closed, or the +root is odd, or the argument is positive. Here's the new behaviour: + +As a side-effect, this fixes the problem with numeric +(which was instantiating \verb|sqrt(-1)\$EXPR(FLOAT))|. +<<*>>= )clear all ---Here is algfunc.spad with an old bug fixed: eventh-roots of negative floats ---coerced to EXPR FLOAT (e.g. sqrt(-1::EXPR FLOAT)) used to produced an error ---message since the sqrt from FLOAT was called. ---I have now fixed iroot from AF(R,) ---to call the sqrt from R only if either R is algebraically closed, or the ---root is odd, or the argument is positive. Here's the new behaviour: + +--S 148 sqrt(-1::EXPR FLOAT) +--R +--R +-----+ +--R (1) \|- 1.0 +--R Type: Expression Float +--E + +--S 149 sqrt(2::EXPR FLOAT) +--R +--R +--R (2) 1.4142135623 730950488 +--R Type: Expression Float +--E + +--S 150 nthRoot(-2::EXPR FLOAT, 3) +--R +--R (3) - 1.2599210498 948731648 +--R Type: Expression Float +--E + +--S 151 nthRoot(-2::EXPR FLOAT, 4) ---As a side-effect, this fixes the problem with numeric --- (which was instantiating sqrt(-1)$EXPR(FLOAT)). +--R +--R 4+-----+ +--R (4) \|- 2.0 +--R Type: Expression Float +--E -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/10/6/93 (Manuel Bronstein) -------------------------------------------------------------------- +@ +bronstei@inf.ethz.ch/10/6/93 (Manuel Bronstein) + +Here is an updated efstruc.spad where ker2trigs now knows about abs. +<<*>>= )clear all ---Here is an updated efstruc.spad where ker2trigs now knows about abs. -real abs(4 + %i * 5) -- does the right thing. -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/10/5/93 (Manuel Bronstein) -------------------------------------------------------------------- +--S 152 +real abs(4 + %i * 5) +--R +--R +--+ +--R (1) \|41 +--R Type: Expression Integer +--E + +@ +bronstei@inf.ethz.ch/10/5/93 (Manuel Bronstein) + +Here is again an enhanced elemntry.spad. What happens now is that +\begin{verbatim} + exp(q * %i * %pi) +\end{verbatim} +gets automatically simplifed whenever q is a rational number whose +denominator is one of \{1,2,3,4,6\}. +<<*>>= )clear all ---Here is again an enhanced elemntry.spad. What happens now is that -exp(q * %i * %pi) ---gets automatically simplifed whenever q is a rational number whose ---denominator is one of {1,2,3,4,6}. + +--S 153 exp(5/3*%i*%pi) +--R +--R +-+ +--R - %i\|3 + 1 +--R (1) ------------ +--R 2 +--R Type: Expression Complex Integer +--E -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein) --- luczak@nag.com (Richard Luczak) -------------------------------------------------------------------- +@ +bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein),\\ +luczak@nag.com (Richard Luczak) +<<*>>= )clear all + +--S 154 exp(log(-1)) +--R +--R (1) - 1 +--R Type: Expression Integer +--E + +--S 155 sum((-1)**k * (k+m),k=0..n) +--R +--R n +--R (2n + 2m + 1)(- 1) + 2m - 1 +--R (2) ---------------------------- +--R 4 +--R Type: Expression Integer +--E + +@ +bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein) -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein) -------------------------------------------------------------------- +Simplifies (abs now checks quotients instead of just retraction to R). +<<*>>= )clear all ---simplifies (abs now checks quotients instead of just retraction to R). + +--S 156 abs((1/2)::EXPR(INT)) +--R +--R 1 +--R (1) - +--R 2 +--R Type: Expression Integer +--E -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein) -------------------------------------------------------------------- +@ +bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein) +<<*>>= )clear all + +--S 157 integrate(1/(x**2 + %i*a),x) +--R +--R +--+ +--+ +--+ +--+ +--R |%i |%i |%i |%i +--R |-- log(%i a |-- + x) - |-- log(- %i a |-- + x) +--R \| a \| a \| a \| a +--R (1) --------------------------------------------------- +--R 2 +--R Type: Union(Expression Complex Integer,...) +--E -------------------------------------------------------------------- --- bmt@spadserv.watson.ibm.com/9/28/93 (Barry Trager) -------------------------------------------------------------------- +@ +bmt@spadserv.watson.ibm.com/9/28/93 (Barry Trager) +<<*>>= )clear all + +--S 158 limit(1/2**n,n=%plusInfinity) +--R +--R (1) 0 +--R Type: Union(OrderedCompletion Expression Integer,...) +--E + +@ +bronstei@inf.ethz.ch/9/22/93 (Manuel Bronstein) -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/9/22/93 (Manuel Bronstein) -------------------------------------------------------------------- +Here is an update to efstruc.spad that handles complex constants much better. +Negative square roots and negative logs are now recognized as complex and +treated properly by real?, real, imag, and complexForm: + +As a result, integrals involving sqrt(-2) etc... are now treated correctly +(this was the case only for sqrt(-1) with the older version). +<<*>>= )clear all ---Here is an update to efstruc.spad that handles complex constants much better. ---Negative square roots and negative logs are now recognized as complex and ---treated properly by real?, real, imag, and complexForm: + +--S 159 x := sqrt(-3) + sqrt 2 + sqrt(- exp a) + log(-a**2-1) +--R +--R +-----+ +--R | a 2 +-+ +---+ +--R (1) \|- %e + log(- a - 1) + \|2 + \|- 3 +--R Type: Expression Integer +--E + +--S 160 real? x +--R +--R (2) false +--R Type: Boolean +--E + +--S 161 real x +--R +--R 2 +-+ +--R (3) log(a + 1) + \|2 +--R Type: Expression Integer +--E + +--S 162 imag x ---As a result, integrals involving sqrt(-2) etc... are now treated correctly ---(this was the case only for sqrt(-1) with the older version). - -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/9/22/93 (Manuel Bronstein) -------------------------------------------------------------------- -)clear all --->> haha := rule x*x == z --->> haha(a*a + b*b + c**2) --> 3z --->> haha(a*a + b*b + c**2 + d*d) --> z --->> --->> the bug is that the last line returns z instead of 4z. --- ---Sorry guys, this is not a bug: haha is so general a rule that it matches ---the integer 4 (as 2 squared), so the rewrite chain for the last example is: --- ---a*a + b*b + c**2 + d*d ---> z + z + z + z = 4 * z ---> z * z ---> z --- ---Here is a console showing what exactly happens: +--R +--R +---+ +--R | a +-+ +--R (4) \|%e + \|3 + %pi +--R Type: Expression Integer +--E + +@ +bronstei@inf.ethz.ch/9/22/93 (Manuel Bronstein) +\begin{verbatim} + haha := rule x*x == z + haha(a*a + b*b + c**2) --> 3z + haha(a*a + b*b + c**2 + d*d) --> z +\end{verbatim} + +The bug is that the last line returns z instead of 4z. + +Sorry guys, this is not a bug: haha is so general a rule that it matches +the integer 4 (as 2 squared), so the rewrite chain for the last example is: +\begin{verbatim} + a*a + b*b + c**2 + d*d ---> z + z + z + z = 4 * z ---> z * z ---> z +\end{verbatim} +Here is a console showing what exactly happens: +<<*>>= +)clear all + +--S 163 haha := rule x*x == z +--R +--R 2 +--R (1) x == z +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E + +--S 164 haha 4 +--R +--R (2) z +--R Type: Expression Integer +--E + +--S 165 haha 3 +--R +--R (3) 3 +--R Type: Expression Integer +--E + +--S 166 haha(4*z) +--R +--R (4) z +--R Type: Expression Integer +--E + +--S 167 haha(3*z) ---To see the whole rewrite chain: -a*a + b*b + c**2 + d*d -applyRules([haha], %, 1)$APPRULE(INT,INT,EXPR INT) -applyRules([haha], %, 1)$APPRULE(INT,INT,EXPR INT) -applyRules([haha], %, 1)$APPRULE(INT,INT,EXPR INT) ---I think it's actually the proper behavior for the pattern matcher. This ---example shows that rules can bite, something Mma users are quite aware about! - -------------------------------------------------------------------- --- dewar/9/16/93 (mike dewar) -------------------------------------------------------------------- ---There's an odd discontinuity about the behaviour of the following ---function: +--R +--R (5) 3z +--R Type: Expression Integer +--E + +@ +To see the whole rewrite chain: +<<*>>= + +--S 168 +t1:=a*a + b*b + c**2 + d*d +--R +--R 2 2 2 2 +--R (6) d + c + b + a +--R Type: Polynomial Integer +--E + +--S 169 +t2:=applyRules([haha], t1, 1)$APPRULE(INT,INT,EXPR INT) +--R +--R (7) 4z +--R Type: Expression Integer +--E + +--S 170 +t3:=applyRules([haha], t2, 1)$APPRULE(INT,INT,EXPR INT) +--R +--R 2 +--R (8) z +--R Type: Expression Integer +--E + +--S 171 +t4:=applyRules([haha], t3, 1)$APPRULE(INT,INT,EXPR INT) +--R +--R (9) z +--R Type: Expression Integer +--E + +@ +I think it's actually the proper behavior for the pattern matcher. This +example shows that rules can bite, something Mma users are quite aware about! + +dewar/9/16/93 (mike dewar) + +There's an odd discontinuity about the behaviour of the following function: + +<<*>>= +)clear all +--S 172 harm(1) == 1 +--R Type: Void +--E + +--S 173 harm(n) == harm(n-1) + 1/n +--R Type: Void +--E + +--S 174 harm : Integer -> Fraction Integer -harm(1023) -- takes a little while, as expected -harm(1024) -- takes forever? - -------------------------------------------------------------------- --- williams@inf.ethz.ch/9/1/93 (Clifton Williamson) -------------------------------------------------------------------- ---> we should probably support integrate(%,x) on series types. ---> x could be either the variable of expansion or a parameter variable. --- ---We've discussed this before with regard to the function 'differentiate'. ---The technical problem is that "generalized" power series may have ---"coefficients" involving the series variable: -series(x**x,x=0) ---In this case, as currently implemented, 'differentiate' returns incorrect ---answers: -)set mess test off -differentiate % -)set mess test on ---The solution we discussed (perhaps "resolution" is a better word) was to ---create a separate series type for generalized series. This would be a ---carbon copy of UPXS, except that differentiate(series,variable(series)) and ---integrate(series,variable(series)) would return an error message. The ---error message could also suggest that the user first apply 'approximate', ---then compute a derivative or integral. We would also have a coercion from ---UPXS to this type. The function 'series' would return a UPXS, when the ---coefficients do not involve the series variable, and a "generalized series", ---when the coefficients involve the series variable. --- ---If this sounds cool to you, I'll go ahead with it when I have time. (I'm ---trying to meet a 16 September deadline for a MEGA '94 submission. I'm still ---getting my results together, so time is tight. Let me know if there is a ---time deadline for the AXIOM code!) --- ---> Also we need better tools for taking finite truncations of series objects. ---> In particular since we now mostly use series(expr,var) to create a series, ---> UPXS if over a coefficient domain which supports the symbol of expansion, ---> should be able to truncate a series to an EXPR. --- ---I thought I had you on this one! The signature is there (in pscat.spad): --- --- if Coef has coerce: Symbol -> Coef then --- if Coef has "**":(Coef,Expon) -> Coef then --- approximate: ($,Expon) -> Coef --- ++ \spad{approximate(f)} returns a truncated power series with the --- ++ series variable viewed as an element of the coefficient domain. --- ---It certainly works for Laurent series: -laurent(cos(a+x)/x,x=0) -approximate(%,3) ---But, unfortunately, I never implemented it for Puiseux series: -puiseux(cos(a+x)/x,x=0) -approximate(%,3) -series(cos(x**(2/3) + a),x=0) -approximate(%,2) -approximate(%% 1,7/5) - - -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/10/6/93 (manuel bronstein) -------------------------------------------------------------------- -)clear all -)set message type off - --- Here is algfunc.spad with an old bug fixed: eventh-roots of negative floats --- coerced to EXPR FLOAT (e.g. sqrt(-1::EXPR FLOAT)) used to produced an error --- message since the sqrt from FLOAT was called. --- I have now fixed iroot from AF(R,) --- to call the sqrt from R only if either R is algebraically closed, or the --- root is odd, or the argument is positive. Here's the new behaviour: +--R Type: Void +--E + +--S 175 +harm(1023) +--R Compiling function harm with type Integer -> Fraction Integer +--R Compiling function harm as a recurrence relation. +--R +--R (4) +--R 56918929836783747778186562994910417364284519936484803738256503363047591584_ +--R 2733402533503384016070102378254838554019021072460441324115730731899754524_ +--R 3051637047716166927952839924926898113855910441901034429495456850574721819_ +--R 0959291999714039498339199810512595613399980225816207570338522992407348206_ +--R 8458996501642275777927445608416707051265982507444007863105751583310646982_ +--R 3197880912123301992627534179914738912810939235218743092316208657821544413_ +--R 7507111 +--R / +--R 75809030906834453523777687598142141106414192506285711254121803198491495253_ +--R 8828569124484088941284219071465702944545255084351101237230340026626588247_ +--R 6367291194600696876416243191521584529737974727209031624214028323361847170_ +--R 9764957043186933388156027004157275042770718773974970630837005685761111898_ +--R 3824612373575784564285126841732340269099782510311467722310664215128464192_ +--R 0090417465131869897386008931792841181410706392968052396422445537614139284_ +--R 160000 +--R Type: Fraction Integer +--E + +--S 176 +harm(1024) +--R +--R (5) +--R 11385266612491648666057698881942984686550388639494349140449232739078238853_ +--R 8713454502191389383076154933054707275314439864005454497269185801458595955_ +--R 4127443958199377930451435489735214028719028533199097687298001800355635024_ +--R 8967439746760057644460577384504944069458175160764295712712838133748769663_ +--R 0859452124788876557627760315566968995024077356615956093475101696822581124_ +--R 2802077948390776255359440156469896861491512274902986275736609357453715408_ +--R 90803597 +--R / +--R 15161806181366890704755537519628428221282838501257142250824360639698299050_ +--R 7765713824896817788256843814293140588909051016870220247446068005325317649_ +--R 5273458238920139375283248638304316905947594945441806324842805664672369434_ +--R 1952991408637386677631205400831455008554143754794994126167401137152222379_ +--R 6764922474715156912857025368346468053819956502062293544462132843025692838_ +--R 4018083493026373979477201786358568236282141278593610479284489107522827856_ +--R 8320000 +--R Type: Fraction Integer +--E + +@ +williams@inf.ethz.ch/9/1/93 (Clifton Williamson) + +We should probably support integrate(%,x) on series types. +x could be either the variable of expansion or a parameter variable. + +We've discussed this before with regard to the function 'differentiate'. +The technical problem is that ``generalized'' power series may have +``coefficients'' involving the series variable: +<<*>>= +)clear all + +--S 177 +t1:=series(x**x,x=0) +--R +--R (1) +--R 2 3 4 5 +--R log(x) 2 log(x) 3 log(x) 4 log(x) 5 +--R 1 + log(x)x + ------- x + ------- x + ------- x + ------- x +--R 2 6 24 120 +--R + +--R 6 7 8 9 10 +--R log(x) 6 log(x) 7 log(x) 8 log(x) 9 log(x) 10 11 +--R ------- x + ------- x + ------- x + ------- x + -------- x + O(x ) +--R 720 5040 40320 362880 3628800 +--R Type: GeneralUnivariatePowerSeries(Expression Integer,x,0) +--E + +@ +In this case, as currently implemented, 'differentiate' returns incorrect +answers: +<<*>>= + +--S 178 +differentiate t1 + + >> Error detected within library code: + "'differentiate' unavailable on this domain; use 'approximate' first" + +--E + +@ +The solution we discussed (perhaps ``resolution'' is a better word) was to +create a separate series type for generalized series. This would be a +carbon copy of UPXS, except that differentiate(series,variable(series)) and +integrate(series,variable(series)) would return an error message. The +error message could also suggest that the user first apply 'approximate', +then compute a derivative or integral. We would also have a coercion from +UPXS to this type. The function 'series' would return a UPXS, when the +coefficients do not involve the series variable, and a ``generalized series'', +when the coefficients involve the series variable. + +If this sounds cool to you, I'll go ahead with it when I have time. (I'm +trying to meet a 16 September deadline for a MEGA '94 submission. I'm still +getting my results together, so time is tight. Let me know if there is a +time deadline for the AXIOM code!) + +Also we need better tools for taking finite truncations of series objects. +In particular since we now mostly use series(expr,var) to create a series, +UPXS if over a coefficient domain which supports the symbol of expansion, +should be able to truncate a series to an EXPR. + +I thought I had you on this one! The signature is there (in pscat.spad): +\begin{verbatim} + if Coef has coerce: Symbol -> Coef then + if Coef has "**":(Coef,Expon) -> Coef then + approximate: ($,Expon) -> Coef + ++ \spad{approximate(f)} returns a truncated power series with the + ++ series variable viewed as an element of the coefficient domain. +\end{verbatim} +It certainly works for Laurent series: +<<*>>= +)clear all + +--S 179 +t1:=laurent(cos(a+x)/x,x=0) +--R +--R (1) +--R - 1 cos(a) sin(a) 2 cos(a) 3 sin(a) 4 +--R cos(a)x - sin(a) - ------ x + ------ x + ------ x - ------ x +--R 2 6 24 120 +--R + +--R cos(a) 5 sin(a) 6 cos(a) 7 sin(a) 8 cos(a) 9 10 +--R - ------ x + ------ x + ------ x - ------ x - ------- x + O(x ) +--R 720 5040 40320 362880 3628800 +--R Type: UnivariateLaurentSeries(Expression Integer,x,0) +--E + +--S 180 +approximate(t1,3) +--R +--R 3 4 2 +--R (4x - 24x)sin(a) + (x - 12x + 24)cos(a) +--R (2) ------------------------------------------ +--R 24x +--R Type: Expression Integer +--E + +@ +But, unfortunately, I never implemented it for Puiseux series: +<<*>>= + +--S 181 +t2:=puiseux(cos(a+x)/x,x=0) +--R +--R (3) +--R - 1 cos(a) sin(a) 2 cos(a) 3 sin(a) 4 +--R cos(a)x - sin(a) - ------ x + ------ x + ------ x - ------ x +--R 2 6 24 120 +--R + +--R cos(a) 5 sin(a) 6 cos(a) 7 sin(a) 8 cos(a) 9 10 +--R - ------ x + ------ x + ------ x - ------ x - ------- x + O(x ) +--R 720 5040 40320 362880 3628800 +--R Type: UnivariatePuiseuxSeries(Expression Integer,x,0) +--E + +--S 182 +approximate(t2,3) +--R +--R 3 4 2 +--R (4x - 24x)sin(a) + (x - 12x + 24)cos(a) +--R (4) ------------------------------------------ +--R 24x +--R Type: Expression Integer +--E + +--S 183 +t3:=series(cos(x**(2/3) + a),x=0) +--R +--R (5) +--R 2 4 8 10 11 +--R - - - -- -- +--R 3 cos(a) 3 sin(a) 2 cos(a) 3 sin(a) 3 3 +--R cos(a) - sin(a)x - ------ x + ------ x + ------ x - ------ x + O(x ) +--R 2 6 24 120 +--R Type: UnivariatePuiseuxSeries(Expression Integer,x,0) +--E + +--S 184 +approximate(t3,2) +--R +--R 3+-+2 3+-+ 2 +--R - 6sin(a)\|x - 3x cos(a)\|x + x sin(a) + 6cos(a) +--R (6) --------------------------------------------------- +--R 6 +--R Type: Expression Integer +--E + +--S 185 +approximate(t1,7) +--R +--R (7) +--R 7 5 3 +--R (8x - 336x + 6720x - 40320x)sin(a) +--R + +--R 8 6 4 2 +--R (x - 56x + 1680x - 20160x + 40320)cos(a) +--R / +--R 40320x +--R Type: Expression Integer +--E + +@ +bronstei@inf.ethz.ch/10/6/93 (manuel bronstein) + +Here is algfunc.spad with an old bug fixed: eventh-roots of negative floats +coerced to EXPR FLOAT (e.g. sqrt(-1::EXPR FLOAT)) used to produced an error +message since the sqrt from FLOAT was called. + +I have now fixed iroot from AF(R,) +to call the sqrt from R only if either R is algebraically closed, or the +root is odd, or the argument is positive. Here's the new behaviour: +<<*>>= +)clear all + +--S 186 sqrt(-1::EXPR FLOAT) +--R +--R +-----+ +--R (1) \|- 1.0 +--R Type: Expression Float +--E + +--S 187 sqrt(2::EXPR FLOAT) +--R +--R (2) 1.4142135623 730950488 +--R Type: Expression Float +--E + +--S 188 nthRoot(-2::EXPR FLOAT, 3) +--R +--R (3) - 1.2599210498 948731648 +--R Type: Expression Float +--E + +--S 189 nthRoot(-2::EXPR FLOAT, 4) ---As a side-effect, this fixes the problem with numeric --- (which was instantiating sqrt(-1)$EXPR(FLOAT)). +--R +--R 4+-----+ +--R (4) \|- 2.0 +--R Type: Expression Float +--E -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/9/22/93 (manuel bronstein) -------------------------------------------------------------------- -)clear all ---Here is a (rather major) bug fix to ffactor in FSUPFACT.nrlib. It causes ---a large family of integrals to return 0, because ffactor(?**2+expr) returned ---?**2 when expr involved a parameter. This is fixed now. +@ +As a side-effect, this fixes the problem with numeric +(which was instantiating sqrt(-1)\$EXPR(FLOAT)). + +bronstei@inf.ethz.ch/9/22/93 (manuel bronstein) + +Here is a (rather major) bug fix to ffactor in FSUPFACT.nrlib. It causes +a large family of integrals to return 0, because ffactor(?**2+expr) returned +?**2 when expr involved a parameter. This is fixed now. + +jhd@maths.bath.ac.uk/8/15/93 James Davenport + +\begin{verbatim} + (1) + VCONCAT + log(x) + atan(---------) + +------+ + | 2 + 2 \|a - 1 + ((- a + 1<0) -> ---------------) + +------+ + | 2 + \|a - 1 + , + PAREN + 2 + (- a + 1>0) + -> + +--------+ + 2 2 | 2 2 + log((log(x) - a + 1)\|- a + 1 + (2a - 2)log(x)) + + + 2 2 + - log(log(x) + a - 1) + / + +--------+ + | 2 + 2\|- a + 1 + , + 1 + ( Or (a - 1=0) -> - ------) + (a + 1=0) log(x) + Type: ConditionalExpression Integer + +\end{verbatim} +is still fairly ugly. -------------------------------------------------------------------- --- jhd@maths.bath.ac.uk/8/15/93 James Davenport -------------------------------------------------------------------- +<<*>>= )clear all + +--S 190 integrate(1/(x*(log(x)**2+a**2-1)),x) --- (1) --- VCONCAT --- log(x) --- atan(---------) --- +------+ --- | 2 --- 2 \|a - 1 --- ((- a + 1<0) -> ---------------) --- +------+ --- | 2 --- \|a - 1 --- , --- PAREN --- 2 --- (- a + 1>0) --- -> --- +--------+ --- 2 2 | 2 2 --- log((log(x) - a + 1)\|- a + 1 + (2a - 2)log(x)) --- + --- 2 2 --- - log(log(x) + a - 1) --- / --- +--------+ --- | 2 --- 2\|- a + 1 --- , --- 1 --- ( Or (a - 1=0) -> - ------) --- (a + 1=0) log(x) --- Type: ConditionalExpression Integer --- ---is still fairly ugly. +--R +--R (1) +--R +--------+ +------+ +--R 2 2 | 2 2 | 2 +--R (log(x) - a + 1)\|- a + 1 + (2a - 2)log(x) log(x)\|a - 1 +--R log(-----------------------------------------------) atan(---------------) +--R 2 2 2 +--R log(x) + a - 1 a - 1 +--R [----------------------------------------------------,---------------------] +--R +--------+ +------+ +--R | 2 | 2 +--R 2\|- a + 1 \|a - 1 +--R Type: Union(List Expression Integer,...) +--E -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/8/9/93 (manuel bronstein) -------------------------------------------------------------------- +@ +bronstei@inf.ethz.ch/8/9/93 (manuel bronstein) + +Here is efstruc.spad with a change to normalize so that +this now returns 2**(1/4) ** 2 + 2**(1/4) +<<*>>= )clear all ---Here is efstruc.spad with a change to normalize so that -normalize(2**(1/2) + 2**(1/4)) now returns 2**(1/4) ** 2 + 2**(1/4). +--S 191 +normalize(2**(1/2) + 2**(1/4)) +--R +--R 4+-+2 4+-+ +--R (1) \|2 + \|2 +--R Type: Expression Integer +--E -------------------------------------------------------------------- --- satoshi@yktvmv.vnet.ibm.com/8/7/93 satoshi hamaguchi -------------------------------------------------------------------- +@ + +satoshi@yktvmv.vnet.ibm.com/8/7/93 satoshi hamaguchi + +In axiom, both of these yield a warning ``potentialPole''. +If I use ``noPole'' they give the right answer. +Isn't this a bug? +<<*>>= )clear all --- In axiom, both - integrate(%e**x,x=0..1) ---and - integrate(log(x),x=1..2) ---yield a warning potentialPole . ---If I use "noPole", they give right answers. Isn't this a bug? ---... Satoshi -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/8/5/93 (manuel bronstein) -------------------------------------------------------------------- +--S 912 +integrate(%e**x,x=0..1) +--R +--R (1) %e - 1 +--R Type: Union(f1: OrderedCompletion Expression Integer,...) +--E + +--S 913 +integrate(log(x),x=1..2) +--R +--R (2) log(4) - 1 +--R Type: Union(f1: OrderedCompletion Expression Integer,...) +--E + +@ + +bronstei@inf.ethz.ch/8/5/93 (manuel bronstein) + +This will return 2**(5/6). +<<*>>= )clear all -simplify(2**(1/3)*2**(1/2)) -- will return 2**(5/6). -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) -------------------------------------------------------------------- +--S 194 +simplify(2**(1/3)*2**(1/2)) -- +--R +--R 6+-+5 +--R (1) \|2 +--R Type: Expression Integer +--E + +@ +bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +<<*>>= )clear all + +--S 195 integrate(1/sqrt(1+cos(x)), x) +--R +--R +-+ +----------+ 2 +--R +-+ 2\|2 sin(x)\|cos(x) + 1 - cos(x) + 2cos(x) + 3 +--R \|2 log(------------------------------------------------) +--R 2 +--R cos(x) + 2cos(x) + 1 +--R (1) --------------------------------------------------------- +--R 2 +--R Type: Union(Expression Integer,...) +--E -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) -------------------------------------------------------------------- +@ +bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) + +This used to be division by 0 error +<<*>>= )clear all -normalize atan(cos(x)/sin(x)) -- used to be division by 0 error -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) -------------------------------------------------------------------- +--S 196 +normalize atan(cos(x)/sin(x)) +--R +--R - 2x + %pi +--R (1) ---------- +--R 2 +--R Type: Expression Integer +--E + +@ + +bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +<<*>>= )clear all + +--S 197 a := 2**(1/6) +--R +--R 6+-+ +--R (1) \|2 +--R Type: AlgebraicNumber +--E + +--S 198 [a**n for n in 2..13] +--R +--R 6+-+2 6+-+3 6+-+4 6+-+5 6+-+ 6+-+2 6+-+3 6+-+4 6+-+5 6+-+ +--R (2) [\|2 ,\|2 ,\|2 ,\|2 ,2,2\|2 ,2\|2 ,2\|2 ,2\|2 ,2\|2 ,4,4\|2 ] +--R Type: List AlgebraicNumber +--E + +@ -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) -------------------------------------------------------------------- +bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +<<*>>= )clear all + +--S 199 int:=sqrt(a*(1-u**2)/(1+u**2))/u -integrate(eval(int,a=1),u) -- works -integrate(eval(int,a=sqrt(-1)),u) -- seems to run forever -integrate(eval(int,a=1)*(-1)**(1/4),u) -- dies after a long time - -- with an elt index error. +--R +--R +----------+ +--R | 2 +--R |- a u + a +--R |---------- +--R | 2 +--R \| u + 1 +--R (1) ------------- +--R u +--R Type: Expression Integer +--E + +--S 200 +integrate(eval(int,a=1),u) +--R +--R +--------+ +--------+ +--R | 2 | 2 +--R 2 |- u + 1 2 |- u + 1 +--R (u + 1) |-------- - 1 (u + 1) |-------- - 1 +--R | 2 | 2 +--R \| u + 1 \| u + 1 +--R log(-----------------------) + 2atan(-----------------------) +--R 2 2 +--R u u +--R (2) ------------------------------------------------------------- +--R 2 +--R Type: Union(Expression Integer,...) +--E + +@ +Runs forever? +<<*>>= +--S 201 +integrate(eval(int,a=sqrt(-1)),u) +--R +--R (3) +--R +---+ +-+ +--R (- \|- 1 + 1)\|2 +--R * +--R +----------------+ +--R | 2 +---+ +--R 2 +---+ +-+ |(- u + 1)\|- 1 2 +---+ 2 +--R (u + 1)\|- 1 \|2 |---------------- + (u - 1)\|- 1 + u + 1 +--R | 2 +--R \| u + 1 +--R log(---------------------------------------------------------------) +--R 2 +---+ +-+ +--R u \|- 1 \|2 +--R + +--R +----------------+ +--R | 2 +---+ +--R 2 +---+ +-+ |(- u + 1)\|- 1 +---+ +--R (u + 1)\|- 1 \|2 |---------------- - \|- 1 + 1 +--R | 2 +--R +---+ +-+ \| u + 1 +--R (\|- 1 + 1)\|2 log(--------------------------------------------------) +--R 2 +---+ +-+ +--R u \|- 1 \|2 +--R + +--R +---+ +-+ +--R (\|- 1 - 1)\|2 +--R * +--R +----------------+ +--R | 2 +---+ +--R 2 +---+ +-+ |(- u + 1)\|- 1 2 +---+ 2 +--R (u + 1)\|- 1 \|2 |---------------- + (- u - 1)\|- 1 - u + 1 +--R | 2 +--R \| u + 1 +--R log(-----------------------------------------------------------------) +--R 2 +---+ +-+ +--R u \|- 1 \|2 +--R / +--R 4 +--R Type: Union(Expression Integer,...) +--E -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) -------------------------------------------------------------------- +@ +Dies after a long time with an elt index error +<<*>>= +--S 202 +integrate(eval(int,a=1)*(-1)**(1/4),u) +--R +--R (4) +--R +--------+ +--R | 2 +--R 2 +---+ |- u + 1 +---+ 2 +--R (u + 1)\|- 1 |-------- - \|- 1 + u +--R | 2 +--R +---+ +-+ \| u + 1 +--R (- \|- 1 + 1)\|2 log(---------------------------------------) +--R 2 +---+ +--R u \|- 1 +--R + +--R +--------+ +--R | 2 +--R 2 |- u + 1 +--R (u + 1) |-------- - 1 +--R | 2 +--R +---+ +-+ \| u + 1 +--R (\|- 1 + 1)\|2 log(-----------------------) +--R 2 +--R u +--R + +--R +--------+ +--R | 2 +--R 2 +---+ |- u + 1 +---+ 2 +--R (u + 1)\|- 1 |-------- - \|- 1 - u +--R | 2 +--R +---+ +-+ \| u + 1 +--R (\|- 1 - 1)\|2 log(---------------------------------------) +--R 2 +---+ +--R u \|- 1 +--R / +--R 4 +--R Type: Union(Expression Integer,...) +--E + +@ +bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +<<*>>= )clear all -sqrt((1-x**2)*(1-k**2*x**2)) -integrate(x/%,x) -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/7/26/93 (manuel bronstein) -------------------------------------------------------------------- +--S 203 +t1:=sqrt((1-x**2)*(1-k**2*x**2)) +--R +--R +-----------------------+ +--R | 2 4 2 2 +--R (1) \|k x + (- k - 1)x + 1 +--R Type: Expression Integer +--E + +--S 204 +integrate(x/t1,x) +--R +--R +-----------------------+ +--R | 2 4 2 2 2 2 2 +--R log(2k\|k x + (- k - 1)x + 1 - 2k x + k + 1) +--R (2) - -------------------------------------------------- +--R 2k +--R Type: Union(Expression Integer,...) +--E + +@ +bronstei@inf.ethz.ch/7/26/93 (manuel bronstein) +<<*>>= )clear all -rad:=last zerosOf((2+y)**8-3,y) -k:=first kernels % -eval(rad,k,rad) -------------------------------------------------------------------- --- nagttt@vax.ox.ac.uk/7/15/93 themos tsikas -------------------------------------------------------------------- +--S 205 +t1:=last zerosOf((2+y)**8-3,y) +--R +--R +-------------+ +--R | +-------+ +--R | | +-+ +--R - \|- 2\|- 4\|3 - 4 +--R (1) ---------------------- +--R 2 +--R Type: Expression Integer +--E + +--S 206 +k:=first kernels t1 +--R +--R +-------------+ +--R | +-------+ +--R | | +-+ +--R (2) \|- 2\|- 4\|3 +--R Type: Kernel Expression Integer +--E + +--S 207 +eval(t1,k,t1) +--R +--R +-------------+ +--R | +-------+ +--R | | +-+ +--R \|- 2\|- 4\|3 - 4 +--R (3) -------------------- +--R 4 +--R Type: Expression Integer +--E + +@ +nagttt@vax.ox.ac.uk/7/15/93 themos tsikas +<<*>>= )clear all + +--S 208 f := (x - y) / (x + y) +--R +--R - y + x +--R (1) ------- +--R y + x +--R Type: Fraction Polynomial Integer +--E + +--S 209 eval(f,x=1/x) +--R +--R - x y + 1 +--R (2) --------- +--R x y + 1 +--R Type: Fraction Polynomial Integer +--E + +@ +nagttt@vax.ox.ac.uk/7/15/93 themos tsikas -------------------------------------------------------------------- --- nagttt@vax.ox.ac.uk/7/15/93 themos tsikas -------------------------------------------------------------------- +I claim that these two should give the same result (they do in Reduce): +(precision was 200) + +<<*>>= )clear all + +--S 210 digits 200 ---I claim that these two should give the same result (they do in Reduce): ---(precision was 200) +--R +--R (1) 20 +--R Type: PositiveInteger +--E + +--S 211 a:=4*sin(2*%pi/9)*sin(5*%pi/9)/sqrt(3) +--R +--R 2%pi 5%pi +--R 4sin(----)sin(----) +--R 9 9 +--R (2) ------------------- +--R +-+ +--R \|3 +--R Type: Expression Integer +--E + +--S 212 b:=1/(2*sin(%pi/9)) +--R +--R 1 +--R (3) --------- +--R %pi +--R 2sin(---) +--R 9 +--R Type: Expression Integer +--E + +--S 213 a::EXPR FLOAT -b::EXPR FLOAT - -------------------------------------------------------------------- --- bmt@spadserv.watson.ibm.com/9/15/93 (Barry Trager) -------------------------------------------------------------------- +--R +--R (4) +--R 1.4619022000 8154362611 6377206683 1458519367 5283075946 2240855318 493177672 +--R 5 8139967590 4919627790 5155131563 5927196029 5136978338 4351923544 366777748 +--R 4 3145835284 9347399264 0517928099 4530246377 7454860377 762537213 +--R Type: Expression Float +--E + +--S 214 +b::EXPR FLOAT +--R +--R (5) +--R 1.4619022000 8154362611 6377206683 1458519367 5283075946 2240855318 493177672 +--R 5 8139967590 4919627790 5155131563 5927196029 5136978338 4351923544 366777748 +--R 4 3145835284 9347399264 0517928099 4530246377 7454860377 762537213 +--R Type: Expression Float +--E + +--S 215 +digits 20 +--R +--R (6) 200 +--R Type: PositiveInteger +--E +@ +bmt@spadserv.watson.ibm.com/9/15/93 (Barry Trager) +<<*>>= )clear all + +--S 216 limit(tanh(x),x=%plusInfinity) +--R +--R (1) 1 +--R Type: Union(OrderedCompletion Expression Integer,...) +--E -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/6/14/93 (manuel bronstein) -------------------------------------------------------------------- +@ +bronstei@inf.ethz.ch/6/14/93 (manuel bronstein) +<<*>>= )clear all + +--S 217 a := x::EXPR INT +--R +--R (1) x +--R Type: Expression Integer +--E + +--S 218 b := x::EXPR COMPLEX INT +--R +--R (2) x +--R Type: Expression Complex Integer +--E + +--S 219 zeroOf(a**4+1,x) +--R +--R +---+ +--R \|- 1 + 1 +--R (3) ---------- +--R +-+ +--R \|2 +--R Type: Expression Integer +--E + +--S 220 zeroOf(b**4+1,x) +--R +--R 1 + %i +--R (4) ------ +--R +-+ +--R \|2 +--R Type: Expression Complex Integer +--E + +@ +bronstei@inf.ethz.ch/6/11/93 (manuel bronstein) + +Now returns 0 (was crashing before) +<<*>>= +)clear all + +--S 221 +normalize(0**a) +--R +--R (1) 0 +--R Type: Expression Integer +--E -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/6/11/93 (manuel bronstein) -------------------------------------------------------------------- +@ +bronstei@inf.ethz.ch/6/11/93 (manuel bronstein) + +New export ``complexForm(f)'' which returns the rectangular complex form of f: +<<*>>= )clear all -normalize(0**a) -- now returns 0 (was crashing before) -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/6/11/93 (manuel bronstein) -------------------------------------------------------------------- +--S 222 +t1:=log(a+%i * b) +--R +--R (1) log(%i b + a) +--R Type: Expression Complex Integer +--E + +--S 223 +complexForm t1 +--R +--R 2 2 +--R log(b + a ) b +--R (2) ------------ + atan(-)%i +--R 2 a +--R Type: Complex Expression Integer +--E + +--S 224 +t2:=complexIntegrate(1/(x-%i),x) +--R +--R (3) log(x - %i) +--R Type: Expression Complex Integer +--E + +--S 225 +complexForm t2 +--R +--R 2 +--R log(x + 1) 1 +--R (4) ----------- - atan(-)%i +--R 2 x +--R Type: Complex Expression Integer +--E + +@ +jcf@posso.ibp.fr + +normalForm est faux pour les polynomes a coef dans un anneau: +<<*>>= )clear all -- new export complexForm(f) which returns the rectangular complex form of f: -log(a+%i * b) -complexForm % -complexIntegrate(1/(x-%i),x) -complexForm % -------------------------------------------------------------------- --- jcf@posso.ibp.fr -------------------------------------------------------------------- --- normalForm est faux pour les polynomes a coef dans un anneau: +--S 226 D:=DMP([a,b],INT) +--R +--R (1) DistributedMultivariatePolynomial([a,b],Integer) +--R Type: Domain +--E + +--S 227 l:List D:=[2*a-1,b-a] +--R +--R (2) [2a - 1,- a + b] +--R Type: List DistributedMultivariatePolynomial([a,b],Integer) +--E + +--S 228 g:=groebner l +--R +--R (3) [2a - 1,2b - 1] +--R Type: List DistributedMultivariatePolynomial([a,b],Integer) +--E + +--S 229 p:D:=a +--R +--R (4) a +--R Type: DistributedMultivariatePolynomial([a,b],Integer) +--E + +@ +Was 1, au lieu de 1/2 !! +<<*>>= +--S 230 normalForm(p,g) --- was 1 --- au lieu de 1/2 !! +--R +--R 1 +--R (5) - +--R 2 +--R Type: DistributedMultivariatePolynomial([a,b],Fraction Integer) +--E -------------------------------------------------------------------- --- nagttt@vax.ox.ac.uk/6/9/93 themos tsikas -------------------------------------------------------------------- +@ +nagttt@vax.ox.ac.uk/6/9/93 themos tsikas +<<*>>= )clear all + +--S 231 squareFreePart(50) +--R +--R (1) 10 +--R Type: PositiveInteger +--E + +@ -------------------------------------------------------------------- --- mcd@maths.bath.ac.uk/6/4/92 mike dewar -------------------------------------------------------------------- +mcd@maths.bath.ac.uk/6/4/92 mike dewar +<<*>>= )clear all + +--S 232 f:=complexIntegrate(1/((x-%i)*(x-2*%i)),x) +--R +--R (1) %i log(x - %i) - %i log(x - 2%i) +--R Type: Expression Complex Integer +--E + +--S 233 g:=subst(f,x=1) +--R +--R (2) %i log(1 - %i) - %i log(1 - 2%i) +--R Type: Expression Complex Integer +--E + +--S 234 imag g +--R +--R - log(5) + log(2) +--R (3) ----------------- +--R 2 +--R Type: Expression Integer +--E -------------------------------------------------------------------- --- daly -------------------------------------------------------------------- +@ +daly - not wrong but the order is obscure... +<<*>>= )clear all --- not wrong but the order is obscure... + +--S 235 primes(1,10) +--R +--R (1) [2,7,5,3] +--R Type: List Integer +--E -------------------------------------------------------------------- --- nagttt@vax.ox.ac.uk/1/11/93 themos tsikas -------------------------------------------------------------------- +@ +nagttt@vax.ox.ac.uk/1/11/93 themos tsikas +<<*>>= )clear all + +--S 236 m:=matrix[[1,a,0],[b,0,a],[0,b,c]] +--R +--R +1 a 0+ +--R | | +--R (1) |b 0 a| +--R | | +--R +0 b c+ +--R Type: Matrix Polynomial Integer +--E + +@ +This ends in error: +Internal system problem in function appInfix : fewer than 2 arguments to +an infix function +<<*>>= +--S 237 ll:=radicalEigenvectors m --- ends in error: --- Internal system problem in function appInfix : fewer than 2 arguments to --- an infix function --- --- but this works +--R +--R (2) +--R [ +--R [ +--R radval = +--R 9 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c +--R + +--R 3 3 2 2 +--R - 32a b - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R (3c + 3) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R 2 +--R c - c + 6a b + 1 +--R / +--R 9 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R , +--R radmult= 1, +--R +--R radvect = +--R [ +--R [ +--R [ +--R +-+ +--R (- 18c + 18a b + 18)\|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R 9 +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 2 +-+ +--R (3c + (- 21a b - 9)c + 15a b + 6)\|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R (- 3c + 6) +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 2 2 +-+ +--R (c + (11a b + 1)c + (- 11a b - 4)c + 24a b + 2a b + 2)\|3 +--R / +--R 2 +-+ +--R 54b \|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R ] +--R , +--R +--R [ +--R 9 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R (- 6c + 3) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R 2 +--R c - c + 6a b + 1 +--R / +--R 9b +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ] +--R , +--R [1]] +--R ] +--R ] +--R , +--R +--R [ +--R radval = +--R +---+ +--R (- 9\|- 3 - 9) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c +--R + +--R 3 3 2 2 +--R - 32a b - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R +---+ +--R ((3c + 3)\|- 3 - 3c - 3) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R 2 +--R 2c - 2c + 12a b + 2 +--R / +--R +---+ +--R (9\|- 3 - 9) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R , +--R radmult= 1, +--R +--R radvect = +--R [ +--R [ +--R [ +--R +-+ +--R (- 36c + 36a b + 36)\|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R +---+ +--R (- 9\|- 3 - 9) +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 2 +---+ 2 +--R (- 3c + (21a b + 9)c - 15a b - 6)\|- 3 - 3c + (21a b + 9)c +--R + +--R - 15a b - 6 +--R * +--R +-+ +--R \|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R +---+ +--R ((- 3c + 6)\|- 3 + 3c - 6) +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 2 2 +---+ +--R (c + (11a b + 1)c + (- 11a b - 4)c + 24a b + 2a b + 2)\|- 3 +--R + +--R 3 2 2 2 +--R - c + (- 11a b - 1)c + (11a b + 4)c - 24a b - 2a b - 2 +--R * +--R +-+ +--R \|3 +--R / +--R 2 +-+ +--R 108b \|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R ] +--R , +--R +--R [ +--R +---+ +--R (- 9\|- 3 - 9) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R +---+ +--R ((- 6c + 3)\|- 3 + 6c - 3) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R 2 +--R 2c - 2c + 12a b + 2 +--R / +--R +---+ +--R (9b\|- 3 - 9b) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ] +--R , +--R [1]] +--R ] +--R ] +--R , +--R +--R [ +--R radval = +--R +---+ +--R (- 9\|- 3 + 9) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c +--R + +--R 3 3 2 2 +--R - 32a b - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R +---+ +--R ((3c + 3)\|- 3 + 3c + 3) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R 2 +--R - 2c + 2c - 12a b - 2 +--R / +--R +---+ +--R (9\|- 3 + 9) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R , +--R radmult= 1, +--R +--R radvect = +--R [ +--R [ +--R [ +--R +-+ +--R (- 36c + 36a b + 36)\|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R +---+ +--R (9\|- 3 - 9) +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 2 +---+ 2 +--R (3c + (- 21a b - 9)c + 15a b + 6)\|- 3 - 3c + (21a b + 9)c +--R + +--R - 15a b - 6 +--R * +--R +-+ +--R \|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R +---+ +--R ((3c - 6)\|- 3 + 3c - 6) +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 2 2 +---+ +--R (- c + (- 11a b - 1)c + (11a b + 4)c - 24a b - 2a b - 2)\|- 3 +--R + +--R 3 2 2 2 +--R - c + (- 11a b - 1)c + (11a b + 4)c - 24a b - 2a b - 2 +--R * +--R +-+ +--R \|3 +--R / +--R 2 +-+ +--R 108b \|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R ] +--R , +--R +--R [ +--R +---+ +--R (- 9\|- 3 + 9) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R +---+ +--R ((- 6c + 3)\|- 3 - 6c + 3) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R 2 +--R - 2c + 2c - 12a b - 2 +--R / +--R +---+ +--R (9b\|- 3 + 9b) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ] +--R , +--R [1]] +--R ] +--R ] +--R ] +--RType: List Record(radval: Expression Integer,radmult: Integer,radvect: List Matrix Expression Integer) +--E + +@ +but this works +<<*>>= + +--S 238 ll 1 +--R +--R (3) +--R [ +--R radval = +--R 9 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R (3c + 3) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R 2 +--R c - c + 6a b + 1 +--R / +--R 9 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R , +--R radmult= 1, +--R +--R radvect = +--R [ +--R [ +--R [ +--R +-+ +--R (- 18c + 18a b + 18)\|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R 9 +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 2 +-+ +--R (3c + (- 21a b - 9)c + 15a b + 6)\|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R (- 3c + 6) +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 2 2 +-+ +--R (c + (11a b + 1)c + (- 11a b - 4)c + 24a b + 2a b + 2)\|3 +--R / +--R 2 +-+ +--R 54b \|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R ] +--R , +--R +--R [ +--R 9 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R (- 6c + 3) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R 2 +--R c - c + 6a b + 1 +--R / +--R 9b +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ] +--R , +--R [1]] +--R ] +--R ] +--RType: Record(radval: Expression Integer,radmult: Integer,radvect: List Matrix Expression Integer) +--E + +--S 239 ll 2 +--R +--R (4) +--R [ +--R radval = +--R +---+ +--R (- 9\|- 3 - 9) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R +---+ +--R ((3c + 3)\|- 3 - 3c - 3) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R 2 +--R 2c - 2c + 12a b + 2 +--R / +--R +---+ +--R (9\|- 3 - 9) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R , +--R radmult= 1, +--R +--R radvect = +--R [ +--R [ +--R [ +--R +-+ +--R (- 36c + 36a b + 36)\|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R +---+ +--R (- 9\|- 3 - 9) +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 2 +---+ 2 +--R (- 3c + (21a b + 9)c - 15a b - 6)\|- 3 - 3c + (21a b + 9)c +--R + +--R - 15a b - 6 +--R * +--R +-+ +--R \|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R +---+ +--R ((- 3c + 6)\|- 3 + 3c - 6) +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 2 2 +---+ +--R (c + (11a b + 1)c + (- 11a b - 4)c + 24a b + 2a b + 2)\|- 3 +--R + +--R 3 2 2 2 +--R - c + (- 11a b - 1)c + (11a b + 4)c - 24a b - 2a b - 2 +--R * +--R +-+ +--R \|3 +--R / +--R 2 +-+ +--R 108b \|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R ] +--R , +--R +--R [ +--R +---+ +--R (- 9\|- 3 - 9) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R +---+ +--R ((- 6c + 3)\|- 3 + 6c - 3) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R 2 +--R 2c - 2c + 12a b + 2 +--R / +--R +---+ +--R (9b\|- 3 - 9b) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ] +--R , +--R [1]] +--R ] +--R ] +--RType: Record(radval: Expression Integer,radmult: Integer,radvect: List Matrix Expression Integer) +--E + +--S 240 ll 3 +--R +--R (5) +--R [ +--R radval = +--R +---+ +--R (- 9\|- 3 + 9) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R +---+ +--R ((3c + 3)\|- 3 + 3c + 3) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R 2 +--R - 2c + 2c - 12a b - 2 +--R / +--R +---+ +--R (9\|- 3 + 9) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R , +--R radmult= 1, +--R +--R radvect = +--R [ +--R [ +--R [ +--R +-+ +--R (- 36c + 36a b + 36)\|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R +---+ +--R (9\|- 3 - 9) +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 2 +---+ 2 +--R (3c + (- 21a b - 9)c + 15a b + 6)\|- 3 - 3c + (21a b + 9)c +--R + +--R - 15a b - 6 +--R * +--R +-+ +--R \|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R +---+ +--R ((3c - 6)\|- 3 + 3c - 6) +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 2 2 +---+ +--R (- c + (- 11a b - 1)c + (11a b + 4)c - 24a b - 2a b - 2)\|- 3 +--R + +--R 3 2 2 2 +--R - c + (- 11a b - 1)c + (11a b + 4)c - 24a b - 2a b - 2 +--R * +--R +-+ +--R \|3 +--R / +--R 2 +-+ +--R 108b \|3 +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R ] +--R , +--R +--R [ +--R +---+ +--R (- 9\|- 3 + 9) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ** +--R 2 +--R + +--R +---+ +--R ((- 6c + 3)\|- 3 - 6c + 3) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 +--R (- 4a b - 1)c + (6a b + 2)c +--R + +--R 2 2 2 2 2 3 3 +--R (- 13a b - 4a b - 1)c + (22a b + 6a b)c - 32a b +--R + +--R 2 2 +--R - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R + +--R 2 +--R - 2c + 2c - 12a b - 2 +--R / +--R +---+ +--R (9b\|- 3 + 9b) +--R * +--R ROOT +--R 9 +--R * +--R ROOT +--R 4 3 2 2 2 +--R (- 4a b - 1)c + (6a b + 2)c + (- 13a b - 4a b - 1)c +--R + +--R 2 2 3 3 2 2 +--R (22a b + 6a b)c - 32a b - 13a b - 4a b +--R + +--R 3 2 +-+ +--R (2c - 3c + (- 9a b - 3)c - 9a b + 2)\|3 +--R / +--R +-+ +--R 54\|3 +--R , +--R 3 +--R ] +--R , +--R [1]] +--R ] +--R ] +--RType: Record(radval: Expression Integer,radmult: Integer,radvect: List Matrix Expression Integer) +--E - -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/11/24/93 Manuel Bronstein -------------------------------------------------------------------- +@ +bronstei@inf.ethz.ch/11/24/93 Manuel Bronstein +\begin{verbatim} --)clear all --Here's a bug that appears with the )math option only. -- @@ -1180,314 +5734,554 @@ ll 3 -- -- Internal system problem in function appInfix : -- fewer than 2 arguments to an infix function +\end{verbatim} + +copper@yktvmv/12/1/93 Don Coppersmith -------------------------------------------------------------------- --- copper@yktvmv/12/1/93 Don Coppersmith -------------------------------------------------------------------- +Attached is the list of integers n such that 2**512-n is prime +and n is between 0 and 5000: +\begin{verbatim} + 4893,4653,4475,4005,3893,3669,3459,3143,2967, + 2807,2529,1827,1695,975,875,629,569 +\end{verbatim} + +It was gotten from Axiom by issuing the commands +<<*>>= )clear all ---Attached is the list of integers n such that 2**512-n is prime ---and n is between 0 and 5000: --- --- 4893,4653,4475,4005,3893,3669,3459,3143,2967, --- 2807,2529,1827,1695,975,875,629,569 ---It was gotten from Axiom by issuing the commands +--S 241 qrimes : Stream Integer := generate(nextPrime,2**512-5000) +--R +--R (1) +--R [ +--R 13407807929942597099574024998205846127479365820592393377723561443721764030_ +--R 0735469768018742981669034276900318581864860508537538828119465699464336490_ +--R 06079096 +--R , +--R +--R 13407807929942597099574024998205846127479365820592393377723561443721764030_ +--R 0735469768018742981669034276900318581864860508537538828119465699464336490_ +--R 06079203 +--R , +--R +--R 13407807929942597099574024998205846127479365820592393377723561443721764030_ +--R 0735469768018742981669034276900318581864860508537538828119465699464336490_ +--R 06079443 +--R , +--R +--R 13407807929942597099574024998205846127479365820592393377723561443721764030_ +--R 0735469768018742981669034276900318581864860508537538828119465699464336490_ +--R 06079621 +--R , +--R +--R 13407807929942597099574024998205846127479365820592393377723561443721764030_ +--R 0735469768018742981669034276900318581864860508537538828119465699464336490_ +--R 06080091 +--R , +--R +--R 13407807929942597099574024998205846127479365820592393377723561443721764030_ +--R 0735469768018742981669034276900318581864860508537538828119465699464336490_ +--R 06080203 +--R , +--R +--R 13407807929942597099574024998205846127479365820592393377723561443721764030_ +--R 0735469768018742981669034276900318581864860508537538828119465699464336490_ +--R 06080427 +--R , +--R +--R 13407807929942597099574024998205846127479365820592393377723561443721764030_ +--R 0735469768018742981669034276900318581864860508537538828119465699464336490_ +--R 06080637 +--R , +--R +--R 13407807929942597099574024998205846127479365820592393377723561443721764030_ +--R 0735469768018742981669034276900318581864860508537538828119465699464336490_ +--R 06080953 +--R , +--R +--R 13407807929942597099574024998205846127479365820592393377723561443721764030_ +--R 0735469768018742981669034276900318581864860508537538828119465699464336490_ +--R 06081129 +--R , +--R ...] +--R Type: Stream Integer +--E + +--S 242 rrimes := [ 2**512-p for p in qrimes while p < 2**512 ] +--R +--R (2) [5000,4893,4653,4475,4005,3893,3669,3459,3143,2967,...] +--R Type: Stream Integer +--E + +--S 243 srimes := complete rrimes +--R +--R (3) [5000,4893,4653,4475,4005,3893,3669,3459,3143,2967,...] +--R Type: Stream Integer +--E + +--S 244 [srimes.i for i in [1..18]] +--R +--R (4) [[5000,4893,4653,4475,4005,3893,3669,3459,3143,2967,...]] +--R Type: List Stream Integer +--E + +--S 245 [srimes.i for i in [10..18]] +--R +--R (5) [[2967,2807,2529,1827,1695,975,875,629,569]] +--R Type: List Stream Integer +--E + +@ +miker@num-alg-grp.co.uk/12/13/93 (Mike Richardson) -------------------------------------------------------------------- --- miker@num-alg-grp.co.uk/12/13/93 (Mike Richardson) -------------------------------------------------------------------- +This is fixed now. You get an Expression Float. + +I suspect that this is an example of the same thing - but it looks worse: +\begin{verbatim} + (145) ->X := log(0.7*%i*x) + + >> Error detected within library code: + negative root +\end{verbatim} +<<*>>= )clear all --- ---This is fixed now. You get an Expression Float. --- ---> ---> I suspect that this is an example of the same thing - but it looks ---> worse: ---> ---> (145) ->X := log(0.7*%i*x) ---> ---> >> Error detected within library code: ---> negative root ---> ---> Mike ---> - - -------------------------------------------------------------------- --- sutor@yktpub.watson.ibm.com/12/15/93 (Robert S. Sutor) -------------------------------------------------------------------- -)clear all ---enter Integer in input box ---choose domains ---choose Description ---click on Convertible(String) --- ---page cannot be formatted -------------------------------------------------------------------- --- bmt@posso.dm.unipi.it12/15/93 (barry trager) -------------------------------------------------------------------- +--S 246 +X := log(0.7*%i*x) +--R +--R (1) log(0.7 %i x) +--R Type: Expression Complex Float +--E + +@ + +sutor@yktpub.watson.ibm.com/12/15/93 (Robert S. Sutor) +\begin{itemize} +\item enter Integer in input box +\item choose domains +\item choose Description +\item click on Convertible(String) +\end{itemize} +page cannot be formatted + +bmt@posso.dm.unipi.it12/15/93 (barry trager) +<<*>>= )clear all + +--S 247 log2() --> Float -exp1() --> DoubleFLoat ??? +--R +--R +--R (1) 0.6931471805 5994530942 +--R Type: Float +--E +--S 248 +exp1() --> DoubleFLoat ??? +--R +--R +--R (2) 2.7182818284 590452354 +--R Type: Float +--E -------------------------------------------------------------------- --- quitte@knuth.univ-poitiers.fr/12/14/93 Claude Quitte -------------------------------------------------------------------- +@ +quitte@knuth.univ-poitiers.fr/12/14/93 Claude Quitte + +There is a bug in the function \verb|delete_!| +for the type List ; this function, +has two arguments, a list L and an integer n : \verb|delete_!(L, n)| +returns a list L with the n nth-item deleted, MODIFYING its argument L. + +But for n = 1, the argument L is not MODIFIED !!! (exactly for n = +minIndex(L)). An extract of the package ListAggregate (abbreviation LSAGG, +file aggcat.spad). + +\begin{verbatim} +ListAggregate(S:Object): Category == Join(StreamAggregate S, + FiniteLinearAggregate S, ExtensibleLinearAggregate S) with + list: S -> $ + ++ list(x) returns the list of one element x. + add + .......... + + delete_!(x:$, i:I) == + i < (m := minIndex x) => error "index out of range" + i = m => rest x ****** <- here is the error + y := rest(x, (i - 1 - m)::N) + setrest_!(y, rest(y, 2)) + x + +A little session : +\end{verbatim} +<<*>>= )clear all ---There is a bug in the function delete_! for the type List ; this function, ---has two arguments, a list L and an integer n : delete_!(L, n) returns ---a list L with the n nth-item deleted, MODIFYING its argument L. --- ---But for n = 1, the argument L is not MODIFIED !!! (exactly for n = ---minIndex(L)). An extract of the package ListAggregate (abbreviation LSAGG, ---file aggcat.spad). --- --- ----------------------------------------------------------------------- ---ListAggregate(S:Object): Category == Join(StreamAggregate S, --- FiniteLinearAggregate S, ExtensibleLinearAggregate S) with --- list: S -> $ --- ++ list(x) returns the list of one element x. --- add --- .......... --- --- delete_!(x:$, i:I) == --- i < (m := minIndex x) => error "index out of range" --- i = m => rest x ****** <- here is the error --- y := rest(x, (i - 1 - m)::N) --- setrest_!(y, rest(y, 2)) --- x --- ---A little session : --- + +--S 249 L : List(String) := ["There is", "it seems", "a real bug", "here"] --- (1) ["There is","it seems","a real bug","here"] --- Type: List String --- +--R +--R (1) ["There is","it seems","a real bug","here"] +--R Type: List String +--E + +--S 250 L1 := delete!(L, 1) --- (2) ["it seems","a real bug","here"] --- Type: List String +--R +--R (2) ["it seems","a real bug","here"] +--R Type: List String +--E + +--S 251 L --- (3) ["There is","it seems","a real bug","here"] --- Type: List String --- +--R +--R (3) ["There is","it seems","a real bug","here"] +--R Type: List String +--E + +--S 252 L2 := delete!(L, 2) --- (4) ["There is","a real bug","here"] --- Type: List String +--R +--R (4) ["There is","a real bug","here"] +--R Type: List String +--E + +--S 253 L --- (5) ["There is","a real bug","here"] --- ---Is there a way to fix this bug quickly ?? (I am ready to modify the source ---Axiom aggcat.spad). ---The problem with ! functions lies in the documentation not in the code. We ---need to explain more clearly that ! functions are ALLOWED to update their ---arguments, not REQUIRED to do so. ---Whenever using ! functions you should always ---use the returned result, not try to use the updated argument. This is how ---the code is designed. ---For example if you try to do insert! into an empty list, ---the argument is not updatable and thus a new list is created. The reason for ---having ! operations is for efficiency to do less copying, not to guarantee ---that given arguments will always be updated. So the correct use is to only ---depend on the results returned by updating functions. - - -------------------------------------------------------------------- --- quitte@knuth.univ-poitiers.fr/1/13/94 Claude Quitte -------------------------------------------------------------------- +--R +--R (5) ["There is","a real bug","here"] +--R Type: List String +--E + +@ +\begin{verbatim} + (5) ["There is","a real bug","here"] +\end{verbatim} +Is there a way to fix this bug quickly ?? (I am ready to modify the source +Axiom aggcat.spad). + +The problem with ! functions lies in the documentation not in the code. We +need to explain more clearly that ! functions are ALLOWED to update their +arguments, not REQUIRED to do so. + +Whenever using ! functions you should always +use the returned result, not try to use the updated argument. This is how +the code is designed. + +For example if you try to do insert! into an empty list, +the argument is not updatable and thus a new list is created. The reason for +having ! operations is for efficiency to do less copying, not to guarantee +that given arguments will always be updated. So the correct use is to only +depend on the results returned by updating functions. + +quitte@knuth.univ-poitiers.fr/1/13/94 Claude Quitte +<<*>>= )clear all + +--S 254 K := Fraction(Integer) +--R +--R (1) Fraction Integer +--R Type: Domain +--E + +--S 255 PolK := UP('X, K) +--R +--R (2) UnivariatePolynomial(X,Fraction Integer) +--R Type: Domain +--E + +--S 256 X : PolK := monomial(1, 1) +--R +--R (3) X +--R Type: UnivariatePolynomial(X,Fraction Integer) +--E + +--S 257 n : PositiveInteger := 15 +--R +--R (4) 15 +--R Type: PositiveInteger +--E + +--S 258 E := SimpleAlgebraicExtension(K, PolK, X**n + X**(n-3) -1) +--R +--R (5) +--R SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(X,Fraction Int +--R eger),X**15+X**12-1) +--R Type: Domain +--E + +--S 259 y : E := X::E +--R +--R (6) X +--RType: SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(X,Fraction Integer),X**15+X**12-1) +--E + +--S 260 minimalPolynomial(y)$E --- ---Internal Error ---The function minimalPolynomial with signature SimpleAlgebraicExtension( ---Fraction Integer,UnivariatePolynomial(X,Fraction Integer),X**15+X**12-1) ----> UnivariatePolynomial(X,Fraction Integer) is missing from domain ---SimpleAlgebraicExtension(Fraction (Integer)) ---(UnivariatePolynomial X (Fraction (Integer)))((15 1 . 1) (12 1 . 1) (0 -1 . 1)) +--R +--R 15 12 +--R (7) X + X - 1 +--R Type: UnivariatePolynomial(X,Fraction Integer) +--E + +@ +\begin{verbatim} +Internal Error +The function minimalPolynomial with signature SimpleAlgebraicExtension( +Fraction Integer,UnivariatePolynomial(X,Fraction Integer),X**15+X**12-1) + UnivariatePolynomial(X,Fraction Integer) is missing from domain +SimpleAlgebraicExtension(Fraction (Integer)) +(UnivariatePolynomial X (Fraction (Integer)))((15 1 . 1) (12 1 . 1) (0 -1 . 1)) +\end{verbatim} -------------------------------------------------------------------- --- luczak@nag.com/02/20/94 (Richard Luczak) -------------------------------------------------------------------- +luczak@nag.com/02/20/94 (Richard Luczak) + +I'm trying to define the following rule + +<<*>>= )clear all --- ---I'm trying to define the following rule --- + +--S 261 tr := rule cos(x)**(n | integer? n and even? n)==(1-sin(x)**2)**(n/2) --- ---Axiom returns --- --- Cannot find a definition or library operation named even? with argument --- types --- Expression Integer --- --- We will attempt to step through and interpret the code. --- --- n --- - --- n 2 2 --- (2) cos(x) == (- sin(x) + 1) --- Type: RewriteRule(Integer,Integer,Expression Integer) --- --- ---and henceforth the rule does not work as desired. Variations on the same bug ---occur involving positive?. Of course, I get what I want using integer?(n/2) ---but ... Is this a bug? --- --- from barry: --- ---Should use integer? n and even? integer n instead. --- ---I toyed with the idea of implementing: --- even? x == integer? x and even? integer x --- odd? x == integer? x and odd? integer x ---in EXPR, but this would mean that (x +-> even? x or odd? x) is not always ---true anymore and I'm not sure it's a good idea. If you guys don't think it's ---a problem, it takes 2 minutes to add it to EXPR R when R has RETRACT INT ---(don't use integer? but retractIfCan@Union(Integer, "failed")). - -------------------------------------------------------------------- --- copper@yktvmv.vnet.ibm.com/02/22/94 don coppersmith -------------------------------------------------------------------- -)clear all ---Questions that came up using Axiom on Aixproj: --- ---How does one find a Pade approximation? I tried pade(2,2,y) ---pade(y,2,2) Pade(2,2,y) PadeApproximation(2,2,y) ---(where y is a series in x) to no avail. --- ---Complaint: The error message --- --- Could not find library function "pade" with arguments --- (integer, integer, series). --- ---is misleading. If it can't find any "pade", then say --- --- Could not find library function "pade". --- ---If there is such a function, but I've got the arguments wrong, ---why not say --- --- The library function "pade" takes arguments --- (series, integer, integer) --- ---or at least make that information available somehow. --- --- from bob sutor: --- ---Don, --- Try using )what op pade to see what is available. This will give ---you all operations with "pade" in their names. You can also search for ---*pade* via the HyperDoc Browse utility. If you don't use Browse, following ---up with, say, )display op pade, will give you a more information, though ---it is badly formatted (I will look at that). --- ---Aixproj is back-level, so I'm not sure exactly what is up their ---relative to the current system. --- ---I agree we could use better messages regarding unknown functions ---and I will look at that. --- Bob --- --- from bob sutor: --- ---The pade operation requires a taylor series as its third object while ---"series" returns a UnivariatePuiseuxSeries. If you set --- y := taylor(1+x)**(1/5) ---then things work. You can also do --- pade(1,1,y :: UTS(EXPR INT, x, 0) ) ---but this is more work if you really have a Taylor series. --- ---This is unintuitive and there should be a "pade" for Puiseux series that ---fails if the series is not appropriate. Barry? I will now look at adding ---a bit more coercion support to the interpreter to allow Puiseux series ---to possibly retract to Laurent series and then possibly to Taylor series. --- ---Don, --- I added the retractions I mentioned before to the development system. ---When the system is unsuccessful in matching a UnivariatePuiseuxSeries ---to an operation, it will first try to retract it to a ---UnivariateLaurentSeries. If that fails still, it will try to retract to ---a UnivariateTaylorSeries. --- --- Be aware that this sort of thing happens when you are evaluating ---an expression. If you are defining a function, you should add ---explicit coercions or create objects of the correct type for ---efficiency. You function may still work, but it may not run in ---a compiled form. +--R +--R n +--R - +--R n 2 2 +--R (1) cos(x) == (- sin(x) + 1) +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E -------------------------------------------------------------------- --- barry@num-alg-grp.co.uk/02/24/94 Barry Trager -------------------------------------------------------------------- +@ +Axiom returns +\begin{verbatim} + Cannot find a definition or library operation named even? with argument + types + Expression Integer + We will attempt to step through and interpret the code. + n + - + n 2 2 + (2) cos(x) == (- sin(x) + 1) + Type: RewriteRule(Integer,Integer,Expression Integer) + +\end{verbatim} +and henceforth the rule does not work as desired. Variations on the same bug +occur involving positive?. Of course, I get what I want using integer?(n/2) +but ... Is this a bug? + +from barry: + +Should use integer? n and even? integer n instead. + +I toyed with the idea of implementing: +\begin{verbatim} + even? x == integer? x and even? integer x + odd? x == integer? x and odd? integer x +\end{verbatim} +in EXPR, but this would mean that (x +-> even? x or odd? x) is not always +true anymore and I'm not sure it's a good idea. If you guys don't think it's +a problem, it takes 2 minutes to add it to EXPR R when R has RETRACT INT +(don't use integer? but retractIfCan@Union(Integer, "failed")). + +copper@yktvmv.vnet.ibm.com/02/22/94 don coppersmith + +Questions that came up using Axiom on Aixproj: + +How does one find a Pade approximation? I tried pade(2,2,y) +pade(y,2,2) Pade(2,2,y) PadeApproximation(2,2,y) +(where y is a series in x) to no avail. + +Complaint: The error message +\begin{verbatim} + Could not find library function "pade" with arguments + (integer, integer, series). +\end{verbatim} +is misleading. If it can't find any "pade", then say +\begin{verbatim} + Could not find library function "pade". +\end{verbatim} +If there is such a function, but I've got the arguments wrong, +why not say +\begin{verbatim} + The library function "pade" takes arguments + (series, integer, integer) +\end{verbatim} +or at least make that information available somehow. + +from bob sutor: + +Don, + +Try using )what op pade to see what is available. This will give +you all operations with "pade" in their names. You can also search for +*pade* via the HyperDoc Browse utility. If you don't use Browse, following +up with, say, )display op pade, will give you a more information, though +it is badly formatted (I will look at that). + +Aixproj is back-level, so I'm not sure exactly what is up their +relative to the current system. + +I agree we could use better messages regarding unknown functions +and I will look at that. + +Bob + +from bob sutor: + +The pade operation requires a taylor series as its third object while +``series'' returns a UnivariatePuiseuxSeries. If you set +\begin{verbatim} + y := taylor(1+x)**(1/5) +\end{verbatim} +then things work. You can also do +\begin{verbatim} + pade(1,1,y :: UTS(EXPR INT, x, 0) ) +\end{verbatim} +but this is more work if you really have a Taylor series. + +This is unintuitive and there should be a ``pade'' for Puiseux series that +fails if the series is not appropriate. Barry? I will now look at adding +a bit more coercion support to the interpreter to allow Puiseux series +to possibly retract to Laurent series and then possibly to Taylor series. + +Don, + +I added the retractions I mentioned before to the development system. +When the system is unsuccessful in matching a UnivariatePuiseuxSeries +to an operation, it will first try to retract it to a +UnivariateLaurentSeries. If that fails still, it will try to retract to +a UnivariateTaylorSeries. + +Be aware that this sort of thing happens when you are evaluating +an expression. If you are defining a function, you should add +explicit coercions or create objects of the correct type for +efficiency. You function may still work, but it may not run in +a compiled form. + +barry@num-alg-grp.co.uk/02/24/94 Barry Trager +<<*>>= )clear all + +--S 262 sqrt(2)*2.0 -- fails +--R +--R +--R (1) 2.8284271247 461900976 +--R Type: Expression Float +--E + +--S 263 sqrt(2)::EXPR INT * 2.0 -- works +--R +--R +--R (2) 2.8284271247 461900976 +--R Type: Expression Float +--E --- tpd: this now fails with sample : () -> Reference Integer is missing --- from domain: Integer --- Internal Error +@ +tpd: this now fails with sample : () -> Reference Integer is missing +from domain: Integer +Internal Error +bronstei@inf.ethz.ch/02/28/94 Manuel Bronstein -------------------------------------------------------------------- --- bronstei@inf.ethz.ch/02/28/94 Manuel Bronstein -------------------------------------------------------------------- +<<*>>= )clear all + +--S 264 f := exp(exp(x)*exp(1/exp(x))) / exp exp x ---)tr LIMITPS )math ---)tr DFINTTLS )math ---)tr DFINTTLS_;findLimit --- the following exits back to the shell after limit returns "failed": -computeInt(first tower f, f, 0, %plusInfinity, false)$DFINTTLS(INT, EXPR INT) - -------------------------------------------------------------------- --- jhd@maths.bath.ac.uk/03/02/94 James Davenport -------------------------------------------------------------------- -)clear all ---I've fixed coercions of List and Vector to DirectProduct. ---You can now do things like +--R +--R 1 +--R --- +--R x +--R x %e +--R %e %e +--R %e +--R (1) ---------- +--R x +--R %e +--R %e +--R Type: Expression Integer +--E + +@ +\begin{verbatim} + )tr LIMITPS )math + )tr DFINTTLS )math + )tr DFINTTLS_;findLimit +\end{verbatim} +the following exits back to the shell after limit returns ``failed'': +computeInt(first tower f, f, 0, \%plusInfinity, false)\$DFINTTLS(INT, EXPR INT) + +jhd@maths.bath.ac.uk/03/02/94 James Davenport + +I've fixed coercions of List and Vector to DirectProduct. +You can now do things like + +<<*>>= +)clear all + +--S 265 [1,2,3] :: DirectProduct(3, Fraction Integer) --- ---I also fixed coercions from Vector to List, which seems to have ---been removed via a library change. +--R +--R (1) [1,2,3] +--R Type: DirectProduct(3,Fraction Integer) +--E + +@ +I also fixed coercions from Vector to List, which seems to have +been removed via a library change. + +jhd@maths.bath.ac.uk/03/09/94 James Davenport -------------------------------------------------------------------- --- jhd@maths.bath.ac.uk/03/09/94 James Davenport -------------------------------------------------------------------- +Used to give a lisp error +<<*>>= )clear all --- used to give a lisp error + +--S 266 x**10+1::Polynomial PrimeField 2 +--R +--R 10 +--R (1) x + 1 +--R Type: Polynomial PrimeField 2 +--E -------------------------------------------------------------------- --- themos@num-alg-grp.co.uk/03/11/94 Themos Tsikas -------------------------------------------------------------------- +@ +themos@num-alg-grp.co.uk/03/11/94 Themos Tsikas +<<*>>= )clear all + +--S 267 f(x)==x**2 +--R Type: Void +--E + +@ draw(f,-1..1) -------------------------------------------------------------------- --- themos@num-alg-grp.co.uk/03/16/94 Themos Tsikas -------------------------------------------------------------------- -)clear all ---The problem was that nobody was around to catch the coerceOrCroaker. ---Just comment out the first line of intCodeGenCoerce1 in i-code.boot ---(the one with the explicit THROW). Bothe the riemannSphereDraw and JHD's ---original example will then work. -- bob sutor +themos@num-alg-grp.co.uk/03/16/94 Themos Tsikas + +The problem was that nobody was around to catch the coerceOrCroaker. +Just comment out the first line of intCodeGenCoerce1 in i-code.boot +(the one with the explicit THROW). Bothe the riemannSphereDraw and JHD's +original example will then work. -- bob sutor + +\begin{verbatim} )read conformal riemannSphereDraw(1..2,0..%pi,4,4,"polar") +\end{verbatim} - +<<*>>= +)spool +)lisp (bye) @ \eject diff --git a/src/input/schaum17.input.pamphlet b/src/input/schaum17.input.pamphlet index 6c5e67c..fdc11a2 100644 --- a/src/input/schaum17.input.pamphlet +++ b/src/input/schaum17.input.pamphlet @@ -776,7 +776,7 @@ bb:=-1/a*tan(%pi/4-(a*x)/2) --S 57 of 136 cc:=aa-bb ---R +--R --R --R 2a x - %pi --R (- sin(a x) - cos(a x) - 1)tan(----------) - 2cos(a x) - 2