[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Use of NewPolka

To use NEWPOLKA in C, add
 
#include "pk.h"
#include "pkeq.h"
  /* if you want linear equalities */
in your source file(s) and add `-I$(APRON_PREFIX)/include' in the command line in your Makefile.

You should also link your object files with the NEWPOLKA library to produce an executable, by adding something like `-L$(APRON_PREFIX)/lib -lpolkag' in the command line in your Makefile (followed by the standard `-lapron -litvmpq -litvdbl -L$(MPFR_PREFIX)/lib -lmpfr -L$(GMP_PREFIX)/lib -lgmp').

There are actually several variants of the library:

`libpolkai.a'
The underlying representation for integers is long int. This may easily cause overflows, especially with many dimensions or variables. Overflows are not detected but usually result in infinite looping. The underlying representation for integers is long long int. This may (less) easily cause overflows.
`libpolkag.a'
The underlying representation for integers is mpz_t, the multi-precision integers from the GNU GMP library. Overflows are not possible any more, but huge numbers may appear.

All scalars of type double are converted to scalars of type mpq_t inside NewPolka, as NewPolka works internally with exact rational arithmetics. So when possible it is better for the user (in term of efficiency) to convert already double scalars to mpq_t scalars.

There is a way to prevent overflow and/or huge numbers, which is to position the options max_coeff_size and approximate_max_coeff_size, see Allocating NewPolka managers and setting specific options.

Also, all library are available in debug mode (`libpolkai_debug.a', ....



This document was generated on September, 10 2009 using texi2html