Read Me
atrop - a Common Lisp PORTA replacement
---------------------------------------
The atrop package is an attempt to provide a replacement of the PORTA
code for computations with polyhedra, see
<http://www.zib.de/Optimization/Software/Porta/>. There are various
reasons to do so, mainly the lack of maintenance of the original PORTA
code, and the integration of the functionality into the Common Lisp
world.
atrop currently provides read/write ability for IEQ files, can write
INE and Latte format, and can compute projections of polyhedra using
the Fourier-Motzkin method, including the redundancy removal rules of
Chernikov and Duffin. Other parts are still partially dysfunctional,
namely transformation between inner and outer description and
INE/POI/EXT file parsing.
Computations are performed in Lisp bignum-rationals, so please compare
performance to other codes in their exact-arithmetic mode. The
Fourier-Motzkin implementation aims to remove more redundant rows than
PORTA does, which incurs extra computational cost, but will make some
problems tractable that were impossible to handle before.
The code aims to be portable across different lisp implementations;
CMUCL, SBCL Allegor CL are tested by the author.
This package is (c) 2005-2006 Utz-Uwe Haus, <atrop@uuhaus.de>,
distributed under the GNU General Public License, as published by the
Free Software Foundation, which you can find at
<http://www.gnu.org/licenses/licenses.html#GPL>. This is free
software, distributed ``AS IS'', WITHOUT WARRANTIES, EXPRESS OR
IMPLIED.
Installation
------------
Obviously, you will need a Common Lisp system. CMUCL, SBCL and Allegro
CL have been tested.
You will need to have the ASDF packaging framework (see
<http://www.cliki.net/asdf/>) installed, and you will need GNU make.
If you got the atrop package by CVS checkout, please see the HACKING
file for instructions on getting a copy of a suitable getopt-long
package.
Edit the top of the Makefile to select your lisp dialect and the lisp
binary name.
After calling `make', you will find a custom lisp core called
atrop.core and a number of wrapper scripts with names familiar to
PORTA users, as well as some file-format converter scripts.
If you want to use the code from within your own Common Lisp code,
please read the function documentation within the .lisp files. Start
with poly.lisp if you dare.
atrop releases will include a release of getopt-long, which is also
available separately from
<http://sourceforge.net/project/showfiles.php?group_id=27085&package_id=147057>
$Id$