$SPAD/src/input fixed.input

The Axiom Team December 3, 2016

Abstract

Contents

2

1 License

Copyright The Numerical Algorithms Group Limited 1996.

daly/10/06/92 — * —

)spool fixed.output
)set message test on
)set message auto off
)set break resume
)set expose add constructor SquareMatrix

———-

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
--S 1 of 267
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 1

———-

Here integrate is treating log(x) as a constant, which is incorrect.

— * —

--S 2 of 267
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 2

———-

bmt/10/19/92 integrate problem – serious, wrong answer — * —

)clear all
--S 3 of 267
t1:=2*sin(t)*sqrt(1+cos(t))
--R
--R                +----------+
--R   (1)  2sin(t)\|cos(t) + 1
--R                                                    Type: Expression(Integer)
--E 3

———-

Correct answer is

\frac{2 sin(t)}{\sqrt{1 + cos(t)}}

— * —

--S 4 of 267
integrate(t1,t)
--R
--R                        +----------+
--R        (- 4cos(t) - 4)\|cos(t) + 1
--R   (2)  ----------------------------
--R                      3
--R                                         Type: Union(Expression(Integer),...)
--E 4

———-

bmt/10/20/92 multiple complex in type tower — * —

)clear all
--S 5 of 267
n:Complex ?
--R                                                                   Type: Void
--E 5

———-

An invalid type. can’t have 2 complex constructors in a tower — * —

--S 6 of 267
n:=x/y+%i
--R
--R        x
--R   (2)  - + %i
--R        y
--R                                 Type: Complex(Fraction(Polynomial(Integer)))
--E 6

———-

grabm/09/28/92 coercion bug

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 of 267
f:=(a-b-c-d)**2::EXPR INT
--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 7
--S 8 of 267
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 8
--S 9 of 267
degree t1
--R
--R   (3)  [2,0]
--R                                    Type: DirectProduct(2,NonNegativeInteger)
--E 9

———-

bmt/10/26/92 wrong answer

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.

The answer should be should be

\frac{2 ∗ sin(t)}{\sqrt{1 + cos(t)}}

— * —

)clear all
--S 10 of 267
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 10

———-

bmt/09/28/92 bug in ITRIGMNP

gives: Cannot convert kernel to gaussian function — * —

)clear all
--S 11 of 267
integrate(exp(x**2),x)
--R
--R           x     2
--I         ++    %K
--I   (1)   |   %e   d%K
--R        ++
--R                                         Type: Union(Expression(Integer),...)
--E 11

———-

themos/11/06/92 integration bug 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))

Do you agree, thus max/ empty list would return 0.

— * —

)clear all
--S 12 of 267
f:=log(1-(b*x/(a+c*x**2)))/x
--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 12
--S 13 of 267
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 13
--S 14 of 267
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 14
--S 15 of 267
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 15

———-

bmt/11/17/92 interpreter resolve problem Says cannot find an appropriate *

— * —

)clear all
--S 16 of 267
%i/m*sqrt(m)
--R
--R           +-+
--R        %i\|m
--R   (1)  ------
--R           m
--R                                           Type: Expression(Complex(Integer))
--E 16

———-

tpd/09/22/92 this generates extra brackets — * —

)clear all
--S 17 of 267
foo n == matrix[[i for i in 1..n] for j in 1..n]
--R                                                                   Type: Void
--E 17
--S 18 of 267
foo
--R
--R   (2)  foo n == [[i for i in 1..n] for j in 1..n]
--R                                                    Type: FunctionCalled(foo)
--E 18
)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 — * —

)clear all
--S 19 of 267
msq := Matrix SquareMatrix(2,POLY INT)
--R
--R
--R   (1)  Matrix(SquareMatrix(2,Polynomial(Integer)))
--R                                                                 Type: Domain
--E 19
--S 20 of 267
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 20
--S 21 of 267
m(1,1) := matrix([[1,2],[a,b]])
--R
--R        +1  2+
--R   (3)  |    |
--R        +a  b+
--R                                    Type: SquareMatrix(2,Polynomial(Integer))
--E 21
--S 22 of 267
m(1,2) := matrix([[a,b],[2,b]])
--R
--R        +a  b+
--R   (4)  |    |

--R        +2  b+
--R                                    Type: SquareMatrix(2,Polynomial(Integer))
--E 22
--S 23 of 267
m(2,2) := matrix([[1,2],[2,b]])
--R
--R        +1  2+
--R   (5)  |    |
--R        +2  b+
--R                                    Type: SquareMatrix(2,Polynomial(Integer))
--E 23
--S 24 of 267
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 24
--S 25 of 267
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 25
--S 26 of 267
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 26
--S 27 of 267
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 27
--S 28 of 267
(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 28
--S 29 of 267
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 29
--S 30 of 267
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 30

———-

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 of 267
eq1 := (-6*x**3+13*x**2+4)=(-x**4+12*x)
--R
--R            3      2         4
--R   (1)  - 6x  + 13x  + 4= - x  + 12x
--R                                          Type: Equation(Polynomial(Integer))
--E 31
--S 32 of 267
eq2 := x**4+13*x**2-12*x = 6*x**3-4
--R
--R         4      2          3
--R   (2)  x  + 13x  - 12x= 6x  - 4
--R                                          Type: Equation(Polynomial(Integer))
--E 32

--S 33 of 267
eq := eq1*y**2+eq2
--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 33
--S 34 of 267
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 34
--S 35 of 267
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 35
--S 36 of 267
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 36
--S 37 of 267
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 37
--S 38 of 267
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 38
--S 39 of 267

t6:=factor lhs t5
--R
--R               2       2  2
--R   (9)  (x - 2) (x - 1) (y  + 1)
--R                                          Type: Factored(Polynomial(Integer))
--E 39
--S 40 of 267
t7:=factorAndSplit eq
--R
--R                             2
--R   (10)  [x - 2= 0,x - 1= 0,y  + 1= 0]
--R                                    Type: List(Equation(Polynomial(Integer)))
--E 40
--S 41 of 267
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 41
--S 42 of 267
- 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 42

———-

bmt/09/29/92 coercion bug fails with:

 failed cannot be coerced to mode
 (Record (: coef1 (Integer)) (: coef2 (Integer)))

fixed on 09/29/92 Another subtle bug exists as of Nov 2008 release. The expression

  (p,q):UP(x,INT)

generates the error

Daly Bug
   Category, domain or package constructor : is not available.

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 of 267
(p1,p2):UP(x,INT)
--R                                                                   Type: Void
--E 43
--S 44 of 267
p1:=3*x**4+11*x**2-4
--R
--R          4      2
--R   (2)  3x  + 11x  - 4
--R                                        Type: UnivariatePolynomial(x,Integer)
--E 44
--S 45 of 267
p2:=9*x**4+9*x**2-4
--R
--R          4     2
--R   (3)  9x  + 9x  - 4
--R                                        Type: UnivariatePolynomial(x,Integer)
--E 45
--S 46 of 267
myNextPrime: (INT,NNI) -> INT
--R                                                                   Type: Void
--E 46
--S 47 of 267
myNextPrime(x,n)==nextPrime(x)$PRIMES(INT)
--R                                                                   Type: Void
--E 47

———-

Runs forever due to algebra bug in handling leading coefficients — * —

--S 48 of 267
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 48

———-

dewar/10/02/92 actually, this was never wrong — * —

)clear all
--S 49 of 267
numeric(%e ** %pi)
--R
--R   (1)  23.1406926327 79269006
--R                                                                  Type: Float
--E 49

