/pypolymake

Python wrappers for polymake

Primary LanguagePython

pypolymake
==========

What is it?
-----------

The Python module pypolymake provides wrappers for `polymake
<https://polymake.org/doku.php>`_.

The language has been kept as close as possible as the original. The
following polymake construction::

    polytope> $c = cube(5);
    polytope> print $c->F_VECTOR;
    32 80 80 40 10
    polytope> $g = $c->GRAPH;
    polytope> print $g->DIAMETER;
    5

is translated in Python as::

    >>> from polymake import *
    >>> c = cube(5)
    >>> print(c.F_VECTOR)
    (32, 80, 80, 40, 10)
    >>> g = c.GRAPH
    >>> print(g.DIAMETER)
    5

The library is currently under development and is compatible with Python2 and
Python3. As it is under development, many things are not working and are likely
to break.

Installation and source code
----------------------------

If you are using `SageMath <http://www.sagemath.org>`_ then just run the following
two commands

    $ sage -i polymake
    $ sage -pip install git+https://github.com/videlec/pypolymake

If you are using the beta release of polymake you need to install the package from the
beta branch with

    $ sage -i polymake-beta   # TO BE FIXED
    $ sage -pip install git+https://github.com/videlec/pypolymake@beta

In principle, pypolymake could be used with Python2, Python3 and within Sage. The
prerequisites are

- polymake in version 3.0 or later together with its header files
- `Cython <http://cython.org/>`_
- `cysignals <https://pypi.python.org/pypi/cysignals/>`_

To install the package then use::

    $ pip install git+https://github.com/videlec/pypolymake [--user] [--pre]

(the `--pre` argument is needed on recent pip versions to allow installation
of beta releases, the `--user` argument make the installation in your home
directory and can be omitted if you have write access to your system). 

If polymake headers or libraries are installed in a non standard location you
may need to set the environment variables CFLAGS, CXXFLAGS, LDFLAGS. For example,
on OS X, you need to update LDFLAGS as::

    $ export LDFLAGS="-L/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE/ $LDFLAGS"
    $ python setup.py install --user

You might also need to set LD_LIBRARY_PATH before starting Python if the shared
library of polymake (libpolymake.so) is not in a standard directory.

License
-------

The library pypolymake is distributed under the terms of the GNU General Public
License (GPL) as published by the Free Software Foundation; either version 3 of
the License, or (at your option) any later version (see http://www.gnu.org/licenses/)

Authors
-------

This project has been started by Burcin Erocal in 2011 and continued
by Vincent Delecroix in 2016