Numerical Evaluation of D-Finite Functions for ore_algebra

This is the home page for the -analytic development branch of ore_algebra , an implementation of Ore algebras for the SageMath computer algebra system written by Manuel Kauers, Maximilian Jaroschek and Fredrik Johansson.

The -analytic branch extends ore_algebra with symbolic-numeric features such as the computation of values of univariate D-finite functions, and connection matrices between regular points of univariate differential operators. Most of the new code resides in a submodule called ore_algebra.analytic. The branch also adds a few methods to univariate differential operators in order to make the main features of the submodule easily accessible.

Please note that this software is intended both for “end users” interested in performing symbolic-numeric computations with D-finite functions, and as a playground for experimenting with algorithms doing such computations. As a consequence, some features may be undocumented and/or very experimental.

A short introduction to the features most likely to be of interest to casual users can be found in this article.

Comments, bug reports and feature requests are always welcome.

Source Code

The main development tree of ore_algebra is now on github. I currently recommend the latest git master branch for general use, or the analytic branch if you need a more recent version of the numerical evaluation code.

The analytic submodule is part of the ore_algebra releases downloadable from Manuel Kauers' home page starting with version 0.3.



Sage version 7.5 or later is recommended to use ore_algebra 0.3, though at least some features should work with earlier versions. The tip of the -analytic branch usually requires the latest stable release of Sage, and may work better with the latest beta.

Installation using pip

Depending on your Sage setup, you should be able to install the git master version with

$ sage -pip install --user git+

or the analytic branch using

$ sage -pip install --user git+

See the relevant section of the Python Packaging User Guide for details.

Using ore_algebra directly from a git clone

No installation is strictly necessary, though: to test the package, you can simply run Sage from the src/ directory of the ore_algebra source tree, and import the classes or functions you want to use.

$ cd ore_algebra/src
ore_algebra/src$ sage
│ SageMath version 7.3.beta3, Release Date: 2016-06-05               │
│ Type "notebook()" for the browser-based notebook interface.        │
│ Type "help()" for help.                                            │
┃ Warning: this is a prerelease version, and it may be unstable.     ┃
sage: from ore_algebra import *
sage: DiffOps, x, Dx = DifferentialOperators()
sage: (Dx - 1).numerical_solution(ini=[1], path=[0,1])
[2.7182818284590452 +/- 3.66e-17]

Alternatively, launch Sage from anywhere and add the src/ directory to the Python search path with something like

sage: import sys
sage: sys.path.append("path/ore_algebra/src")

(You might want to add these commands to your ~/.sage/init.sage.)


This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.