———-

themos/10/07/92 — * —

)clear all
--S 50 of 267
y:=operator 'y
--R
--R   (1)  y
--R                                                          Type: BasicOperator
--E 50
--S 51 of 267
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 51
--S 52 of 267
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 52

--S 53 of 267
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 53
--S 54 of 267
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 54
--S 55 of 267
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 55
--S 56 of 267
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 56
--S 57 of 267
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 57

--S 58 of 267
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 58
--S 59 of 267
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 59

———-

themos/10/07/92 equation — * —

)clear all
--S 60 of 267
y:=operator 'y
--R
--R   (1)  y
--R                                                          Type: BasicOperator
--E 60
--S 61 of 267
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 61

———-

bmt/10/08/92 laplace — * —

)clear all
--S 62 of 267
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 62

———-

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)

— * —

)clear all
--S 63 of 267
y:=operator 'y
--R
--R   (1)  y
--R                                                          Type: BasicOperator
--E 63
--S 64 of 267
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 64
--S 65 of 267
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 65

———-

sit/10/08/92 factor bug — * —

--S 66 of 267
p:POLY FRAC INT := 3*(x+1)
--R
--R   (1)  3x + 3
--R                                          Type: Polynomial(Fraction(Integer))
--E 66

———-

Is wrong (missing factor of 3).

— * —

--S 67 of 267
factor(p)**2
--R
--R                2
--R   (2)  9(x + 1)
--R                                Type: Factored(Polynomial(Fraction(Integer)))
--E 67

———-

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:

(16) ->readLineIfCan!(fp)
   >> System error:
   Unexpected end of #<input stream "/home/mcd/work/work">.
   You are being returned to the top level of the interpreter.

— * —

)clear all
--S 68 of 267
fout:TextFile:=open("/tmp/foo","output")
--R
--R   (1)  "/tmp/foo"
--R                                                               Type: TextFile
--E 68
--S 69 of 267
write!(fout,"foo")
--R
--R   (2)  "foo"
--R                                                                 Type: String

--E 69
--S 70 of 267
close!(fout)
--R
--R   (3)  "/tmp/foo"
--R                                                               Type: TextFile
--E 70
--S 71 of 267
fin:TextFile:=open("/tmp/foo","input")
--R
--R   (4)  "/tmp/foo"
--R                                                               Type: TextFile
--E 71
--S 72 of 267
readLineIfCan!(fin)
--R
--R   (5)  "foo"
--R                                                      Type: Union(String,...)
--E 72
--S 73 of 267
readLineIfCan!(fin)
--R
--R   (6)  "failed"
--R                                                    Type: Union("failed",...)
--E 73
--S 74 of 267
close!(fin)
--R
--R   (7)  "/tmp/foo"
--R                                                               Type: TextFile
--E 74
--S 75 of 267
)lisp (system "rm /tmp/foo")
--R
--RValue = 0
--E 75

———-

bmt/10/08/92 factoring over SAEs — * —

)clear all

--S 76 of 267
a | a**2+1
--R   Your statement has resulted in the following assignments and
--R      declaration:
--R
--I   SAEa := SimpleAlgebraicExtension(Fraction Integer,...
--R   a : SAEa := a
--R
--R   (1)  a
--RType: SimpleAlgebraicExtension(Fraction(Integer),UnivariatePolynomial(a,Fraction(Integer)),a^2+1)
--E 76
--S 77 of 267
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^2+1))
--E 77
--S 78 of 267
factor t1
--R
--R   (3)  (x + a + 1)(x + a)
--RType: Factored(Polynomial(SimpleAlgebraicExtension(Fraction(Integer),UnivariatePolynomial(a,Fraction(Integer)),a^2+1)))
--E 78

———-

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

Do this in a virgin system — * —

)clear all
)set expose add constructor SquareMatrix
--S 79 of 267
S2:= SquareMatrix(2,FRAC POLY INT);
--R
--R                                                                 Type: Domain
--E 79
--S 80 of 267
V2: S2 := matrix([[v,-v],[-v,v]])
--R

