Ticket #2516 (needs_work enhancement)

Opened 2 years ago

Last modified 5 weeks ago

generalized hypergeometric functions should be implemented

Reported by: ddrake Owned by: cwitty
Priority: major Milestone: sage-wishlist
Component: misc Keywords:
Cc: burcin, fstan Author(s): fredrik.johansson
Report Upstream: N/A Reviewer(s):
Merged in: Work issues:

Description

Sage should have support for  generalized hypergeometric functions. They are an important class of special functions. They show up everywhere from differential equations to binomial coefficient identities.

Attachments

hyper.patch Download (40.1 KB) - added by fredrik.johansson 5 weeks ago.
tentative implementation of generalized hypergeometric functions

Change History

Changed 5 weeks ago by fredrik.johansson

tentative implementation of generalized hypergeometric functions

Changed 5 weeks ago by fredrik.johansson

  • cc burcin, fstan added
  • status changed from new to needs_work
  • upstream set to N/A
  • author set to fredrik.johansson

I've attached essentially the code I wrote during with Sage Days 24 with some additions. Features include:

* Representation of PFQs as symbolic functions (with automatic simplification) and in always-unevaluated form

* Numerical evaluation (wrapping mpmath)

* Evaluation in terms of elementary functions in some simple cases

Important missing features include:

* Rewriting symbolic sums as PFQs

* Evaluation in terms of polygamma functions

* Various transformations permitting closed-form evaluation in special cases

The patch includes symbolic versions of Bessel functions, which can be expanded as PFQs. This obviously needs to be merged with the existing Bessel function classes.

The main remaining issue is to handle multivariate symbolic functions properly (the current approach in Function_PFQ is something of a hack). Also, in the present patch, there are two PFQ classes. This is partially due to limitations/awkwardness of the symbolic function class, but regardless of whether necessary, it may be desirable to have a separate "backend" representation for hypergeometric functions that doesn't need to be concerned with automatic evaluation, numerical conversions, etc. I'm not sure what's the best way to organize it all.

Note: See TracTickets for help on using tickets.