$SPAD/src/input bug103.input

Timothy Daly December 3, 2016

Abstract

Contents

2 The call

  solve(z=z,z)

fails with:

   >> Error detected within library code:
   (1 . failed) cannot be coerced to mode (Polynomial (Integer))

The bug fix, proposed by William, changes exquo in EuclideanDomain to add the zero? x test.

      x exquo y ==
         zero? x => 0
         zero? y => "failed"
         qr:=divide(x,y)
         zero?(qr.remainder) => qr.quotient
         "failed"

This change was made but does not affect the behavior of the bug.

This fix, proposed by Martin, changes primitePart in PolynomialCategory to add the

zero? test.
      primitivePart p ==
        zero? p => p
        unitNormal((p exquo content p) ::%).canonical
      primitivePart(p,v) ==
        zero? p => p
        unitNormal((p exquo content(p,v)) ::%).canonical

succeeds with:

  [0= 0]
                Type: List Equation Fraction Polynomial Integer

— * —

)set break resume
)spool bug103.output
)set message test on
)set message auto off
)clear all
--S 1 of 1
solve(z=z,z)
--R
--R
--R   (1)  [0= 0]
--R                          Type: List(Equation(Fraction(Polynomial(Integer))))
--E 1

———-

If we substitute z for

z
++    a     b
|   (z  + 1) dz
++

which is the original input integral. — * —

)spool
)lisp (bye)

———-

References^{[1] nothing}

5