--R        + v   - v+
--R   (2)  |        |
--R        +- v   v +
--R                          Type: SquareMatrix(2,Fraction(Polynomial(Integer)))
--E 80
--S 81 of 267
I2: S2 := 1
--R
--R        +1  0+
--R   (3)  |    |
--R        +0  1+
--R                          Type: SquareMatrix(2,Fraction(Polynomial(Integer)))
--E 81
--S 82 of 267
m:=5
--R
--R   (4)  5
--R                                                        Type: PositiveInteger
--E 82
--S 83 of 267
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 83

———-

Does this give an error of deleteAssoc not defined ??

— * —

--S 84 of 267
A: SquareMatrix(m, S2) := diagonalMatrix(l)
--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 84

———-

load definition of deleteAssoc

)li (load "/spad/obj/rios/interp/c-util")
A: SquareMatrix(m, S2) := diagonalMatrix(l)

now , can print.

bmt/10/19/92 squareFree bug Has an extra factor of 2.

— * —

)clear all
--S 85 of 267
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 85

———-

bmt/10/19/92 division by zero error — * —

)clear all

--S 86 of 267
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 86

———-

bmt/10/19/92 limit problem

The left and right hand limits don’t agree — * —

)clear all
--S 87 of 267
limit(atan(-sin(x)/(cos(x)+e)),x=acos(-e))
--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 87
--S 88 of 267
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 88

———-

grabmeier/10/19/92 unable to compute the determinant of an 8x8 — * —

)clear all
--S 89 of 267
D := MATRIX FRAC(POLY INT)
--R
--R   (1)  Matrix(Fraction(Polynomial(Integer)))
--R                                                                 Type: Domain
--E 89
--S 90 of 267

d : (INT, Boolean) -> POLY INT
--R                                                                   Type: Void
--E 90
--S 91 of 267
d(i,ss)  ==
  ex := i rem 4
  if ex < 0 then ex := ex+4
  ss =>
    ex = 0 => 's
    ex = 1 => 'sd
    ex = 2 => 'sdd
    'sddd
  ex = 0 => 1
  ex = 1 => 'd
  ex = 2 => 'dd
  'ddd
--R
--R                                                                   Type: Void
--E 91
-- 1,d,dd,ddd,s,sd,sdd,sddd
--S 92 of 267
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 92
--S 93 of 267
for i in 1..8 repeat
  for j in 1..8 repeat
    mTV4(i,j) :=
      i <= 4 =>
        j <= 4 => d(i+j-2, false)

        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 93
--S 94 of 267
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 94
--S 95 of 267
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 95

———-

sutor/09/28/92 operator bug?

— * —

)clear all
--S 96 of 267
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 96
--S 97 of 267
dx:=operator("D")::OP(POLY FRAC INT)
--R
--R   (2)  D
--R                                Type: Operator(Polynomial(Fraction(Integer)))
--E 97
--S 98 of 267
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 98
--S 99 of 267
E n == (1-x**2)*dx**2-2*x*dx+n*(n+1)
--R                                                                   Type: Void
--E 99
--S 100 of 267
L 15
--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 100

———-

Used to fail on this line — * —

--S 101 of 267
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 101

———-

bmt/10/12/92 EFSTRUC recursion problem — * —

)clear all

--S 102 of 267
bug:=(1+x**(1/4))**(1/3)/(x**(1/2))
--R
--R         +--------+
--R        3|4+-+
--R        \|\|x  + 1
--R   (1)  -----------
--R             +-+
--R            \|x
--R                                                    Type: Expression(Integer)
--E 102

———-

Gives a value stack overflow

Seems to go into infinite recursion in rischNormalize — * —

--S 103 of 267
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 103

———-

james/10/28/92 coerce bug

Improper character in Roman numeral: G — * —

)clear all
--S 104 of 267
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 104

———-

grabm/10/28/92 runs forever

factor is quick but sqrt runs forever — * —

)clear all
--S 105 of 267
factor 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 105
--S 106 of 267
sqrt 1068303355883998767544567663620885466990173600
--R
--R                  +-----------------------------+
--R   (2)  196571340\|27647393656301898872761810506
--R                                                        Type: AlgebraicNumber
--E 106

———-

