Opened 10 years ago

Last modified 2 years ago

#6119 new enhancement

deprecate taylor() in favor of series()

Reported by: robertwb Owned by: burcin
Priority: major Milestone: sage-6.4
Component: calculus Keywords:
Cc: kcrisman, rws Merged in:
Authors: Ralf Stephan Reviewers:
Report Upstream: N/A Work issues:
Branch: u/rws/deprecate_taylor___in_favor_of_series__ (Commits) Commit: 46c8e43e3f9982bfd1a2516bd59529839062499d
Dependencies: pynac-0.7.4 Stopgaps:

Description (last modified by burcin)

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 8 years ago by kcrisman

  • Cc kcrisman added
  • Report Upstream set to N/A

comment:2 Changed 8 years ago by burcin

  • Description modified (diff)
  • Milestone changed from sage-4.7.1 to sage-4.7.2
  • Summary changed from implement taylor series without maxima to deprecate 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 follow-ups: Changed 8 years ago by 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.

comment:4 Changed 6 years ago by jdemeyer

  • Milestone changed from sage-5.11 to sage-5.12

comment:5 Changed 5 years ago by vbraun_spam

  • Milestone changed from sage-6.1 to sage-6.2

comment:6 Changed 5 years ago by vbraun_spam

  • Milestone changed from sage-6.2 to sage-6.3

comment:7 Changed 5 years ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4

comment:8 Changed 4 years ago by kcrisman

  • Cc rws added

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

comment:9 in reply to: ↑ 3 Changed 4 years ago by 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.

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

comment:10 Changed 2 years ago by rws

  • Branch set to u/rws/deprecate_taylor___in_favor_of_series__

comment:11 Changed 2 years ago by kcrisman

  • Commit set to 46c8e43e3f9982bfd1a2516bd59529839062499d

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


New commits:

46c8e436119: use fast series in taylor when possible

comment:12 Changed 2 years ago by rws

  • Authors set to Ralf Stephan
  • Dependencies set to 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 2 years ago by rws

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 2 years ago by kcrisman

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 2 years ago by rws

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.