A Mathematica Implementation of several Algorithms for Solving Linear Difference Equations with Polynomial Coefficients


Software URL

Go to Website
DiffTools is a Mathematica implementation for solving linear difference equations with polynomial coefficients. It contains an algorithm for finding polynomial solutions (by Marko Petkovsek), the algorithm by Sergei Abramov for finding rational solutions, the algorithm of Mark van Hoeij for finding hypergeometric solutions and the algorithm of Marko Petkovsek for finding partial solutions of inhomogeneous equations. The package has been developed by Christian Weixlbaumer in the frame of his diploma thesis.

Registration and Legal Notices

The source code for this package is password protected. To get the password send an email to Peter Paule. It will be given for free to all researchers and non-commercial users. Copyright © 1999–2012 The RISC Combinatorics Group, Austria — all rights reserved. Commercial use of the software is prohibited without prior written permission.

A Note on Encoded Files

This package contains one or more Mathematica input files which are encoded. Those files cannot be read or modified directly as plain text, but can be loaded into Mathematica just like any normal input file (i.e., with <<"file" or Get["file"]). There is no need (and also no way) to decode them by using additional software or a special key. If loading an encoded file causes a syntax error, open it with a text editor and remove any blank lines at the beginning (for some reason your Mac could have inserted them silently...).

The Package

The DiffTools package consists of the Mathematica file In addition some examples can be found in the Mathematica notebook


Information on the use of the package (together with its theoretical background) can be found in the diploma thesis
C. Weixlbaumer, Solutions of Difference Equations with Polynomial Coefficients, Diploma Thesis, RISC, J. Kepler University, Linz, January 2001. [pdf]

Versions and Bugs

The current version of the package is 1.02 last updated on February 10, 2003. Please report any bugs and comments to Ralf Hemmecke.