themos/11/05/92 fortran output bug — * —

)clear all
--      REAL T7,T6,T5,T4,T3,T2,T1
--      T1=x*x
--      T2=2.*y**5
--      T3=4.*T1
--      T4=y**3
--      T5=2.*T7
--      T6=x**3
--      T7=x**4
--      R46=((T2+(T3+8.*x+8.)*T4+(T5+8.*T6+(-40.*T1))*y)*SIN(x)+(-T2+(-T3+
--     &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
--S 107 of 267
a1:=sin(x)/(x**2+y**2)
--R
--R         sin(x)
--R   (1)  -------
--R         2    2
--R        y  + x
--R                                                    Type: Expression(Integer)

--E 107
--S 108 of 267
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 108
--S 109 of 267
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 109

———-

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 of 267
R := FRAC INT
--R
--R   (1)  Fraction(Integer)
--R                                                                 Type: Domain
--E 110

--S 111 of 267
lpx : List POLY R := [x1+x2+x3, x1*x2+x1*x3+x2*x3,x1*x2*x3]
--R
--R   (2)  [x3 + x2 + x1,(x2 + x1)x3 + x1 x2,x1 x2 x3]
--R                                    Type: List(Polynomial(Fraction(Integer)))
--E 111
--S 112 of 267
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 112
--S 113 of 267
gbp := groebner lip
--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 113
--S 114 of 267
normalForm(x1**2+x2**2+x3**2,gbp)
--R
--R          2
--R   (5)  e3  - 2e2
--R                                          Type: Polynomial(Fraction(Integer))
--E 114
--S 115 of 267
dmp := DMP([x1,x2,x3,e1,e2,e3],INT)
--R
--R   (6)  DistributedMultivariatePolynomial([x1,x2,x3,e1,e2,e3],Integer)
--R                                                                 Type: Domain
--E 115
--S 116 of 267
li : List dmp := [lpx.1-e1, lpx.2-e2, lpx.3-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 116
--S 117 of 267
gb := groebner li
--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 117
--S 118 of 267
p:dmp:=(x1**2+x2**2+x3**2)
--R
--R          2     2     2
--R   (9)  x1  + x2  + x3
--R         Type: DistributedMultivariatePolynomial([x1,x2,x3,e1,e2,e3],Integer)
--E 118
--S 119 of 267
normalForm(p,gb)
--R
--R           2
--R   (10)  e1  - 2e2
--RType: DistributedMultivariatePolynomial([x1,x2,x3,e1,e2,e3],Fraction(Integer))
--E 119
--S 120 of 267
normalForm(x1**2+x2**2+x3**2,gb)
--R
--R            2                      2              2
--R   (11)  2x2  + (2x1 - 2e1)x2 + 2x1  - 2e1 x1 + e1
--R                                          Type: Polynomial(Fraction(Integer))
--E 120

———-

bmt/11/17/92 Ifintegrate

One cannot simply parametrize reducible curves, it seems. Any attempt at parametrization can only follow one branch. For curves of the form y^{2} = a^{2}x^{2} + bx + c, these are only reducible if a^{2}x^{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^{2}x^{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 of 267
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 121

———-

This gets a non-invertible error

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:

  No identity element for reduce of empty list using operation max

— * —

)clear all
--S 122 of 267
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 122

———-

dewar/02/15/93

  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:

— * —

)clear all

--S 123 of 267
t1:=i::POLY INT
--R
--R   (1)  i
--R                                                    Type: Polynomial(Integer)
--E 123
--S 124 of 267
t2:=t1::Union(s:Symbol, p:POLY INT)
--R
--R   (2)  i
--R                                      Type: Union(p: Polynomial(Integer),...)
--E 124
--S 125 of 267
list t2
--R
--R   (3)  [i]
--R                          Type: List(Union(s: Symbol,p: Polynomial(Integer)))
--E 125

———-

grabm/03/04/93 parser bug? not for system commands

)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

bronstein/03/08/93 wrong particular solution — * —

)clear all
--S 126 of 267
I:=operator 'I
--R
--R   (1)  I
--R                                                          Type: BasicOperator
--E 126
--S 127 of 267
J:=operator 'J
--R
--R   (2)  J
--R                                                          Type: BasicOperator
--E 127
--S 128 of 267

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 128
--S 129 of 267
solve(eq,I,x)
--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 129

———-

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 ’ís 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. — * —

)clear all
--S 130 of 267
ofile: File String := open("/tmp/test","output")
--R
--R   (1)  "/tmp/test"
--R                                                           Type: File(String)
--E 130

———-

This writes “\\\\test” but should write “\\test”

— * —

--S 131 of 267
write!(ofile,"\\test"::String)
--R
--R   (2)  "\\test"
--R                                                                 Type: String
--E 131
--S 132 of 267
close! ofile
--R
--R   (3)  "/tmp/test"
--R                                                           Type: File(String)
--E 132

———-

themos/04/07/93 this sometimes fails

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 of 267
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 133
--S 134 of 267
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 134

———-

williamson/04/21/93

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 of 267
up := UP('w,FRAC INT)
--R
--R   (1)  UnivariatePolynomial(w,Fraction(Integer))
--R                                                                 Type: Domain
--E 135
--S 136 of 267
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 136
--S 137 of 267
sae := SAE(FRAC INT,up,p)
--R
--R   (3)
--R  SimpleAlgebraicExtension(Fraction(Integer),UnivariatePolynomial(w,Fraction(In
--R  teger)),w^4+w^3+w^2+w+1)
--R                                                                 Type: Domain
--E 137
--S 138 of 267
q : UP('x,sae) := 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^2+w+1))
--E 138

———-

Used to report: x**5-1 — * —

--S 139 of 267
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^2+w+1)))
--E 139
--S 140 of 267
saefact := SAEFACT(up,sae,UP('x,sae))
--R
--R   (6)
--R  SimpleAlgebraicExtensionAlgFactor(UnivariatePolynomial(w,Fraction(Integer)),S

--R  impleAlgebraicExtension(Fraction(Integer),UnivariatePolynomial(w,Fraction(Int
--R  eger)),w^4+w^3+w^2+w+1),UnivariatePolynomial(x,SimpleAlgebraicExtension(Fract
--R  ion(Integer),UnivariatePolynomial(w,Fraction(Integer)),w^4+w^3+w^2+w+1)))
--R                                                                 Type: Domain
--E 140
--S 141 of 267
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^2+w+1)))
--E 141

———-

grabm/04/30/93

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

Results in 10 and not A — * —

)clear all
--S 142 of 267
10::RadixExpansion(16)
--R
--R   (1)  A
--R                                                     Type: RadixExpansion(16)
--E 142

———-

bronstei@inf.ethz.ch (manuel bronstein)

Used to return x, now returns 1 — * —

)clear all
--S 143 of 267
r:=rule 'x == 1
--R
--R   (1)  x == 1
--R                       Type: RewriteRule(Integer,Integer,Expression(Integer))
--E 143
--S 144 of 267

r x
--R
--R   (2)  1
--R                                                    Type: Expression(Integer)
--E 144

———-

ADK@scri.fsu.edu (tony kennedy)

— * —

)clear all
--S 145 of 267
t1:=factor(-12)
--R
--R           2
--R   (1)  - 2 3
--R                                                      Type: Factored(Integer)
--E 145
--S 146 of 267
t1**2
--R
--R         4 2
--R   (2)  2 3
--R                                                      Type: Factored(Integer)
--E 146

———-

bronstei@inf.ethz.ch (manuel bronstein)

Error: cannot retract nonconstant polynomial — * —

)clear all
--S 147 of 267
complexNumeric(log(sqrt(-3)))
--R
--R   (1)  0.5493061443 340548457 + 1.5707963267 948966192 %i
--R                                                         Type: Complex(Float)
--E 147

———-

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 ???

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.

