Opened 13 years ago

Last modified 6 years ago

#6119 new enhancement

deprecate taylor() in favor of series()

Reported by: Robert Bradshaw Owned by: Burcin Erocal
Priority: major Milestone: sage-6.4
Component: calculus Keywords:
Cc: Karl-Dieter Crisman, Ralf Stephan Merged in:
Authors: Ralf Stephan Reviewers:
Report Upstream: N/A Work issues:
Branch: u/rws/deprecate_taylor___in_favor_of_series__ (Commits, GitHub, GitLab) Commit: 46c8e43e3f9982bfd1a2516bd59529839062499d
Dependencies: pynac-0.7.4 Stopgaps:

Status badges

Description (last modified by Burcin Erocal)

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.

Change History (15)

comment:1 Changed 12 years ago by Karl-Dieter Crisman

Cc: Karl-Dieter Crisman added
Report Upstream: N/A

comment:2 Changed 11 years ago by Burcin Erocal

Description: modified (diff)
Milestone: sage-4.7.1sage-4.7.2
Summary: implement taylor series without maximadeprecate taylor() in favor of series()

From comment:6:ticket:9555:

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

comment:3 Changed 11 years ago by Karl-Dieter Crisman

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.

comment:4 Changed 9 years ago by Jeroen Demeyer

Milestone: sage-5.11sage-5.12

comment:5 Changed 9 years ago by For batch modifications

Milestone: sage-6.1sage-6.2

comment:6 Changed 8 years ago by For batch modifications

Milestone: sage-6.2sage-6.3

comment:7 Changed 8 years ago by For batch modifications

Milestone: sage-6.3sage-6.4

comment:8 Changed 8 years ago by Karl-Dieter Crisman

Cc: Ralf Stephan added

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

comment:9 in reply to:  3 Changed 8 years ago by Karl-Dieter Crisman

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.

comment:10 Changed 6 years ago by Ralf Stephan

Branch: u/rws/deprecate_taylor___in_favor_of_series__

comment:11 Changed 6 years ago by Karl-Dieter Crisman

Commit: 46c8e43e3f9982bfd1a2516bd59529839062499d

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


New commits:

46c8e436119: use fast series in taylor when possible

comment:12 Changed 6 years ago by Ralf Stephan

Authors: Ralf Stephan
Dependencies: pynac-0.7.4

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

comment:13 in reply to:  3 Changed 6 years ago by Ralf Stephan

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.

comment:14 Changed 6 years ago by Karl-Dieter Crisman

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.

comment:15 Changed 6 years ago by Ralf Stephan

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.

Note: See TracTickets for help on using tickets.