+*~
/build/
/dist/
+/linpy.egg-info/
/MANIFEST
-/pypol.egg-info/
/venv/
__pycache__
-*~
-NAME=pypol
+NAME=linpy
PYTHON=python3
SETUP=$(PYTHON) setup.py
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
- @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/pypol.qhcp"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/LinPy.qhcp"
@echo "To view the help file:"
- @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/pypol.qhc"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/LinPy.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
- @echo "# mkdir -p $$HOME/.local/share/devhelp/pypol"
- @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/pypol"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/LinPy"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/LinPy"
@echo "# devhelp"
epub:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
-# Linpy documentation build configuration file, created by
+# LinPy documentation build configuration file, created by
# sphinx-quickstart on Wed Jun 25 20:34:21 2014.
#
# This file is execfile()d with the current directory set to its
master_doc = 'index'
# General information about the project.
-project = 'pypol'
+project = 'LinPy'
copyright = '2014, MINES ParisTech'
# The version info for the project you're documenting, acts as replacement for
#html_file_suffix = None
# Output file base name for HTML help builder.
-htmlhelp_basename = 'pypoldoc'
+htmlhelp_basename = 'LinPydoc'
# -- Options for LaTeX output ---------------------------------------------
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
- ('index', 'pypol.tex', 'pypol Documentation',
+ ('index', 'LinPy.tex', 'LinPy Documentation',
'MINES ParisTech', 'manual'),
]
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
- ('index', 'pypol', 'pypol Documentation',
+ ('index', 'LinPy', 'LinPy Documentation',
['MINES ParisTech'], 1)
]
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
- ('index', 'pypol', 'pypol Documentation',
- 'MINES ParisTech', 'pypol', 'One line description of project.',
+ ('index', 'LinPy', 'LinPy Documentation',
+ 'MINES ParisTech', 'LinPy', 'One line description of project.',
'Miscellaneous'),
]
-Linpy Examples
+LinPy Examples
==============
Creating a Polyhedron
-----------------
To create any polyhedron, first define the symbols used. Then use the polyhedron functions to define the constraints for the polyhedron. This example creates a square.
-
- >>> from pypol import *
+
+ >>> from linpy import *
>>> x, y = symbols('x y')
>>> # define the constraints of the polyhedron
>>> square1 = Le(0, x) & Le(x, 2) & Le(0, y) & Le(y, 2)
And(Ge(x, 0), Ge(-x + 2, 0), Ge(y, 0), Ge(-y + 2, 0))
Urnary Operations
------------------
-
+-----------------
+
>>> square1.isempty()
False
>>> square1.isbounded()
True
-
+
Binary Operations
-----------------
-
+
>>> square2 = Le(2, x) & Le(x, 4) & Le(2, y) & Le(y, 4)
>>> square1 + square2
Or(And(Ge(x, 0), Ge(-x + 2, 0), Ge(y, 0), Ge(-y + 2, 0)), And(Ge(x - 2, 0), Ge(-x + 4, 0), Ge(y - 2, 0), Ge(-y + 4, 0)))
- >>> # check if square1 and square2 are disjoint
- >>> square1.disjoint(square2)
- False
+ >>> # check if square1 and square2 are disjoint
+ >>> square1.disjoint(square2)
+ False
Plot Examples
--------------
-
- Linpy uses matplotlib plotting library to plot 2D and 3D polygons. The user has the option to pass subplots to the :meth:`plot` method. This can be a useful tool to compare polygons. Also, key word arguments can be passed such as color and the degree of transparency of a polygon.
-
+-------------
+
+ LinPy uses matplotlib plotting library to plot 2D and 3D polygons. The user has the option to pass subplots to the :meth:`plot` method. This can be a useful tool to compare polygons. Also, key word arguments can be passed such as color and the degree of transparency of a polygon.
+
>>> import matplotlib.pyplot as plt
>>> from matplotlib import pylab
>>> from mpl_toolkits.mplot3d import Axes3D
- >>> from pypol import *
+ >>> from linpy import *
>>> # define the symbols
>>> x, y, z = symbols('x y z')
>>> fig = plt.figure()
>>> cham = Le(0, x) & Le(x, 3) & Le(0, y) & Le(y, 3) & Le(0, z) & Le(z, 3) & Le(z - 2, x) & Le(x, z + 2) & Le(1 - z, x) & Le(x, 5 - z) & Le(z - 2, y) & Le(y, z + 2) & Le(1 - z, y) & Le(y, 5 - z) & Le(y - 2, x) & Le(x, y + 2) & Le(1 - y, x) & Le(x, 5 - y)
>>> cham.plot(cham_plot, facecolors=(1, 0, 0, 0.75))
>>> pylab.show()
-
+
.. figure:: images/cube.jpg
:align: center
-
- The user can also inspect a polygon's vertices and the integer points included in the polygon.
-
+
+ The user can also inspect a polygon's vertices and the integer points included in the polygon.
+
>>> diamond = Ge(y, x - 1) & Le(y, x + 1) & Ge(y, -x - 1) & Le(y, -x + 1)
>>> diamond.vertices()
[Point({x: Fraction(0, 1), y: Fraction(1, 1)}), Point({x: Fraction(-1, 1), y: Fraction(0, 1)}), Point({x: Fraction(1, 1), y: Fraction(0, 1)}), Point({x: Fraction(0, 1), y: Fraction(-1, 1)})]
>>> diamond.points()
[Point({x: -1, y: 0}), Point({x: 0, y: -1}), Point({x: 0, y: 0}), Point({x: 0, y: 1}), Point({x: 1, y: 0})]
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-.. pypol documentation master file, created by
+.. LinPy documentation master file, created by
sphinx-quickstart on Wed Jun 25 20:34:21 2014.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
-Welcome to Linpy’s documentation!
+Welcome to LinPy’s documentation!
=================================
-Linpy is a Python library for symbolic mathematics.
-If you are new to Linpy, start with the Examples.
+LinPy is a Python library for symbolic mathematics.
+If you are new to LinPy, start with the Examples.
-This is the central page for all of Linpy’s documentation.
+This is the central page for all of LinPy’s documentation.
Contents:
Source
======
-Users can install Linpy by cloning the git repository::
+Users can install LinPy by cloning the git repository::
git clone https://scm.cri.ensmp.fr/git/pypol.git
Install
=======
-…execute `setup.py`
+…execute `setup.py`
Dependencies
============
-Linpy has several dependencies. Users will first need to install Integer Set Library (isl). The source files of isl are available as a tarball or a git repository. Both are available `here`_ .
+LinPy has several dependencies. Users will first need to install Integer Set Library (isl). The source files of isl are available as a tarball or a git repository. Both are available `here`_ .
-To use the Linpy plotting function, users need to install matplotlib using instructions in the following `link`_.
+To use the LinPy plotting function, users need to install matplotlib using instructions in the following `link`_.
.. _here: http://freshmeat.net/projects/isl/
-.. _link: http://matplotlib.org/faq/installing_faq.html
\ No newline at end of file
+.. _link: http://matplotlib.org/faq/installing_faq.html
.. module-docs:
-Linpy Module Reference
+LinPy Module Reference
======================
-There are four main Linpy modules:
+There are four main LinPy modules:
.. toctree::
:maxdepth: 2
Examples
========
-This directory contains pypol examples programs.
+This directory contains LinPy examples programs.
Running Examples
================
-To run the individual examples one needs to have Python version ≥ 3.4 installed and pypol must be in your ``PYTHONPATH`` environment variable.
+To run the individual examples one needs to have Python version ≥ 3.4 installed and linpy must be in your ``PYTHONPATH`` environment variable.
Most examples can be run from the command line ``python3`` and the name of the example::
- vivien@rochefort:~/pypol/examples$ export PYTHONPATH=$PWD/..:$PYTHONPATH
- vivien@rochefort:~/pypol/examples$ python3 squares.py
+ vivien@rochefort:~/linpy/examples$ export PYTHONPATH=$PWD/..:$PYTHONPATH
+ vivien@rochefort:~/linpy/examples$ python3 squares.py
-Note: on most systems, the current directory is searched by Python automatically, so ``python3 examples/squares.py`` works from the pypol root directory, however there are systems (Ubuntu Intrepid) where this doesn't work by default, unless you put ``PYTHONPATH=.`` into your .bashrc for example.
+Note: on most systems, the current directory is searched by Python automatically, so ``python3 examples/squares.py`` works from the LinPy root directory, however there are systems (Ubuntu Intrepid) where this doesn't work by default, unless you put ``PYTHONPATH=.`` into your .bashrc for example.
#!/usr/bin/env python3
-from pypol import *
+from linpy import *
x, y, z = symbols('x y z')
DF = Eq(x, y) & Eq(z, 6 - 2*x)
from matplotlib import pylab
from mpl_toolkits.mplot3d import Axes3D
-from pypol import *
+from linpy import *
x, y, z = symbols('x y z')
from matplotlib import pylab
from mpl_toolkits.mplot3d import Axes3D
-from pypol import *
+from linpy import *
x, y, z = symbols('x y z')
#!/usr/bin/env python3
-from pypol import *
+from linpy import *
class Transformer:
#!/usr/bin/env python3
-from pypol import *
+from linpy import *
a, x, y, z = symbols('a x y z')
#!/usr/bin/env python3
-from pypol import *
+from linpy import *
x, y, z, t = symbols('x y z t')
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
"""
A polyhedral library based on ISL.
// Copyright 2014 MINES ParisTech
//
-// This file is part of Linpy.
+// This file is part of LinPy.
//
-// Linpy is free software: you can redistribute it and/or modify
+// LinPy 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 3 of the License, or
// (at your option) any later version.
//
-// Linpy is distributed in the hope that it will be useful,
+// LinPy 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.
//
// You should have received a copy of the GNU General Public License
-// along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+// along with LinPy. If not, see <http://www.gnu.org/licenses/>.
#include <Python.h>
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
import ast
import functools
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
import math
import numbers
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
import ctypes, ctypes.util
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
import ast
import functools
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
import functools
import math
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
import functools
import unittest
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
import unittest
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
import math
import unittest
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
import functools
import unittest
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
import functools
import unittest
# Copyright 2014 MINES ParisTech
#
-# This file is part of Linpy.
+# This file is part of LinPy.
#
-# Linpy is free software: you can redistribute it and/or modify
+# LinPy 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 3 of the License, or
# (at your option) any later version.
#
-# Linpy is distributed in the hope that it will be useful,
+# LinPy 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.
#
# You should have received a copy of the GNU General Public License
-# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+# along with LinPy. If not, see <http://www.gnu.org/licenses/>.
from distutils.core import setup, Extension
setup(
- name='pypol',
+ name='LinPy',
description='A polyhedral library based on ISL',
author='MINES ParisTech',
- packages=['pypol'],
+ packages=['linpy'],
ext_modules = [
- Extension('pypol._islhelper',
- sources=['pypol/_islhelper.c'],
+ Extension('linpy._islhelper',
+ sources=['linpy/_islhelper.c'],
libraries=['isl'])
]
)