— * —

)clear all
)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) ==")
)lisp (format ofile "     #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)

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 sqrt(-1)\$EXPR(FLOAT)).

— * —

)clear all
--S 148 of 267
sqrt(-1::EXPR FLOAT)
--R
--R         +-----+
--R   (1)  \|- 1.0
--R                                                      Type: Expression(Float)
--E 148
--S 149 of 267
sqrt(2::EXPR FLOAT)
--R
--R
--R   (2)  1.4142135623 730950488
--R                                                      Type: Expression(Float)
--E 149
--S 150 of 267
nthRoot(-2::EXPR FLOAT, 3)
--R
--R   (3)  - 1.2599210498 948731648
--R                                                      Type: Expression(Float)
--E 150
--S 151 of 267
nthRoot(-2::EXPR FLOAT, 4)
--R
--R        4+-----+
--R   (4)  \|- 2.0
--R                                                      Type: Expression(Float)
--E 151

———-

bronstei@inf.ethz.ch/10/6/93 (Manuel Bronstein)

Here is an updated efstruc.spad where ker2trigs now knows about abs.

— * —

)clear all
--S 152 of 267
real abs(4 + %i * 5)
--R

--R         +--+
--R   (1)  \|41
--R                                                    Type: Expression(Integer)
--E 152

———-

bronstei@inf.ethz.ch/10/5/93 (Manuel Bronstein)

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}.

— * —

)clear all
--S 153 of 267
exp(5/3*%i*%pi)
--R
--R             +-+
--R        - %i\|3  + 1
--R   (1)  ------------
--R              2
--R                                           Type: Expression(Complex(Integer))
--E 153

———-

bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein), luczak@nag.com (Richard Luczak)

— * —

)clear all
--S 154 of 267
exp(log(-1))
--R
--R   (1)  - 1
--R                                                    Type: Expression(Integer)
--E 154
--S 155 of 267
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 155

———-

bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein)

Simplifies (abs now checks quotients instead of just retraction to R). — * —

)clear all
--S 156 of 267
abs((1/2)::EXPR(INT))
--R
--R        1
--R   (1)  -
--R        2
--R                                                    Type: Expression(Integer)
--E 156

———-

bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein)

— * —

)clear all
--S 157 of 267
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 157

———-

bmt@spadserv.watson.ibm.com/9/28/93 (Barry Trager)

— * —

)clear all
--S 158 of 267
limit(1/2**n,n=%plusInfinity)
--R
--R   (1)  0
--R                      Type: Union(OrderedCompletion(Expression(Integer)),...)
--E 158

———-

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
--S 159 of 267
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 159
--S 160 of 267
real? x
--R
--R   (2)  false
--R                                                                Type: Boolean
--E 160
--S 161 of 267
real x
--R
--R             2         +-+
--R   (3)  log(a  + 1) + \|2
--R                                                    Type: Expression(Integer)
--E 161
--S 162 of 267
imag x
--R
--R         +---+
--R         |  a     +-+
--R   (4)  \|%e   + \|3  + %pi
--R                                                    Type: Expression(Integer)
--E 162

———-

bronstei@inf.ethz.ch/9/22/93 (Manuel Bronstein)

  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:

— * —

)clear all
--S 163 of 267
haha := rule x*x == z
--R
--R         2
--R   (1)  x  == z
--R                       Type: RewriteRule(Integer,Integer,Expression(Integer))
--E 163
--S 164 of 267
haha 4
--R
--R   (2)  z
--R                                                    Type: Expression(Integer)
--E 164
--S 165 of 267
haha 3
--R
--R   (3)  3
--R                                                    Type: Expression(Integer)
--E 165
--S 166 of 267
haha(4*z)
--R
--R   (4)  z
--R                                                    Type: Expression(Integer)
--E 166
--S 167 of 267
haha(3*z)
--R
--R   (5)  3z
--R                                                    Type: Expression(Integer)
--E 167

———- To see the whole rewrite chain:

— * —

--S 168 of 267
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 168
--S 169 of 267
t2:=applyRules([haha], t1, 1)$APPRULE(INT,INT,EXPR INT)
--R
--R   (7)  4z
--R                                                    Type: Expression(Integer)
--E 169
--S 170 of 267
t3:=applyRules([haha], t2, 1)$APPRULE(INT,INT,EXPR INT)
--R
--R         2
--R   (8)  z
--R                                                    Type: Expression(Integer)
--E 170
--S 171 of 267
t4:=applyRules([haha], t3, 1)$APPRULE(INT,INT,EXPR INT)
--R
--R   (9)  z
--R                                                    Type: Expression(Integer)
--E 171

———-

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 of 267
harm(1) == 1
--R                                                                   Type: Void
--E 172

--S 173 of 267
harm(n) == harm(n-1) + 1/n
--R                                                                   Type: Void
--E 173
--S 174 of 267
harm : Integer -> Fraction Integer
--R                                                                   Type: Void
--E 174
--S 175 of 267
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 175
--S 176 of 267
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 176

———-

williams@inf.ethz.ch/9/1/93 (Clifton Williamson)

