login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

Submitted by : (unknown) at: 2007-11-17T21:56:34-08:00 (9 years ago)
Name :
Axiom Version :
Category : Severity : Status :
Optional subject :  
Optional comment :

Original Date: Fri, 25 Mar 2005 10:47:55 -0600

In axiom the cercion of power series is really strange:

  • ExpressionToUnivariatePowerSeries? (function: series,taylor,laurent...) return Any type.
  • When this Any type is printed, the series is coerced. For example to UnivariatePuiseuxSeries?.
  • This process of coercion involves probably some invalid type.

I will give some hint to understand this. Here the interpreter has to coerce the series (EXPR (INT OR OTHER)), the variable and the expansion point. In Axiom trace all these functions: P2Uls P2Upxs P2Uts Expr2Up NDmp?2domain Var2OtherPS Var2QF P2Us canCoerceLocal coerceIntTableOrFunction coerceIntTower canCoerce1 canCoerceTower canCoerce canCoerceFrom resolveTT1 resolveTTSpecial (you can had HasCate? hasCaty hasCaty1 hasCate1 if you want to better understand ofCategory bug (not parameterized ?) :

  )tr P2Uls 
  )tr P2Upxs 
  )tr P2Uts 
  )tr Expr2Up 
  )tr NDmp2domain
  )tr Var2OtherPS
  )tr Var2QF
  )tr P2Us
  )tr canCoerceLocal
  )tr coerceIntTableOrFunction
  )tr coerceIntTower
  )tr canCoerce1
  )tr canCoerceTower
  )tr canCoerce
  )tr canCoerceFrom
  )tr resolveTT1
  )tr coerceInt
  )tr algEqual
  )tr resolveTTSpecial

Now you can create power series:

a:=series(sin(x))

Beware axiom will crash. Now type:

  a*1.0

restart do the same and type:

  1. 0*a

You will see that axiom in this process does not coerce all types (for example sometimes 0 (expansion point) remain Integer but of type EXPR FLOAT). Normally:

  x in displayed type is of type Symbol
  0.0 (expansion point) has  the same type as the coefficients of the power series. For example: EXPR FLOAT.

Now you can restart and create 2 power series, one with integer the other with float:

  a:=series(sin(x))

Coerce it (see above):

  a:= a::UnivariatePuiseuxSeries(Expression Integer,x,0)
  b:= a::UnivariatePuiseuxSeries(Expression Float,x,0.0)

You can type:

  a*b

restart do the same type:

  b*a

This process of coercion involve some strange type and axiom coerce sometimes to UnivariatePuiseuxSeries?(UnivariatePuiseuxSeries?) etc ... This and the expansion point not really coerced trigger bug. In boot code there is a function resolveTTSpecial and its commentary:

  -- tries to resolve things that would otherwise get mangled in the
  -- rest of the resolve world. I'll leave it for Albi to fix those
  -- things. (RSS 1/-86)

In this patch I use this function to express the resolved type. It' a temporary hack and I'm not sure that this patch is correct (see the code). Second, I add two other tests: I check the equality of the Symbol(s) and the two expansion points (two different symbols crash axiom for example). Regards

power-series.patch

This result is cached --unknown, Fri, 25 Mar 2005 11:03:14 -0600 reply
The previous patch change the resolved type. It's internally cached and resolveTTspecial is only invoked once.

.axiom.input --unknown, Fri, 25 Mar 2005 11:08:50 -0600 reply
After the above patch applied one bug remain:

If you add this text to the file .axiom.input (interpreted at the start of axiom) you will crash axiom:

  1.0::UnivariatePuiseuxSeries(Expression Float,x,0.0

Regards

Problem to patch --unknown, Sun, 15 May 2005 19:13:57 -0500 reply
Here is another patch if you run into problem with a 'maformed patch 'message .
Change to axiom directory:
cat power-series.patch2 |patch -0
Cheers

power-series.patch2

Crash with this patch --unknown, Sun, 22 May 2005 09:22:00 -0500 reply
This patch doesn't check the equality of the expansion points and the symbols for different power series.
Example:
  a:=series(sin(x))
  b:=taylor(sin(x),x=2)
  a*b

Break if expansion point or variable are not equal for UnivariatePowerSeriesCategory? (fix Sun, 22 May 2005 09:22:00 -0500 bug)
Simplified code.

power-serie.patch3

Some information --unknown, Wed, 01 Jun 2005 13:15:30 -0500 reply
Possible information about this bug:: http://lists.gnu.org/archive/html/axiom-developer/2004-11/msg00137.html

status change --unknown, Fri, 07 Oct 2005 10:46:23 -0500 reply

Category: Axiom Compiler => Axiom Interpreter

fixed in FriCAS revision 583 --kratt6, Sun, 19 Apr 2009 07:07:13 -0700 reply
Status: open => fixed somewhere

Status: fixed somewhere => closed




  Subject:   Be Bold !!
  ( 13 subscribers )  
Please rate this page: