bugAxiom Computer Algebra System - Bugs: bug #10350, integrating UTS


You are not allowed to post comments on this tracker with your current authentication level.

bug #10350: integrating UTS

Submitter:  Martin Rubey <kratt6>
Submitted:  Sat 11 Sep 2004 12:34:23 PM UTC
Category:  algebra Severity:  3 - Normal
Item Group:  code bug Status:  transferred
Privacy:  Public Assigned to:  None
Originator Name:  Martin Rubey Open/Closed:  Open
Release:  Reproducibility:  None
Fixed Release: 
Error message: 

Example of code trigerring the bug: 

integrate((1/x)::UTS(FRAC POLY INT, x, 0),x)
integrate((1/y)::UTS(FRAC POLY INT, x, 0),z)

Internal cause: 

The first bug is an indication that 1/x should not be of type UTS(x, FRAC POLY INT), UP(x, FRAC POLY INT) and so on. The second is an indication that QFCAT should have a function variables: % -> List Symbol.

Sat 02 Oct 2004 12:09:22 PM UTC, comment #2: 

I disagree with the previous comment; x should be captured and not allowed in the FRAC POLY INT.  (I agree that the second example in the original report is not a bug.)

But surely we can all agree that
  integrate((1/x)::ULS(FRAC POLY INT, x, 0),x)
is a bug?  The problem is the same: the 1/x is being treated in the coefficient domain.  Note that
  integrate(1/(x::ULS(FRAC POLY INT, x, 0)),x)
produces a correct result.

Dylan (dpt@math.harvard.edu)

Sat 02 Oct 2004 08:33:01 AM UTC, comment #1: 

Neither of these is a bug. In the first one, Axiom coerced 1/x into FRAC POLY INT correctly: the only / operation available in UTS is one induced from the coefficient domain, which requires the denominator to be in the coefficient domain, and the division is done termwise to the coefficients of the series. So 1/x ends up in FRAC POLY INT. Note that to obtain a Taylor series at x = 0 is mathematically is wrong, since 1/x is not defined at x=0. Also the way to obtain a Taylor series is taylor(func, x=a). If you do integrate(taylor(1/x,x=1),x), that would cause no problems. Note that the domain of this command is UTS(EXPR INT, x,1), so such towers are valid and necessary in Axiom. Note also there are only two exported[coerce] in UTS and they do NOT apply to 1/x.  The x in UTS is like the x in UP and is different from the x in FRAC POLY INT. The representation is Stream Coef (no variable specified because it is univariate).

For the same reason, in the second command, 1/y is correctly coerced into FRAC POLY INT. However, in UTS(,x,), the only integrations allowed are with respect to x. If you want to do integration in FRAC POLY INT, then you should do so without coercing 1/y into UTS.

So your examples do not illustrate the problem about mixed up variables. In fact, it supports use of towers like UTS(EXPR INT, x, a).

William (wyscc@cunyvm.cuny.edu)

Sat 11 Sep 2004 12:34:23 PM UTC, original submission:  

integrate((1/x)::UTS(FRAC POLY INT, x, 0),x)

   (11)  - x
                Type: UnivariateTaylorSeries(Fraction Polynomial Integer,x,0)

 integrate((1/y)::UTS(FRAC POLY INT, x, 0),z)

Cannot find a definition or applicable library operation named
      integrate with argument type(s)
           UnivariateTaylorSeries(Fraction Polynomial Integer,x,0)
                                 Variable z

Martin Rubey <kratt6>


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


CC list is empty


There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.


Follow 2 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2006-02-18 billpage1 StatusNone transferred
    Example of code trigerring the bugintegrate((1/x)::UTS(FRAC POLY INT, x, 0),x) integrate((1/y)::UTS(FRAC POLY INT, x, 0),z) integrate((1/x)::UTS(FRAC POLY INT, x, 0),x) integrate((1/y)::UTS(FRAC POLY INT, x, 0),z)

Back to the top

Powered by Savane 3.12.
Corresponding source code