We should probably support integrate(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 of 267
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 177

———-

In this case, as currently implemented, ’differentiate’ returns incorrect answers: — * —

--S 178 of 267
differentiate t1
--R
--R   >> Error detected within library code:
--R   "'differentiate' unavailable on this domain;  use 'approximate' first"
--R
--I  Line2690: --R
--I  Line2691: --R   (1)
--I  Line2692: --R                         2            3            4            5
--I  Line2693: --R                   log(x)   2   log(x)   3   log(x)   4   log(x)   5

--I  Line2694: --R     1 + log(x)x + ------- x  + ------- x  + ------- x  + ------- x
--I  Line2695: --R                      2            6            24          120
--I  Line2696: --R   +
--I  Line2697: --R           6            7            8            9            10
--I  Line2698: --R     log(x)   6   log(x)   7   log(x)   8   log(x)   9   log(x)    10      11
--I  Line2699: --R     ------- x  + ------- x  + ------- x  + ------- x  + -------- x   + O(x  )
--I  Line2700: --R       720          5040        40320        362880       3628800
--I  Line2701: --R                   Type: GeneralUnivariatePowerSeries(Expression Integer,x,0)
--I  Line2702: --E 178
--I  Line2703:
--I  Line2704:
--I  Line2705: --S 178 of 267
--I  Line2706: differentiate t1
--I  Line2707:
--I  Line2708:    >> Error detected within library code:
--I           ...A....................................B
--I  Error  A: (from #\A up to #\B) Ignored.
--I  Error  B: Improper syntax.
--I  Line2709:    "'differentiate' unavailable on this domain;  use 'approximate' first"
--I   2 error(s) parsing
--I
--E 178

———-

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:

— * —

)clear all

--S 179 of 267
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 179
--S 180 of 267
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 180

———-

But, unfortunately, I never implemented it for Puiseux series:

— * —

--S 181 of 267
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 181
--S 182 of 267
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 182
--S 183 of 267
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 183
--S 184 of 267
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 184
--S 185 of 267
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 185

———-

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:

— * —

--S 186 of 267
sqrt(-1::EXPR FLOAT)
--R
--R         +-----+
--R   (1)  \|- 1.0
--R                                                      Type: Expression(Float)
--E 186
--S 187 of 267
sqrt(2::EXPR FLOAT)
--R
--R   (2)  1.4142135623 730950488
--R                                                      Type: Expression(Float)
--E 187
--S 188 of 267
nthRoot(-2::EXPR FLOAT, 3)
--R
--R   (3)  - 1.2599210498 948731648
--R                                                      Type: Expression(Float)
--E 188
--S 189 of 267
nthRoot(-2::EXPR FLOAT, 4)
--R
--R        4+-----+
--R   (4)  \|- 2.0
--R                                                      Type: Expression(Float)
--E 189

———-

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

   (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)

is still fairly ugly.

— * —

)clear all
--S 190 of 267
integrate(1/(x*(log(x)**2+a**2-1)),x)
--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 190

———-

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
--S 191 of 267
normalize(2**(1/2) + 2**(1/4))
--R
--R        4+-+2   4+-+
--R   (1)  \|2   + \|2
--R                                                    Type: Expression(Integer)
--E 191

———-

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
--S 912 of 267
integrate(%e**x,x=0..1)
--R
--R   (1)  %e - 1
--R                  Type: Union(f1: OrderedCompletion(Expression(Integer)),...)
--E 192
--S 913 of 267
integrate(log(x),x=1..2)
--R
--R   (2)  log(4) - 1
--R                  Type: Union(f1: OrderedCompletion(Expression(Integer)),...)
--E 193

———-

bronstei@inf.ethz.ch/8/5/93 (manuel bronstein)

This will return 2**(5/6).

— * —

)clear all
--S 194 of 267
simplify(2**(1/3)*2**(1/2)) --
--R
--R        6+-+5
--R   (1)  \|2

--R                                                    Type: Expression(Integer)
--E 194

———-

bronstei@inf.ethz.ch/8/4/93 (manuel bronstein)

— * —

)clear all
--S 195 of 267
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 195

———-

bronstei@inf.ethz.ch/8/4/93 (manuel bronstein)

This used to be division by 0 error — * —

)clear all
--S 196 of 267
normalize atan(cos(x)/sin(x))
--R
--R        - 2x + %pi
--R   (1)  ----------
--R             2
--R                                                    Type: Expression(Integer)
--E 196

———-

bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) — * —

)clear all
--S 197 of 267
a := 2**(1/6)
--R
--R        6+-+

--R   (1)  \|2
--R                                                        Type: AlgebraicNumber
--E 197
--S 198 of 267
[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 198

———-

bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) — * —

)clear all
--S 199 of 267
int:=sqrt(a*(1-u**2)/(1+u**2))/u
--R
--R         +----------+
--R         |     2
--R         |- a u  + a
--R         |----------
--R         |   2
--R        \|  u  + 1
--R   (1)  -------------
--R              u
--R                                                    Type: Expression(Integer)
--E 199
--S 200 of 267
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 200

———-

Runs forever?

— * —

--S 201 of 267
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 201

———- Dies after a long time with an elt index error

— * —

--S 202 of 267
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 202

———-

bronstei@inf.ethz.ch/8/4/93 (manuel bronstein)

— * —

)clear all
--S 203 of 267
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 203
--S 204 of 267
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 204

———-

bronstei@inf.ethz.ch/7/26/93 (manuel bronstein)

— * —

)clear all
--S 205 of 267
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 205
--S 206 of 267
k:=first kernels t1
--R
--R         +-------------+
--R         |    +-------+
--R         |    |    +-+
--R   (2)  \|- 2\|- 4\|3
--R                                            Type: Kernel(Expression(Integer))
--E 206
--S 207 of 267
eval(t1,k,t1)
--R
--R         +-------------+

--R         |    +-------+
--R         |    |    +-+
--R        \|- 2\|- 4\|3    - 4
--R   (3)  --------------------
--R                  4
--R                                                    Type: Expression(Integer)
--E 207

———-

nagttt@vax.ox.ac.uk/7/15/93 themos tsikas — * —

)clear all
--S 208 of 267
f := (x - y) / (x + y)
--R
--R        - y + x
--R   (1)  -------
--R         y + x
--R                                          Type: Fraction(Polynomial(Integer))
--E 208
--S 209 of 267
eval(f,x=1/x)
--R
--R        - x y + 1
--R   (2)  ---------
--R         x y + 1
--R                                          Type: Fraction(Polynomial(Integer))
--E 209

———-

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 of 267
digits 200
--R
--R   (1)  20
--R                                                        Type: PositiveInteger
--E 210

