sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.36k stars 462 forks source link

deprecate taylor() in favor of series() #6119

Open robertwb opened 15 years ago

robertwb commented 15 years ago

Symbolic expressions have two methods to obtain series expansions. The taylor() method is a wrapper around maxima's taylor command. The result of this is not always a Taylor series, which leads to confusions.

The series() method was introduced in the pynac-based symbolics. ATM, it is a thin wrapper around GiNaC series expansions. This also plays well with the symbolic functions, etc. introduced based on Pynac/GiNaC.

We should deprecate the taylor() method and add an algorith= argument to series(). The default behavior can be to call GiNaC and fall back to maxima if that fails.

Dependencies: pynac-0.7.4

CC: @kcrisman @rwst

Component: calculus

Author: Ralf Stephan

Branch/Commit: u/rws/deprecate_taylor_in_favor_of_series @ 46c8e43

Issue created by migration from https://trac.sagemath.org/ticket/6119

burcin commented 13 years ago
comment:2

From #9555 comment:6:

The taylor() method is cruft left over from pre-pynac symbolics. We should deprecate it in favor of the series() method. It's perfectly acceptable to give Puiseux series as a result of a call to .series(). I expect this to be done in #6119, where we add an algorithm= option to .series(). The default behavior can be to call pynac and fall back to maxima if that returns an error.

In short, we should change this ticket to cover this transition. Series expansions in Pynac need more work to match what maxima does. That should be tracked on the pynac issue tracker:

https://bitbucket.org/burcin/pynac/issues

burcin commented 13 years ago

Description changed:

--- 
+++ 
@@ -1 +1,5 @@
-Ginac has series about zero, it should be easy to shift to get the series about any point.
+Symbolic expressions have two methods to obtain series expansions. The `taylor()` method is a wrapper around maxima's `taylor` command. The result of this is not always a Taylor series, which leads to confusions.
+
+The `series()` method was introduced in the pynac-based symbolics. ATM, it is a thin wrapper around GiNaC series expansions. This also plays well with the symbolic functions, etc. introduced based on Pynac/GiNaC.
+
+We should deprecate the `taylor()` method and add an `algorith=` argument to `series()`. The default behavior can be to call GiNaC and fall back to maxima if that fails.
kcrisman commented 13 years ago
comment:3

As I say in #9555, I think that changing the .taylor() method so that it calls a suitably Taylor-only version of the .series() method is preferable, especially since the global name taylor() should really be kept.

kcrisman commented 9 years ago
comment:8

See also http://sourceforge.net/p/maxima/bugs/2850/ where this comes up again.

kcrisman commented 9 years ago
comment:9

As I say in #9555, I think that changing the .taylor() method so that it calls a suitably Taylor-only version of the .series() method is preferable, especially since the global name taylor() should really be kept.

And I'm quoted at this SO comment though I still have to think more about how we should solve this.

rwst commented 7 years ago

Branch: u/rws/deprecate_taylor_in_favor_of_series

kcrisman commented 7 years ago
comment:11

Is this deprecating or simply replacing? Sorry for being confused.


New commits:

46c8e436119: use fast series in taylor when possible
kcrisman commented 7 years ago

Commit: 46c8e43

rwst commented 7 years ago

Author: Ralf Stephan

rwst commented 7 years ago
comment:12

Too fast. The deprecation part is upcoming. The Maxima replacement depends on a bugfix in upcoming pynac-0.7.4 for one doctest fail.

rwst commented 7 years ago

Dependencies: pynac-0.7.4

rwst commented 7 years ago
comment:13

Replying to @kcrisman:

As I say in #9555, I think that changing the .taylor() method so that it calls a suitably Taylor-only version of the .series() method is preferable, especially since the global name taylor() should really be kept.

Just rereading. So maybe we already have finished the ticket? If so, please review.

kcrisman commented 7 years ago
comment:14

Nah, I think it is better to do some form of deprecation warning rather than a totally silent change, though I think that keeping taylor as giving taylor only would be plausible too.

rwst commented 7 years ago
comment:15

Maxima is still faster than GiNaC in the cases with irrational coefficients so we will have to use GiNaC/Pynac for both series and taylor only in the rational case.