This is a slightly patched version of The Parma University's Recurrence Relation Solver (PURRS), used in the complexity analysis tool LoAT.
The patches mostly involve bugfixes, adaptions to newer library versions, and conversion between PURRS and GiNaC expressions.
Information about PURRS: http://www.cs.unipr.it/purrs
Building LoAT-purrs is a bit painful. The following steps worked for me (on Debian Jessie):
- install the following packages from the Debian repositories:
autoconfautomakelibtoollibginac-devlibntl-devlibreadline-devlibfltk1.3-dev
- install
libgiac-dev- available from Debian's unstable-repository or https://www-fourier.ujf-grenoble.fr/~parisse/install_en#packages
- compile and install LoAT-purrs by the following steps:
autoreconf --installautomake./configuremakesudo checkinstall- alternatively,
sudo make installshould work as well, but then you bypass your package manager...
-
Adding compiler flags (e.g. for non-standard include directories):
PURRS' Makefiles seem to ignore (or override) the usual environment variables (
CFLAGS,CXXFLAGS). Instead, one can specify flags toconfigurewith the--with-cxxflagsoption (see below for examples). -
Depending on how
libntlwas configured, it might needpthread. So if you see linker errors similar to these:libntl.so: undefined reference to `pthread_key_create' libntl.so: undefined reference to `pthread_setspecific'You might have to add the
-pthreadflag to the compiler:./configure --with-cxxflags='-pthread' -
If you get compiler errors caused by the GiNaC headers (ginac.h), you might need to enable C++11 features:
./configure --with-cxxflags='-std=c++11'
To reduce the number of dependencies, the demos target is currently disabled in the Makefile.
If you want to compile the demos (see the demos subdirectory), uncomment the corresponding SUBDIRS line in
the file Makefile.am.