--S 211 of 267
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 211
--S 212 of 267
b:=1/(2*sin(%pi/9))
--R
--R            1
--R   (3)  ---------
--R             %pi
--R        2sin(---)
--R              9
--R                                                    Type: Expression(Integer)
--E 212
--S 213 of 267
a::EXPR FLOAT
--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 213
--S 214 of 267
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 214
--S 215 of 267
digits 20
--R
--R   (6)  200
--R                                                        Type: PositiveInteger
--E 215

———-

bmt@spadserv.watson.ibm.com/9/15/93 (Barry Trager)

— * —

)clear all
--S 216 of 267
limit(tanh(x),x=%plusInfinity)
--R
--R   (1)  1
--R                      Type: Union(OrderedCompletion(Expression(Integer)),...)
--E 216

———-

bronstei@inf.ethz.ch/6/14/93 (manuel bronstein)

— * —

)clear all
--S 217 of 267
a := x::EXPR INT
--R
--R   (1)  x
--R                                                    Type: Expression(Integer)
--E 217
--S 218 of 267
b := x::EXPR COMPLEX INT
--R
--R   (2)  x
--R                                           Type: Expression(Complex(Integer))
--E 218
--S 219 of 267
zeroOf(a**4+1,x)
--R
--R         +---+
--R        \|- 1  + 1
--R   (3)  ----------
--R            +-+
--R           \|2
--R                                                    Type: Expression(Integer)
--E 219
--S 220 of 267
zeroOf(b**4+1,x)
--R
--R        1 + %i
--R   (4)  ------

--R          +-+
--R         \|2
--R                                           Type: Expression(Complex(Integer))
--E 220

———-

bronstei@inf.ethz.ch/6/11/93 (manuel bronstein)

Now returns 0 (was crashing before)

— * —

)clear all
--S 221 of 267
normalize(0**a)
--R
--R   (1)  0
--R                                                    Type: Expression(Integer)
--E 221

———-

bronstei@inf.ethz.ch/6/11/93 (manuel bronstein)

New export “complexForm(f)” which returns the rectangular complex form of f: — * —

)clear all
--S 222 of 267
t1:=log(a+%i * b)
--R
--R   (1)  log(%i b + a)
--R                                           Type: Expression(Complex(Integer))
--E 222
--S 223 of 267
complexForm t1
--R
--R             2    2
--R        log(b  + a )        b
--R   (2)  ------------ + atan(-)%i
--R              2             a
--R                                           Type: Complex(Expression(Integer))
--E 223
--S 224 of 267
t2:=complexIntegrate(1/(x-%i),x)
--R
--R   (3)  log(x - %i)
--R                                           Type: Expression(Complex(Integer))

--E 224
--S 225 of 267
complexForm t2
--R
--R             2
--R        log(x  + 1)        1
--R   (4)  ----------- - atan(-)%i
--R             2             x
--R                                           Type: Complex(Expression(Integer))
--E 225

———-

jcf@posso.ibp.fr

normalForm est faux pour les polynomes a coef dans un anneau: — * —

)clear all
--S 226 of 267
D:=DMP([a,b],INT)
--R
--R   (1)  DistributedMultivariatePolynomial([a,b],Integer)
--R                                                                 Type: Domain
--E 226
--S 227 of 267
l:List D:=[2*a-1,b-a]
--R
--R   (2)  [2a - 1,- a + b]
--R                 Type: List(DistributedMultivariatePolynomial([a,b],Integer))
--E 227
--S 228 of 267
g:=groebner l
--R
--R   (3)  [2a - 1,2b - 1]
--R                 Type: List(DistributedMultivariatePolynomial([a,b],Integer))
--E 228
--S 229 of 267
p:D:=a
--R
--R   (4)  a
--R                       Type: DistributedMultivariatePolynomial([a,b],Integer)
--E 229

———- Was 1, au lieu de 1/2 !!

— * —

--S 230 of 267
normalForm(p,g)
--R
--R        1
--R   (5)  -
--R        2
--R             Type: DistributedMultivariatePolynomial([a,b],Fraction(Integer))
--E 230

———-

nagttt@vax.ox.ac.uk/6/9/93 themos tsikas — * —

)clear all
--S 231 of 267
squareFreePart(50)
--R
--R   (1)  10
--R                                                        Type: PositiveInteger
--E 231

———-

mcd@maths.bath.ac.uk/6/4/92 mike dewar — * —

)clear all
--S 232 of 267
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 232
--S 233 of 267
g:=subst(f,x=1)
--R
--R   (2)  %i log(1 - %i) - %i log(1 - 2%i)
--R                                           Type: Expression(Complex(Integer))
--E 233
--S 234 of 267
imag g
--R
--R        - log(5) + log(2)

--R   (3)  -----------------
--R                2
--R                                                    Type: Expression(Integer)
--E 234

———-

daly - not wrong but the order is obscure...

— * —

)clear all
--S 235 of 267
primes(1,10)
--R
--R   (1)  [2,7,5,3]
--R                                                          Type: List(Integer)
--E 235

———-

nagttt@vax.ox.ac.uk/1/11/93 themos tsikas — * —

)clear all
--S 236 of 267
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 236

———-

This ends in error: Internal system problem in function appInfix : fewer than 2 arguments to an infix function

— * —

--S 237 of 267
ll:=radicalEigenvectors m
--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 237

———-

but this works — * —

--S 238 of 267
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 238
--S 239 of 267
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 239
--S 240 of 267
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 240

———-

bronstei@inf.ethz.ch/11/24/93 Manuel Bronstein

--)clear all
--Here's a bug that appears with the )math option only.
--
--)tr MATRIX )ops determinant )math
--

--   Parameterized constructors traced:
--      MATRIX
-- this integrate is commented out since it runs forever (at least many hours)
--integrate(sqrt(1/x+1)*sqrt(x)-sqrt(x+1),x)
--1<enter Matrix.determinant,26 :
--
-- Internal system problem in function appInfix :
-- fewer than 2 arguments to an infix function

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:

   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 — * —

)clear all
--S 241 of 267
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 241
--S 242 of 267
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 242
--S 243 of 267
srimes := complete rrimes
--R
--R   (3)  [5000,4893,4653,4475,4005,3893,3669,3459,3143,2967,...]
--R                                                        Type: Stream(Integer)
--E 243
--S 244 of 267
[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 244
--S 245 of 267

[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 245

———-

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:

(145) ->X := log(0.7*%i*x)
 >> Error detected within library code:
 negative root

— * —

)clear all
--S 246 of 267
X := log(0.7*%i*x)
--R
--R   (1)  log(0.7 %i x)
--R                                             Type: Expression(Complex(Float))
--E 246

———-

sutor@yktpub.watson.ibm.com/12/15/93 (Robert S. Sutor)

• 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)

— * —

)clear all
--S 247 of 267
log2() --> Float
--R
--R
--R   (1)  0.6931471805 5994530942

--R                                                                  Type: Float
--E 247
--S 248 of 267
exp1() --> DoubleFLoat ???
--R
--R
--R   (2)  2.7182818284 590452354
--R                                                                  Type: Float
--E 248

———-

quitte@knuth.univ-poitiers.fr/12/14/93 Claude Quitte

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 :

— * —

)clear all
--S 249 of 267
L : List(String) := ["There is", "it seems", "a real bug", "here"]
--R
--R   (1)  ["There is","it seems","a real bug","here"]
--R                                                           Type: List(String)
--E 249
--S 250 of 267
L1 := delete!(L, 1)

--R
--R   (2)  ["it seems","a real bug","here"]
--R                                                           Type: List(String)
--E 250
--S 251 of 267
L
--R
--R   (3)  ["There is","it seems","a real bug","here"]
--R                                                           Type: List(String)
--E 251
--S 252 of 267
L2 := delete!(L, 2)
--R
--R   (4)  ["There is","a real bug","here"]
--R                                                           Type: List(String)
--E 252
--S 253 of 267
L
--R
--R   (5)  ["There is","a real bug","here"]
--R                                                           Type: List(String)
--E 253

———-

   (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 — * —

)clear all
--S 254 of 267
K := Fraction(Integer)
--R
--R   (1)  Fraction(Integer)

--R                                                                 Type: Domain
--E 254
--S 255 of 267
PolK := UP('X, K)
--R
--R   (2)  UnivariatePolynomial(X,Fraction(Integer))
--R                                                                 Type: Domain
--E 255
--S 256 of 267
X : PolK := monomial(1, 1)
--R
--R   (3)  X
--R                              Type: UnivariatePolynomial(X,Fraction(Integer))
--E 256
--S 257 of 267
n : PositiveInteger := 15
--R
--R   (4)  15
--R                                                        Type: PositiveInteger
--E 257
--S 258 of 267
E := SimpleAlgebraicExtension(K, PolK, X**n + X**(n-3) -1)
--R
--R   (5)
--R  SimpleAlgebraicExtension(Fraction(Integer),UnivariatePolynomial(X,Fraction(In
--R  teger)),X^15+X^12+-1)
--R                                                                 Type: Domain
--E 258
--S 259 of 267
y : E := X::E
--R
--R   (6)  X
--RType: SimpleAlgebraicExtension(Fraction(Integer),UnivariatePolynomial(X,Fraction(Integer)),X^15+X^12+-1)
--E 259
--S 260 of 267
minimalPolynomial(y)$E
--R
--R         15    12
--R   (7)  X   + X   - 1
--R                              Type: UnivariatePolynomial(X,Fraction(Integer))
--E 260

———-

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))

luczak@nag.com/02/20/94 (Richard Luczak)

I’m trying to define the following rule

— * —

)clear all
--S 261 of 267
tr := rule cos(x)**(n | integer? n and even? n)==(1-sin(x)**2)**(n/2)
--R
--R                                  n
--R                                  -
--R              n             2     2
--R   (1)  cos(x)  == (- sin(x)  + 1)
--R                       Type: RewriteRule(Integer,Integer,Expression(Integer))
--E 261

———-

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)

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

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.

barry@num-alg-grp.co.uk/02/24/94 Barry Trager — * —

)clear all
--S 262 of 267
sqrt(2)*2.0 -- fails
--R
--R
--R   (1)  2.8284271247 461900976
--R                                                      Type: Expression(Float)
--E 262
--S 263 of 267
sqrt(2)::EXPR INT * 2.0 -- works
--R
--R
--R   (2)  2.8284271247 461900976
--R                                                      Type: Expression(Float)
--E 263

———-

tpd: this now fails with sample : () -¿ Reference Integer is missing from domain: Integer Internal Error

bronstei@inf.ethz.ch/02/28/94 Manuel Bronstein

— * —

)clear all
--S 264 of 267
f := exp(exp(x)*exp(1/exp(x))) / exp exp x
--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 264

———-

)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 I’ve fixed coercions of List and Vector to DirectProduct. You can now do things like

— * —

)clear all
--S 265 of 267
[1,2,3] :: DirectProduct(3, Fraction Integer)
--R
--R   (1)  [1,2,3]
--R                                     Type: DirectProduct(3,Fraction(Integer))
--E 265

———-

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 Used to give a lisp error

— * —

)clear all
--S 266 of 267
x**10+1::Polynomial PrimeField 2
--R
--R         10
--R   (1)  x   + 1
--R                                              Type: Polynomial(PrimeField(2))
--E 266

———-

themos@num-alg-grp.co.uk/03/11/94 Themos Tsikas — * —

)clear all
--S 267 of 267

f(x)==x**2
--R                                                                   Type: Void
--E 267

———-

draw(f,-1..1)

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

)read conformal
riemannSphereDraw(1..2,0..%pi,4,4,"polar")

— * —

)spool
)lisp (bye)

———-

References^{[1] nothing}

130