[arch-commits] Commit in sagemath/trunk (3 files)
Antonio Rojas
arojas at archlinux.org
Wed Sep 5 07:44:13 UTC 2018
Date: Wednesday, September 5, 2018 @ 07:44:12
Author: arojas
Revision: 376925
Upload patches to svn (FS#59930)
Added:
sagemath/trunk/sagemath-cddlib-0.94j.patch
sagemath/trunk/sagemath-cypari2.patch
Modified:
sagemath/trunk/PKGBUILD
-----------------------------+
PKGBUILD | 4
sagemath-cddlib-0.94j.patch | 4885 ++++++++++++++++++++++++++++++++++++++++++
sagemath-cypari2.patch | 58
3 files changed, 4945 insertions(+), 2 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2018-09-05 07:37:30 UTC (rev 376924)
+++ PKGBUILD 2018-09-05 07:44:12 UTC (rev 376925)
@@ -48,8 +48,8 @@
sagemath-singular-4.1.1.patch
sagemath-lcalc-c++11.patch
sagemath-gap-4.8.patch
- sagemath-cypari2.patch::"https://git.sagemath.org/sage.git/patch?id=da380b32"
- sagemath-cddlib-0.94j.patch::"https://git.sagemath.org/sage.git/patch?id=af0e6066"
+ sagemath-cypari2.patch
+ sagemath-cddlib-0.94j.patch
sagemath-eclib-20180710.patch)
sha256sums=('41fd0b4eb820f7a1274e12294b6fbdbbf60d0027bff98c22fdc84da140964929'
'f483a448c045aeff186bec4b402da8109fa12547ff36219a9aa427c2561ec8e5'
Added: sagemath-cddlib-0.94j.patch
===================================================================
--- sagemath-cddlib-0.94j.patch (rev 0)
+++ sagemath-cddlib-0.94j.patch 2018-09-05 07:44:12 UTC (rev 376925)
@@ -0,0 +1,4885 @@
+From b9a9a03d7e78b4942a62204080805cc05c018b35 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Julian=20R=C3=BCth?= <julian.rueth at fsfe.org>
+Date: Fri, 1 Jun 2018 02:56:01 +0200
+Subject: Upgrade cddlib
+
+and use cddexec instead of cdd_both_reps. cddexec should be faster and is,
+according to upstream, "done the right way". The change to cddexec makes some
+numerical issues visible, so some things that worked before are not supported
+anymore. Essentially, we now require an inexact redundancy-free representation
+to be convertible back and forth between V and H representation (without loss
+of vertices/inequalities) before we trust it. Some standard examples, fail this
+check. I can not really make the call on whether these are bugs in cddlib or
+numerical issues that could not possibly be fixed (as I do not understand this
+well enough.)
+
+So why this change? Mostly because we do not patch cddlib anymore and just use
+it as is. It is also faster in some cases (that's what upstream cared most
+about when the cddlib author heard about our cdd_both_reps,) e.g.,
+
+%timeit polytopes.six_hundred_cell(exact=False)
+went from 993ms to 246ms
+
+Some other examples see minor slowdowns because of the additional
+transformation that we compute initially to make sure that the conversion back
+and forth worked out.
+---
+ build/pkgs/cddlib/SPKG.txt | 12 +-
+ build/pkgs/cddlib/checksums.ini | 4 +-
+ build/pkgs/cddlib/package-version.txt | 2 +-
+ .../patches/build/lib-src-gmp_Makefile.am.patch | 21 -
+ .../cddlib/patches/build/lib-src_Makefile.am.patch | 14 -
+ .../cddlib/patches/build/src-gmp_Makefile.am.patch | 26 --
+ .../cddlib/patches/build/src_Makefile.am.patch | 22 -
+ build/pkgs/cddlib/patches/cdd_both_reps.c | 255 ------------
+ .../cddlib/patches/lib-src-gmp_Makefile.in.patch | 40 --
+ .../pkgs/cddlib/patches/lib-src_Makefile.in.patch | 31 --
+ build/pkgs/cddlib/patches/lib-src_cddcore.c.patch | 34 --
+ build/pkgs/cddlib/patches/lib-src_cddlp.c.patch | 33 --
+ build/pkgs/cddlib/patches/random.c | 144 -------
+ build/pkgs/cddlib/patches/random.h | 37 --
+ .../pkgs/cddlib/patches/src-gmp_Makefile.in.patch | 88 ----
+ build/pkgs/cddlib/patches/src_Makefile.in.patch | 76 ----
+ build/pkgs/cddlib/spkg-check | 23 --
+ build/pkgs/cddlib/spkg-install | 11 -
+ build/pkgs/cddlib/spkg-src | 4 +-
+ build/pkgs/cddlib/tests/input/ccc4.ext | 15 -
+ build/pkgs/cddlib/tests/input/ccc5.ext | 22 -
+ build/pkgs/cddlib/tests/input/ccp4.ext | 16 -
+ build/pkgs/cddlib/tests/input/ccp5.ext | 24 --
+ build/pkgs/cddlib/tests/input/cube10.ine | 27 --
+ build/pkgs/cddlib/tests/input/cube6.ine | 17 -
+ build/pkgs/cddlib/tests/input/cubocta.ine | 20 -
+ build/pkgs/cddlib/tests/input/cyclic10-4.ext | 16 -
+ build/pkgs/cddlib/tests/input/cyclic12-6.ext | 18 -
+ build/pkgs/cddlib/tests/input/empty.ine | 6 -
+ build/pkgs/cddlib/tests/input/ex1.ine | 11 -
+ build/pkgs/cddlib/tests/input/infeas.ine | 23 --
+ build/pkgs/cddlib/tests/input/irbox20-4.ext | 26 --
+ build/pkgs/cddlib/tests/input/nonfull.ine | 12 -
+ build/pkgs/cddlib/tests/input/origin.ine | 15 -
+ build/pkgs/cddlib/tests/input/reg24-5.ext | 31 --
+ build/pkgs/cddlib/tests/input/reg24-5.ine | 30 --
+ build/pkgs/cddlib/tests/input/sampleh1.ine | 10 -
+ build/pkgs/cddlib/tests/input/sampleh2.ine | 8 -
+ build/pkgs/cddlib/tests/input/sampleh3.ine | 8 -
+ build/pkgs/cddlib/tests/input/sampleh5.ine | 19 -
+ build/pkgs/cddlib/tests/input/sampleh6.ine | 12 -
+ build/pkgs/cddlib/tests/input/sampleh7.ine | 19 -
+ build/pkgs/cddlib/tests/input/samplelp1.ine | 15 -
+ build/pkgs/cddlib/tests/input/samplelp2.ine | 14 -
+ build/pkgs/cddlib/tests/input/test.ext | 12 -
+ build/pkgs/cddlib/tests/output/ccc4.ext | 58 ---
+ build/pkgs/cddlib/tests/output/ccc5.ext | 130 ------
+ build/pkgs/cddlib/tests/output/ccp4.ext | 68 ----
+ build/pkgs/cddlib/tests/output/ccp5.ext | 164 --------
+ build/pkgs/cddlib/tests/output/cube10.ine | 43 --
+ build/pkgs/cddlib/tests/output/cube6.ine | 172 --------
+ build/pkgs/cddlib/tests/output/cubocta.ine | 72 ----
+ build/pkgs/cddlib/tests/output/cyclic10-4.ext | 72 ----
+ build/pkgs/cddlib/tests/output/cyclic12-6.ext | 188 ---------
+ build/pkgs/cddlib/tests/output/empty.ine | 23 --
+ build/pkgs/cddlib/tests/output/ex1.ine | 38 --
+ build/pkgs/cddlib/tests/output/infeas.ine | 173 --------
+ build/pkgs/cddlib/tests/output/irbox20-4.ext | 96 -----
+ build/pkgs/cddlib/tests/output/nonfull.ine | 35 --
+ build/pkgs/cddlib/tests/output/origin.ine | 35 --
+ build/pkgs/cddlib/tests/output/reg24-5.ext | 116 ------
+ build/pkgs/cddlib/tests/output/reg24-5.ine | 116 ------
+ build/pkgs/cddlib/tests/output/sampleh1.ine | 35 --
+ build/pkgs/cddlib/tests/output/sampleh2.ine | 31 --
+ build/pkgs/cddlib/tests/output/sampleh3.ine | 31 --
+ build/pkgs/cddlib/tests/output/sampleh5.ine | 35 --
+ build/pkgs/cddlib/tests/output/sampleh6.ine | 33 --
+ build/pkgs/cddlib/tests/output/sampleh7.ine | 42 --
+ build/pkgs/cddlib/tests/output/samplelp1.ine | 48 ---
+ build/pkgs/cddlib/tests/output/samplelp2.ine | 34 --
+ build/pkgs/cddlib/tests/output/test.ext | 36 --
+ src/sage/geometry/hasse_diagram.py | 2 +-
+ src/sage/geometry/polyhedron/backend_cdd.py | 448 +++++++++++----------
+ src/sage/geometry/polyhedron/base.py | 5 +-
+ src/sage/geometry/polyhedron/library.py | 65 +--
+ src/sage/libs/ppl.pyx | 7 +-
+ 76 files changed, 280 insertions(+), 3494 deletions(-)
+ delete mode 100644 build/pkgs/cddlib/patches/build/lib-src-gmp_Makefile.am.patch
+ delete mode 100644 build/pkgs/cddlib/patches/build/lib-src_Makefile.am.patch
+ delete mode 100644 build/pkgs/cddlib/patches/build/src-gmp_Makefile.am.patch
+ delete mode 100644 build/pkgs/cddlib/patches/build/src_Makefile.am.patch
+ delete mode 100644 build/pkgs/cddlib/patches/cdd_both_reps.c
+ delete mode 100644 build/pkgs/cddlib/patches/lib-src-gmp_Makefile.in.patch
+ delete mode 100644 build/pkgs/cddlib/patches/lib-src_Makefile.in.patch
+ delete mode 100644 build/pkgs/cddlib/patches/lib-src_cddcore.c.patch
+ delete mode 100644 build/pkgs/cddlib/patches/lib-src_cddlp.c.patch
+ delete mode 100644 build/pkgs/cddlib/patches/random.c
+ delete mode 100644 build/pkgs/cddlib/patches/random.h
+ delete mode 100644 build/pkgs/cddlib/patches/src-gmp_Makefile.in.patch
+ delete mode 100644 build/pkgs/cddlib/patches/src_Makefile.in.patch
+ delete mode 100644 build/pkgs/cddlib/spkg-check
+ delete mode 100644 build/pkgs/cddlib/tests/input/ccc4.ext
+ delete mode 100644 build/pkgs/cddlib/tests/input/ccc5.ext
+ delete mode 100644 build/pkgs/cddlib/tests/input/ccp4.ext
+ delete mode 100644 build/pkgs/cddlib/tests/input/ccp5.ext
+ delete mode 100644 build/pkgs/cddlib/tests/input/cube10.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/cube6.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/cubocta.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/cyclic10-4.ext
+ delete mode 100644 build/pkgs/cddlib/tests/input/cyclic12-6.ext
+ delete mode 100644 build/pkgs/cddlib/tests/input/empty.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/ex1.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/infeas.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/irbox20-4.ext
+ delete mode 100644 build/pkgs/cddlib/tests/input/nonfull.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/origin.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/reg24-5.ext
+ delete mode 100644 build/pkgs/cddlib/tests/input/reg24-5.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/sampleh1.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/sampleh2.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/sampleh3.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/sampleh5.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/sampleh6.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/sampleh7.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/samplelp1.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/samplelp2.ine
+ delete mode 100644 build/pkgs/cddlib/tests/input/test.ext
+ delete mode 100644 build/pkgs/cddlib/tests/output/ccc4.ext
+ delete mode 100644 build/pkgs/cddlib/tests/output/ccc5.ext
+ delete mode 100644 build/pkgs/cddlib/tests/output/ccp4.ext
+ delete mode 100644 build/pkgs/cddlib/tests/output/ccp5.ext
+ delete mode 100644 build/pkgs/cddlib/tests/output/cube10.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/cube6.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/cubocta.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/cyclic10-4.ext
+ delete mode 100644 build/pkgs/cddlib/tests/output/cyclic12-6.ext
+ delete mode 100644 build/pkgs/cddlib/tests/output/empty.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/ex1.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/infeas.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/irbox20-4.ext
+ delete mode 100644 build/pkgs/cddlib/tests/output/nonfull.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/origin.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/reg24-5.ext
+ delete mode 100644 build/pkgs/cddlib/tests/output/reg24-5.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/sampleh1.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/sampleh2.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/sampleh3.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/sampleh5.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/sampleh6.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/sampleh7.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/samplelp1.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/samplelp2.ine
+ delete mode 100644 build/pkgs/cddlib/tests/output/test.ext
+
+diff --git a/build/pkgs/cddlib/SPKG.txt b/build/pkgs/cddlib/SPKG.txt
+index bd1deec..3254e8c 100644
+--- a/build/pkgs/cddlib/SPKG.txt
++++ b/build/pkgs/cddlib/SPKG.txt
+@@ -22,17 +22,7 @@ a linear function over P.
+ GPL v2
+
+ == Upstream Contact ==
+-Komei Fukuda <fukuda at ifor.math.ethz.ch>
+-Institute for Operations Research
+-and Institute of Theoretical Computer Science
+-ETH Zentrum, CH-8092 Zurich, Switzerland
+-Tel +41-1-632-4023, Fax +41-1-632-1025
+-http://www.ifor.math.ethz.ch/staff/fukuda/
++https://github.com/cddlib/cddlib
+
+ == Dependencies ==
+ * gmp (or its fork mpir)
+-
+-== Special Update/Build Instructions ==
+-From clean upstream sources:
+- * remove directories doc, examples*, autom4te.cache
+-
+diff --git a/build/pkgs/cddlib/checksums.ini b/build/pkgs/cddlib/checksums.ini
+index 9390bbd..c3a6a0d 100644
+--- a/build/pkgs/cddlib/checksums.ini
++++ b/build/pkgs/cddlib/checksums.ini
+@@ -1,4 +1,2 @@
+ tarball=cddlib-VERSION.tar.gz
+-sha1=7b2dc29969d668ad35ff543170cfc68a03699995
+-md5=8aec6578fcfe038138a9f6440d971376
+-cksum=2058915280
++sha1=f7f2f2a9706ed514652ae6adbc990bd4bba02891
+diff --git a/build/pkgs/cddlib/package-version.txt b/build/pkgs/cddlib/package-version.txt
+index 6cae22b..1411365 100644
+--- a/build/pkgs/cddlib/package-version.txt
++++ b/build/pkgs/cddlib/package-version.txt
+@@ -1 +1 @@
+-094i
++0.94j
+diff --git a/build/pkgs/cddlib/patches/build/lib-src-gmp_Makefile.am.patch b/build/pkgs/cddlib/patches/build/lib-src-gmp_Makefile.am.patch
+deleted file mode 100644
+index ec0be42..00000000
+--- a/build/pkgs/cddlib/patches/build/lib-src-gmp_Makefile.am.patch
++++ /dev/null
+@@ -1,21 +0,0 @@
+-diff --git a/lib-src-gmp/Makefile.am b/lib-src-gmp/Makefile.am
+-index b3ab11a..a9673b8 100644
+---- a/lib-src-gmp/Makefile.am
+-+++ b/lib-src-gmp/Makefile.am
+-@@ -13,7 +13,8 @@ cddmp_f.c \
+- cddio_f.c \
+- cddlib_f.c \
+- cddproj_f.c \
+--setoper.c
+-+setoper.c \
+-+random.c
+-
+- include_HEADERS = \
+- cdd.h \
+-@@ -24,5 +25,5 @@
+- cddtypes_f.h \
+- setoper.h
+-
+--AM_CPPFLAGS = -I$(gmpincludedir) -DGMPRATIONAL
+-+AM_CPPFLAGS = -DGMPRATIONAL
+- AM_LDFLAGS = -version-info 0:0:0
+diff --git a/build/pkgs/cddlib/patches/build/lib-src_Makefile.am.patch b/build/pkgs/cddlib/patches/build/lib-src_Makefile.am.patch
+deleted file mode 100644
+index d5a1062..00000000
+--- a/build/pkgs/cddlib/patches/build/lib-src_Makefile.am.patch
++++ /dev/null
+@@ -1,14 +0,0 @@
+-diff --git a/lib-src/Makefile.am b/lib-src/Makefile.am
+-index fe08dc3..5b964c6 100644
+---- a/lib-src/Makefile.am
+-+++ b/lib-src/Makefile.am
+-@@ -7,7 +7,8 @@ cddmp.c \
+- cddio.c \
+- cddlib.c \
+- cddproj.c \
+--setoper.c
+-+setoper.c \
+-+random.c
+-
+- include_HEADERS = \
+- cdd.h \
+diff --git a/build/pkgs/cddlib/patches/build/src-gmp_Makefile.am.patch b/build/pkgs/cddlib/patches/build/src-gmp_Makefile.am.patch
+deleted file mode 100644
+index e6065d8..00000000
+--- a/build/pkgs/cddlib/patches/build/src-gmp_Makefile.am.patch
++++ /dev/null
+@@ -1,26 +0,0 @@
+-diff --git a/src-gmp/Makefile.am b/src-gmp/Makefile.am
+-index e4dbb86..e579d71 100644
+---- a/src-gmp/Makefile.am
+-+++ b/src-gmp/Makefile.am
+-@@ -11,7 +11,8 @@
+- testcdd2_gmp \
+- testlp1_gmp \
+- testlp2_gmp \
+--testlp3_gmp
+-+testlp3_gmp \
+-+cdd_both_reps_gmp
+- #cddmathlink
+-
+- scdd_gmp_SOURCES = simplecdd.c
+-@@ -27,10 +28,9 @@
+- testlp1_gmp_SOURCES = testlp1.c
+- testlp2_gmp_SOURCES = testlp2.c
+- testlp3_gmp_SOURCES = testlp3.c
+-+cdd_both_reps_gmp_SOURCES = cdd_both_reps.c
+- # cddmathlink_SOURCES = cddmathlink.c cddmlio.h cddmlio.c
+-
+- LDADD = ../lib-src-gmp/libcddgmp.la
+--AM_LDFLAGS = -L$(gmplibdir)
+- INCLUDES = -I../lib-src-gmp
+--INCLUDES += -I$(gmpincludedir)
+- AM_CPPFLAGS = -DGMPRATIONAL
+diff --git a/build/pkgs/cddlib/patches/build/src_Makefile.am.patch b/build/pkgs/cddlib/patches/build/src_Makefile.am.patch
+deleted file mode 100644
+index d339bfd..00000000
+--- a/build/pkgs/cddlib/patches/build/src_Makefile.am.patch
++++ /dev/null
+@@ -1,22 +0,0 @@
+-diff --git a/src/Makefile.am b/src/Makefile.am
+-index 17f8625..ad50af2 100644
+---- a/src/Makefile.am
+-+++ b/src/Makefile.am
+-@@ -11,7 +11,8 @@ testshoot \
+- testcdd2 \
+- testlp1 \
+- testlp2 \
+--testlp3
+-+testlp3 \
+-+cdd_both_reps
+- #cddmathlink
+-
+- scdd_SOURCES = simplecdd.c
+-@@ -27,6 +28,7 @@ testcdd2_SOURCES = testcdd2.c
+- testlp1_SOURCES = testlp1.c
+- testlp2_SOURCES = testlp2.c
+- testlp3_SOURCES = testlp3.c
+-+cdd_both_reps_SOURCES = cdd_both_reps.c
+- # cddmathlink_SOURCES = cddmathlink.c cddmlio.h cddmlio.c
+-
+- LDADD = ../lib-src/libcdd.la
+diff --git a/build/pkgs/cddlib/patches/cdd_both_reps.c b/build/pkgs/cddlib/patches/cdd_both_reps.c
+deleted file mode 100644
+index 3de4247..00000000
+--- a/build/pkgs/cddlib/patches/cdd_both_reps.c
++++ /dev/null
+@@ -1,255 +0,0 @@
+-/* cdd_both_reps.c: compute reduced H and V representation of polytope
+- by Volker Braun <vbraun at stp.dias.ie>
+-
+- The input is taken from stdin and can be either a
+- H or V representation, not necessarily reduced.
+-
+- based on testcdd1.c, redcheck.c, and of course the cdd library
+- written by Komei Fukuda, fukuda at ifor.math.ethz.ch
+- Standard ftp site: ftp.ifor.math.ethz.ch, Directory: pub/fukuda/cdd
+-*/
+-
+-/* This program 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 2 of the License, or
+- (at your option) any later version.
+-
+- This program 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 this program; if not, write to the Free Software
+- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-*/
+-
+-#include "setoper.h"
+-#include "cdd.h"
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <time.h>
+-#include <math.h>
+-#include <string.h>
+-
+-
+-
+-
+-
+-void compute_adjacency(dd_MatrixPtr Rep, dd_ErrorType* err_ptr)
+-{
+- dd_SetFamilyPtr AdjacencyGraph;
+- if (*err_ptr != dd_NoError) return;
+-
+- switch (Rep->representation) {
+- case dd_Inequality:
+- printf("Facet graph\n");
+- break;
+- case dd_Generator:
+- printf("Vertex graph\n");
+- break;
+- case dd_Unspecified:
+- printf("unknown representation type!\n");
+- default:
+- printf("This should be unreachable!\n");
+- exit(2);
+- }
+-
+- /* Output adjacency of vertices/rays/lines */
+- if (Rep->rowsize > 0) { /* workaround for bug with empty polyhedron */
+- /* compute adjacent vertices/rays/lines */
+- AdjacencyGraph = dd_Matrix2Adjacency(Rep, err_ptr);
+- if (*err_ptr == dd_NoError) {
+- dd_WriteSetFamily(stdout,AdjacencyGraph);
+- dd_FreeSetFamily(AdjacencyGraph);
+- }
+- } else {
+- printf("begin\n");
+- printf(" 0 0\n");
+- printf("end\n");
+- }
+-
+- printf("\n");
+-}
+-
+-
+-void minimal_Vrep_Hrep(dd_MatrixPtr M,
+- dd_MatrixPtr* Vrep_ptr, dd_MatrixPtr* Hrep_ptr,
+- dd_ErrorType* err_ptr)
+-{
+- dd_PolyhedraPtr poly;
+- dd_rowindex newpos;
+- dd_rowset impl_linset,redset;
+- dd_MatrixPtr Vrep, Hrep;
+-
+- if (*err_ptr != dd_NoError) return;
+-
+- /* compute the second representation */
+- poly = dd_DDMatrix2Poly(M, err_ptr);
+- if (*err_ptr != dd_NoError) return;
+-
+- if (*err_ptr == dd_NoError) {
+- /* compute canonical H-representation */
+- Hrep = dd_CopyInequalities(poly);
+- if (Hrep->rowsize > 0) { /* workaround for bug with empty matrix */
+- dd_MatrixCanonicalize(&Hrep, &impl_linset, &redset, &newpos, err_ptr);
+- if (*err_ptr == dd_NoError) {
+- set_free(redset);
+- set_free(impl_linset);
+- free(newpos);
+- }
+- }
+- if (*err_ptr == dd_NoError) (*Hrep_ptr) = Hrep;
+- }
+-
+- if (*err_ptr == dd_NoError) {
+- /* compute canonical V-representation */
+- Vrep = dd_CopyGenerators(poly);
+- if (Vrep->rowsize > 0) { /* workaround for bug with empty matrix */
+- dd_MatrixCanonicalize(&Vrep, &impl_linset, &redset, &newpos, err_ptr);
+- if (*err_ptr == dd_NoError) {
+- set_free(redset);
+- set_free(impl_linset);
+- free(newpos);
+- }
+- }
+- if (*err_ptr == dd_NoError) (*Vrep_ptr) = Vrep;
+- }
+-
+- dd_FreePolyhedra(poly);
+-}
+-
+-
+-void print_both_reps(dd_MatrixPtr Vrep, dd_MatrixPtr Hrep)
+-{
+- /* Output V-representation */
+- dd_WriteMatrix(stdout,Vrep);
+- printf("\n");
+-
+- /* Output H-representation */
+- dd_WriteMatrix(stdout,Hrep);
+- printf("\n");
+-}
+-
+-
+-void compute_both_reps(dd_MatrixPtr M, dd_ErrorType* err_ptr)
+-{
+- dd_MatrixPtr Vrep, Hrep;
+- minimal_Vrep_Hrep(M, &Vrep, &Hrep, err_ptr);
+- if (*err_ptr != dd_NoError) return;
+-
+- print_both_reps(Vrep, Hrep);
+- dd_FreeMatrix(Hrep);
+- dd_FreeMatrix(Vrep);
+-}
+-
+-
+-void compute_all(dd_MatrixPtr M, dd_ErrorType* err_ptr)
+-{
+- dd_MatrixPtr Vrep, Hrep;
+- minimal_Vrep_Hrep(M, &Vrep, &Hrep, err_ptr);
+- if (*err_ptr != dd_NoError) return;
+-
+- print_both_reps(Vrep, Hrep);
+- compute_adjacency(Vrep, err_ptr);
+- compute_adjacency(Hrep, err_ptr);
+- dd_FreeMatrix(Hrep);
+- dd_FreeMatrix(Vrep);
+-}
+-
+-
+-
+-void usage(char *name)
+-{
+- printf("No known option specified, I don't know what to do!\n"
+- "Usage:\n"
+- "%s --option\n"
+- "where --option is precisely one of the following:\n\n"
+- " --all: Compute everything.\n"
+- " This will compute minimal H-,V-representation and vertex and facet graph.\n"
+- "\n"
+- " --reps: Compute both a minimal H- and minimal V-representation.\n"
+- "\n"
+- " --adjacency: Compute adjacency information only.\n"
+- " The input is assumed to be a minimal representation, as, for example, computed\n"
+- " by --reps. Warning, you will not get the correct answer if the input\n"
+- " representation is not minimal! The output is the vertex or facet graph,\n"
+- " depending on the input.\n"
+- "\n"
+- "The input data is a H- or V-representation in cdd's ine/ext format and\n"
+- "is in each case read from stdin.\n",
+- name);
+-}
+-
+-
+-enum command_line_arguments { ALL, REPS, ADJACENCY };
+-
+-
+-int parse_arguments(char* arg, enum command_line_arguments* option)
+-{
+- if (strcmp(arg,"--all")==0) {
+- *option = ALL;
+- return 0;
+- }
+- if (strcmp(arg,"--reps")==0) {
+- *option = REPS;
+- return 0;
+- }
+- if (strcmp(arg,"--adjacency")==0) {
+- *option = ADJACENCY;
+- return 0;
+- }
+- printf("Unknown option: %s\n", arg);
+- return 1;
+-}
+-
+-
+-int main(int argc, char *argv[])
+-{
+- dd_ErrorType err=dd_NoError;
+- dd_MatrixPtr M;
+- enum command_line_arguments option;
+-
+- if (argc!=2 || parse_arguments(argv[1],&option)) {
+- usage(argv[0]);
+- return 0;
+- }
+-
+- dd_set_global_constants();
+-
+- /* Read data from stdin */
+- M = dd_PolyFile2Matrix(stdin, &err);
+- if (err != dd_NoError) {
+- printf("I was unable to parse the input data!\n");
+- dd_WriteErrorMessages(stdout,err);
+- dd_free_global_constants();
+- return 1;
+- }
+-
+- switch (option) {
+- case ALL:
+- compute_all(M,&err);
+- break;
+- case REPS:
+- compute_both_reps(M,&err);
+- break;
+- case ADJACENCY:
+- compute_adjacency(M,&err);
+- break;
+- default:
+- printf("unreachable option %d\n", option);
+- exit(3); /* unreachable */
+- }
+-
+- /* cleanup */
+- dd_FreeMatrix(M);
+- if (err != dd_NoError) {
+- dd_WriteErrorMessages(stdout,err);
+- }
+-
+- dd_free_global_constants();
+- return 0;
+-}
+-
+-
+-
+diff --git a/build/pkgs/cddlib/patches/lib-src-gmp_Makefile.in.patch b/build/pkgs/cddlib/patches/lib-src-gmp_Makefile.in.patch
+deleted file mode 100644
+index 1c83482..00000000
+--- a/build/pkgs/cddlib/patches/lib-src-gmp_Makefile.in.patch
++++ /dev/null
+@@ -1,40 +0,0 @@
+-diff --git a/lib-src-gmp/Makefile.in b/lib-src-gmp/Makefile.in
+-index 4ab9342..93ff335 100644
+---- a/lib-src-gmp/Makefile.in
+-+++ b/lib-src-gmp/Makefile.in
+-@@ -54,7 +54,7 @@
+- libcddgmp_la_LIBADD =
+- am_libcddgmp_la_OBJECTS = cddcore.lo cddlp.lo cddmp.lo cddio.lo \
+- cddlib.lo cddproj.lo cddcore_f.lo cddlp_f.lo cddmp_f.lo \
+-- cddio_f.lo cddlib_f.lo cddproj_f.lo setoper.lo
+-+ cddio_f.lo cddlib_f.lo cddproj_f.lo setoper.lo random.lo
+- libcddgmp_la_OBJECTS = $(am_libcddgmp_la_OBJECTS)
+- DEFAULT_INCLUDES = -I. at am__isrc@
+- depcomp = $(SHELL) $(top_srcdir)/depcomp
+-@@ -199,7 +199,8 @@
+- cddio_f.c \
+- cddlib_f.c \
+- cddproj_f.c \
+--setoper.c
+-+setoper.c \
+-+random.c
+-
+- include_HEADERS = \
+- cdd.h \
+-@@ -210,7 +211,7 @@
+- cddtypes_f.h \
+- setoper.h
+-
+--AM_CPPFLAGS = -I$(gmpincludedir) -DGMPRATIONAL
+-+AM_CPPFLAGS = -DGMPRATIONAL
+- AM_LDFLAGS = -version-info 0:0:0
+- all: all-am
+-
+-@@ -293,6 +294,7 @@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cddmp_f.Plo at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cddproj.Plo at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cddproj_f.Plo at am__quote@
+-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/random.Plo at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/setoper.Plo at am__quote@
+-
+- .c.o:
+diff --git a/build/pkgs/cddlib/patches/lib-src_Makefile.in.patch b/build/pkgs/cddlib/patches/lib-src_Makefile.in.patch
+deleted file mode 100644
+index bfe6c1c..00000000
+--- a/build/pkgs/cddlib/patches/lib-src_Makefile.in.patch
++++ /dev/null
+@@ -1,31 +0,0 @@
+-diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
+-index bd3c2b5..ccf4a6c 100644
+---- a/lib-src/Makefile.in
+-+++ b/lib-src/Makefile.in
+-@@ -53,7 +53,7 @@ libLTLIBRARIES_INSTALL = $(INSTALL)
+- LTLIBRARIES = $(lib_LTLIBRARIES)
+- libcdd_la_LIBADD =
+- am_libcdd_la_OBJECTS = cddcore.lo cddlp.lo cddmp.lo cddio.lo cddlib.lo \
+-- cddproj.lo setoper.lo
+-+ cddproj.lo setoper.lo random.lo
+- libcdd_la_OBJECTS = $(am_libcdd_la_OBJECTS)
+- DEFAULT_INCLUDES = -I. at am__isrc@
+- depcomp = $(SHELL) $(top_srcdir)/depcomp
+-@@ -192,7 +192,8 @@ cddmp.c \
+- cddio.c \
+- cddlib.c \
+- cddproj.c \
+--setoper.c
+-+setoper.c \
+-+random.c
+-
+- include_HEADERS = \
+- cdd.h \
+-@@ -277,6 +278,7 @@ distclean-compile:
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cddlp.Plo at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cddmp.Plo at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cddproj.Plo at am__quote@
+-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/random.Plo at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/setoper.Plo at am__quote@
+-
+- .c.o:
+diff --git a/build/pkgs/cddlib/patches/lib-src_cddcore.c.patch b/build/pkgs/cddlib/patches/lib-src_cddcore.c.patch
+deleted file mode 100644
+index 9fea06f..00000000
+--- a/build/pkgs/cddlib/patches/lib-src_cddcore.c.patch
++++ /dev/null
+@@ -1,34 +0,0 @@
+-diff --git a/lib-src/cddcore.c b/lib-src/cddcore.c
+-index 9644788..a029bc3 100644
+---- a/lib-src/cddcore.c
+-+++ b/lib-src/cddcore.c
+-@@ -17,6 +17,7 @@
+- #include <time.h>
+- #include <math.h>
+- #include <string.h>
+-+#include "random.h" /* include last - overrides RAND_MAX */
+-
+- void dd_CheckAdjacency(dd_ConePtr cone,
+- dd_RayPtr *RP1, dd_RayPtr *RP2, dd_boolean *adjacent)
+-@@ -1849,19 +1850,15 @@ void dd_QuickSort(dd_rowindex OV, long p, long r, dd_Amatrix A, long dmax)
+- }
+-
+-
+--#ifndef RAND_MAX
+--#define RAND_MAX 32767
+--#endif
+--
+- void dd_RandomPermutation(dd_rowindex OV, long t, unsigned int seed)
+- {
+- long k,j,ovj;
+- double u,xk,r,rand_max=(double) RAND_MAX;
+- dd_boolean localdebug=dd_FALSE;
+-
+-- srand(seed);
+-+ portable_srand(seed);
+- for (j=t; j>1 ; j--) {
+-- r=rand();
+-+ r=portable_rand();
+- u=r/rand_max;
+- xk=(double)(j*u +1);
+- k=(long)xk;
+diff --git a/build/pkgs/cddlib/patches/lib-src_cddlp.c.patch b/build/pkgs/cddlib/patches/lib-src_cddlp.c.patch
+deleted file mode 100644
+index ea054f0..00000000
+--- a/build/pkgs/cddlib/patches/lib-src_cddlp.c.patch
++++ /dev/null
+@@ -1,33 +0,0 @@
+-diff --git a/lib-src/cddlp.c b/lib-src/cddlp.c
+-index 855b197..dd1268b 100644
+---- a/lib-src/cddlp.c
+-+++ b/lib-src/cddlp.c
+-@@ -13,6 +13,7 @@
+-
+- #include "setoper.h" /* set operation library header (Ver. May 18, 2000 or later) */
+- #include "cdd.h"
+-+#include "random.h"
+- #include <stdio.h>
+- #include <stdlib.h>
+- #include <time.h>
+-@@ -23,6 +24,8 @@
+- #include "cdd_f.h"
+- #endif
+-
+-+#include "random.h" /* include last - overrides RAND_MAX */
+-+
+- #define dd_CDDLPVERSION "Version 0.94b (August 25, 2005)"
+-
+- #define dd_FALSE 0
+-@@ -1755,9 +1758,9 @@ void dd_RandomPermutation2(dd_rowindex OV,long t,unsigned int seed)
+- double u,xk,r,rand_max=(double) RAND_MAX;
+- int localdebug=dd_FALSE;
+-
+-- srand(seed);
+-+ portable_srand(seed);
+- for (j=t; j>1 ; j--) {
+-- r=rand();
+-+ r=portable_rand();
+- u=r/rand_max;
+- xk=(double)(j*u +1);
+- k=(long)xk;
+diff --git a/build/pkgs/cddlib/patches/random.c b/build/pkgs/cddlib/patches/random.c
+deleted file mode 100644
+index c3806c5..00000000
+--- a/build/pkgs/cddlib/patches/random.c
++++ /dev/null
+@@ -1,144 +0,0 @@
+-/* Copyright (C) 1991, 1996 Free Software Foundation, Inc.
+-
+- ----------------------------------------------------------
+- Random numbers that return the same sequence on all platforms.
+- Implementation taken from the GNU C Library. The same copyright
+- applies.
+- ----------------------------------------------------------
+-
+- The GNU C Library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- The GNU C Library 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
+- Lesser General Public License for more details.
+-
+- You should have received a copy of the GNU Lesser General Public
+- License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
+-
+-
+-#include <stdint.h>
+-#include "random.h"
+-
+-
+-/* x**31 + x**3 + 1. */
+-#define TYPE_3 3
+-#define BREAK_3 128
+-#define DEG_3 31
+-#define SEP_3 3
+-
+-
+-static int32_t randtbl[DEG_3 + 1] =
+- {
+- TYPE_3,
+-
+- -1726662223, 379960547, 1735697613, 1040273694, 1313901226,
+- 1627687941, -179304937, -2073333483, 1780058412, -1989503057,
+- -615974602, 344556628, 939512070, -1249116260, 1507946756,
+- -812545463, 154635395, 1388815473, -1926676823, 525320961,
+- -1009028674, 968117788, -123449607, 1284210865, 435012392,
+- -2017506339, -911064859, -370259173, 1132637927, 1398500161,
+- -205601318,
+- };
+-
+-
+-struct random_data
+- {
+- int32_t *fptr; /* Front pointer. */
+- int32_t *rptr; /* Rear pointer. */
+- int32_t *state; /* Array of state values. */
+- int rand_type; /* Type of random number generator. */
+- int rand_deg; /* Degree of random number generator. */
+- int rand_sep; /* Distance between front and rear. */
+- int32_t *end_ptr; /* Pointer behind state table. */
+- };
+-
+-static struct random_data rng_state =
+- {
+- .fptr = &randtbl[SEP_3 + 1],
+- .rptr = &randtbl[1],
+- .state = &randtbl[1],
+- .rand_type = TYPE_3,
+- .rand_deg = DEG_3,
+- .rand_sep = SEP_3,
+- .end_ptr = &randtbl[sizeof (randtbl) / sizeof (randtbl[0])]
+-};
+-
+-
+-void portable_srand(unsigned int seed)
+-{
+- int type;
+- int32_t *state;
+- long int i;
+- int32_t word;
+- int32_t *dst;
+- int kc;
+-
+- /* printf("portable_srand: seed = %u\n", seed); */
+-
+- type = rng_state.rand_type;
+-
+- state = rng_state.state;
+- /* We must make sure the seed is not 0. Take arbitrarily 1 in this case. */
+- if (seed == 0)
+- seed = 1;
+- state[0] = seed;
+-
+- dst = state;
+- word = seed;
+- kc = rng_state.rand_deg;
+- for (i = 1; i < kc; ++i)
+- {
+- /* This does:
+- state[i] = (16807 * state[i - 1]) % 2147483647;
+- but avoids overflowing 31 bits. */
+- long int hi = word / 127773;
+- long int lo = word % 127773;
+- word = 16807 * lo - 2836 * hi;
+- if (word < 0)
+- word += 2147483647;
+- *++dst = word;
+- }
+-
+- rng_state.fptr = &state[rng_state.rand_sep];
+- rng_state.rptr = &state[0];
+- kc *= 10;
+- while (--kc >= 0)
+- portable_rand();
+-}
+-
+-
+-int portable_rand(void)
+-{
+- int32_t *fptr = rng_state.fptr;
+- int32_t *rptr = rng_state.rptr;
+- int32_t *end_ptr = rng_state.end_ptr;
+- int32_t result;
+-
+- result = *fptr += *rptr;
+- /* Chucking least random bit. */
+- result = (result >> 1) & 0x7fffffff;
+- ++fptr;
+- if (fptr >= end_ptr)
+- {
+- fptr = rng_state.state;
+- ++rptr;
+- }
+- else
+- {
+- ++rptr;
+- if (rptr >= end_ptr)
+- rptr = rng_state.state;
+- }
+- rng_state.fptr = fptr;
+- rng_state.rptr = rptr;
+-
+- /* printf("portable_rand: output = %d\n", result); */
+-
+- return result;
+-}
+diff --git a/build/pkgs/cddlib/patches/random.h b/build/pkgs/cddlib/patches/random.h
+deleted file mode 100644
+index d7fcdaf..00000000
+--- a/build/pkgs/cddlib/patches/random.h
++++ /dev/null
+@@ -1,37 +0,0 @@
+-#ifndef RANDOM__H
+-#define RANDOM__H
+-
+-/* Copyright (C) 1991, 1996 Free Software Foundation, Inc.
+-
+- ----------------------------------------------------------
+- Random numbers that return the same sequence on all platforms.
+- Implementation taken from the GNU C Library. The same copyright
+- applies.
+- ----------------------------------------------------------
+-
+- The GNU C Library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- The GNU C Library 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
+- Lesser General Public License for more details.
+-
+- You should have received a copy of the GNU Lesser General Public
+- License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
+-
+-void portable_srand(unsigned int seed);
+-int portable_rand(void);
+-
+-#endif /* RANDOM__H */
+-
+-
+-/* The largest number rand will return (same as INT_MAX). */
+-#define RAND_MAX 2147483647
+-/* intentionally outside the #ifdef RANDOM__H block */
+-/* You must overwrite the system RAND_MAX! */
+-
+diff --git a/build/pkgs/cddlib/patches/src-gmp_Makefile.in.patch b/build/pkgs/cddlib/patches/src-gmp_Makefile.in.patch
+deleted file mode 100644
+index ac69550..00000000
+--- a/build/pkgs/cddlib/patches/src-gmp_Makefile.in.patch
++++ /dev/null
+@@ -1,88 +0,0 @@
+-diff --git a/src-gmp/Makefile.in b/src-gmp/Makefile.in
+-index f88c83f..3470dc9 100644
+---- a/src-gmp/Makefile.in
+-+++ b/src-gmp/Makefile.in
+-@@ -37,7 +37,8 @@
+- projection_gmp$(EXEEXT) adjacency_gmp$(EXEEXT) \
+- allfaces_gmp$(EXEEXT) testshoot_gmp$(EXEEXT) \
+- testcdd1_gmp$(EXEEXT) testcdd2_gmp$(EXEEXT) \
+-- testlp1_gmp$(EXEEXT) testlp2_gmp$(EXEEXT) testlp3_gmp$(EXEEXT)
+-+ testlp1_gmp$(EXEEXT) testlp2_gmp$(EXEEXT) testlp3_gmp$(EXEEXT) \
+-+ cdd_both_reps_gmp$(EXEEXT)
+- subdir = src-gmp
+- DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-@@ -57,6 +58,10 @@
+- allfaces_gmp_OBJECTS = $(am_allfaces_gmp_OBJECTS)
+- allfaces_gmp_LDADD = $(LDADD)
+- allfaces_gmp_DEPENDENCIES = ../lib-src-gmp/libcddgmp.la
+-+am_cdd_both_reps_gmp_OBJECTS = cdd_both_reps.$(OBJEXT)
+-+cdd_both_reps_gmp_OBJECTS = $(am_cdd_both_reps_gmp_OBJECTS)
+-+cdd_both_reps_gmp_LDADD = $(LDADD)
+-+cdd_both_reps_gmp_DEPENDENCIES = ../lib-src-gmp/libcddgmp.la
+- am_fourier_gmp_OBJECTS = fourier.$(OBJEXT)
+- fourier_gmp_OBJECTS = $(am_fourier_gmp_OBJECTS)
+- fourier_gmp_LDADD = $(LDADD)
+-@@ -114,19 +119,19 @@
+- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+- $(LDFLAGS) -o $@
+- SOURCES = $(adjacency_gmp_SOURCES) $(allfaces_gmp_SOURCES) \
+-- $(fourier_gmp_SOURCES) $(lcdd_gmp_SOURCES) \
+-- $(projection_gmp_SOURCES) $(redcheck_gmp_SOURCES) \
+-- $(scdd_gmp_SOURCES) $(testcdd1_gmp_SOURCES) \
+-- $(testcdd2_gmp_SOURCES) $(testlp1_gmp_SOURCES) \
+-- $(testlp2_gmp_SOURCES) $(testlp3_gmp_SOURCES) \
+-- $(testshoot_gmp_SOURCES)
+-+ $(cdd_both_reps_gmp_SOURCES) $(fourier_gmp_SOURCES) \
+-+ $(lcdd_gmp_SOURCES) $(projection_gmp_SOURCES) \
+-+ $(redcheck_gmp_SOURCES) $(scdd_gmp_SOURCES) \
+-+ $(testcdd1_gmp_SOURCES) $(testcdd2_gmp_SOURCES) \
+-+ $(testlp1_gmp_SOURCES) $(testlp2_gmp_SOURCES) \
+-+ $(testlp3_gmp_SOURCES) $(testshoot_gmp_SOURCES)
+- DIST_SOURCES = $(adjacency_gmp_SOURCES) $(allfaces_gmp_SOURCES) \
+-- $(fourier_gmp_SOURCES) $(lcdd_gmp_SOURCES) \
+-- $(projection_gmp_SOURCES) $(redcheck_gmp_SOURCES) \
+-- $(scdd_gmp_SOURCES) $(testcdd1_gmp_SOURCES) \
+-- $(testcdd2_gmp_SOURCES) $(testlp1_gmp_SOURCES) \
+-- $(testlp2_gmp_SOURCES) $(testlp3_gmp_SOURCES) \
+-- $(testshoot_gmp_SOURCES)
+-+ $(cdd_both_reps_gmp_SOURCES) $(fourier_gmp_SOURCES) \
+-+ $(lcdd_gmp_SOURCES) $(projection_gmp_SOURCES) \
+-+ $(redcheck_gmp_SOURCES) $(scdd_gmp_SOURCES) \
+-+ $(testcdd1_gmp_SOURCES) $(testcdd2_gmp_SOURCES) \
+-+ $(testlp1_gmp_SOURCES) $(testlp2_gmp_SOURCES) \
+-+ $(testlp3_gmp_SOURCES) $(testshoot_gmp_SOURCES)
+- ETAGS = etags
+- CTAGS = ctags
+- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-@@ -254,10 +259,10 @@
+- testlp1_gmp_SOURCES = testlp1.c
+- testlp2_gmp_SOURCES = testlp2.c
+- testlp3_gmp_SOURCES = testlp3.c
+-+cdd_both_reps_gmp_SOURCES = cdd_both_reps.c
+- # cddmathlink_SOURCES = cddmathlink.c cddmlio.h cddmlio.c
+- LDADD = ../lib-src-gmp/libcddgmp.la
+--AM_LDFLAGS = -L$(gmplibdir)
+--INCLUDES = -I../lib-src-gmp -I$(gmpincludedir)
+-+INCLUDES = -I../lib-src-gmp
+- AM_CPPFLAGS = -DGMPRATIONAL
+- all: all-am
+-
+-@@ -326,6 +331,9 @@
+- allfaces_gmp$(EXEEXT): $(allfaces_gmp_OBJECTS) $(allfaces_gmp_DEPENDENCIES)
+- @rm -f allfaces_gmp$(EXEEXT)
+- $(LINK) $(allfaces_gmp_OBJECTS) $(allfaces_gmp_LDADD) $(LIBS)
+-+cdd_both_reps_gmp$(EXEEXT): $(cdd_both_reps_gmp_OBJECTS) $(cdd_both_reps_gmp_DEPENDENCIES)
+-+ @rm -f cdd_both_reps_gmp$(EXEEXT)
+-+ $(LINK) $(cdd_both_reps_gmp_OBJECTS) $(cdd_both_reps_gmp_LDADD) $(LIBS)
+- fourier_gmp$(EXEEXT): $(fourier_gmp_OBJECTS) $(fourier_gmp_DEPENDENCIES)
+- @rm -f fourier_gmp$(EXEEXT)
+- $(LINK) $(fourier_gmp_OBJECTS) $(fourier_gmp_LDADD) $(LIBS)
+-@@ -368,6 +376,7 @@
+-
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/adjacency.Po at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/allfaces.Po at am__quote@
+-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cdd_both_reps.Po at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fourier.Po at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lcdd.Po at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/projection.Po at am__quote@
+diff --git a/build/pkgs/cddlib/patches/src_Makefile.in.patch b/build/pkgs/cddlib/patches/src_Makefile.in.patch
+deleted file mode 100644
+index b7dd74c..00000000
+--- a/build/pkgs/cddlib/patches/src_Makefile.in.patch
++++ /dev/null
+@@ -1,76 +0,0 @@
+-diff --git a/src/Makefile.in b/src/Makefile.in
+-index 8385e4d..b9f6a26 100644
+---- a/src/Makefile.in
+-+++ b/src/Makefile.in
+-@@ -36,7 +36,7 @@ bin_PROGRAMS = scdd$(EXEEXT) lcdd$(EXEEXT) redcheck$(EXEEXT) \
+- fourier$(EXEEXT) projection$(EXEEXT) adjacency$(EXEEXT) \
+- allfaces$(EXEEXT) testcdd1$(EXEEXT) testshoot$(EXEEXT) \
+- testcdd2$(EXEEXT) testlp1$(EXEEXT) testlp2$(EXEEXT) \
+-- testlp3$(EXEEXT)
+-+ testlp3$(EXEEXT) cdd_both_reps$(EXEEXT)
+- subdir = src
+- DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-@@ -56,6 +56,10 @@ am_allfaces_OBJECTS = allfaces.$(OBJEXT)
+- allfaces_OBJECTS = $(am_allfaces_OBJECTS)
+- allfaces_LDADD = $(LDADD)
+- allfaces_DEPENDENCIES = ../lib-src/libcdd.la
+-+am_cdd_both_reps_OBJECTS = cdd_both_reps.$(OBJEXT)
+-+cdd_both_reps_OBJECTS = $(am_cdd_both_reps_OBJECTS)
+-+cdd_both_reps_LDADD = $(LDADD)
+-+cdd_both_reps_DEPENDENCIES = ../lib-src/libcdd.la
+- am_fourier_OBJECTS = fourier.$(OBJEXT)
+- fourier_OBJECTS = $(am_fourier_OBJECTS)
+- fourier_LDADD = $(LDADD)
+-@@ -112,16 +116,16 @@ CCLD = $(CC)
+- LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+- $(LDFLAGS) -o $@
+--SOURCES = $(adjacency_SOURCES) $(allfaces_SOURCES) $(fourier_SOURCES) \
+-- $(lcdd_SOURCES) $(projection_SOURCES) $(redcheck_SOURCES) \
+-- $(scdd_SOURCES) $(testcdd1_SOURCES) $(testcdd2_SOURCES) \
+-- $(testlp1_SOURCES) $(testlp2_SOURCES) $(testlp3_SOURCES) \
+-- $(testshoot_SOURCES)
+-+SOURCES = $(adjacency_SOURCES) $(allfaces_SOURCES) \
+-+ $(cdd_both_reps_SOURCES) $(fourier_SOURCES) $(lcdd_SOURCES) \
+-+ $(projection_SOURCES) $(redcheck_SOURCES) $(scdd_SOURCES) \
+-+ $(testcdd1_SOURCES) $(testcdd2_SOURCES) $(testlp1_SOURCES) \
+-+ $(testlp2_SOURCES) $(testlp3_SOURCES) $(testshoot_SOURCES)
+- DIST_SOURCES = $(adjacency_SOURCES) $(allfaces_SOURCES) \
+-- $(fourier_SOURCES) $(lcdd_SOURCES) $(projection_SOURCES) \
+-- $(redcheck_SOURCES) $(scdd_SOURCES) $(testcdd1_SOURCES) \
+-- $(testcdd2_SOURCES) $(testlp1_SOURCES) $(testlp2_SOURCES) \
+-- $(testlp3_SOURCES) $(testshoot_SOURCES)
+-+ $(cdd_both_reps_SOURCES) $(fourier_SOURCES) $(lcdd_SOURCES) \
+-+ $(projection_SOURCES) $(redcheck_SOURCES) $(scdd_SOURCES) \
+-+ $(testcdd1_SOURCES) $(testcdd2_SOURCES) $(testlp1_SOURCES) \
+-+ $(testlp2_SOURCES) $(testlp3_SOURCES) $(testshoot_SOURCES)
+- ETAGS = etags
+- CTAGS = ctags
+- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-@@ -249,6 +253,7 @@ testcdd2_SOURCES = testcdd2.c
+- testlp1_SOURCES = testlp1.c
+- testlp2_SOURCES = testlp2.c
+- testlp3_SOURCES = testlp3.c
+-+cdd_both_reps_SOURCES = cdd_both_reps.c
+- # cddmathlink_SOURCES = cddmathlink.c cddmlio.h cddmlio.c
+- LDADD = ../lib-src/libcdd.la
+- INCLUDES = -I../lib-src
+-@@ -320,6 +325,9 @@ adjacency$(EXEEXT): $(adjacency_OBJECTS) $(adjacency_DEPENDENCIES)
+- allfaces$(EXEEXT): $(allfaces_OBJECTS) $(allfaces_DEPENDENCIES)
+- @rm -f allfaces$(EXEEXT)
+- $(LINK) $(allfaces_OBJECTS) $(allfaces_LDADD) $(LIBS)
+-+cdd_both_reps$(EXEEXT): $(cdd_both_reps_OBJECTS) $(cdd_both_reps_DEPENDENCIES)
+-+ @rm -f cdd_both_reps$(EXEEXT)
+-+ $(LINK) $(cdd_both_reps_OBJECTS) $(cdd_both_reps_LDADD) $(LIBS)
+- fourier$(EXEEXT): $(fourier_OBJECTS) $(fourier_DEPENDENCIES)
+- @rm -f fourier$(EXEEXT)
+- $(LINK) $(fourier_OBJECTS) $(fourier_LDADD) $(LIBS)
+-@@ -362,6 +370,7 @@ distclean-compile:
+-
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/adjacency.Po at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/allfaces.Po at am__quote@
+-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cdd_both_reps.Po at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fourier.Po at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lcdd.Po at am__quote@
+- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/projection.Po at am__quote@
+diff --git a/build/pkgs/cddlib/spkg-check b/build/pkgs/cddlib/spkg-check
+deleted file mode 100644
+index 9bbc33e..00000000
+--- a/build/pkgs/cddlib/spkg-check
++++ /dev/null
+@@ -1,23 +0,0 @@
+-## This is how I created the initial output files
+-## for i in * ; do echo $i; ( cat $i | cdd_both_reps_gmp --all > ../output/$i ) ; done
+-
+-
+-TEST_OUTPUT=`mktemp /tmp/test_actual_output.XXXXXXXXXX`
+-echo "Using $TEST_OUTPUT as a temporary file."
+-
+-run_test() {
+- echo "Testing $1"
+- cat input/$1 | $SAGE_LOCAL/bin/cdd_both_reps_gmp --all > $TEST_OUTPUT
+- # Now, compare the two outputs and error out if there is a discrepancy:
+- diff -n output/$1 $TEST_OUTPUT || ( \
+- echo "cdd_both_reps not working as expected"; \
+- exit 1 )
+-}
+-
+-
+-cd tests
+-INPUT=`ls input/`
+-
+-for filename in $INPUT; do run_test $filename; done
+-
+-rm $TEST_OUTPUT
+diff --git a/build/pkgs/cddlib/spkg-install b/build/pkgs/cddlib/spkg-install
+index f7d97f9..19d7c55 100644
+--- a/build/pkgs/cddlib/spkg-install
++++ b/build/pkgs/cddlib/spkg-install
+@@ -2,17 +2,6 @@ export CPPFLAGS="-I$SAGE_LOCAL/include $CPPFLAGS"
+
+ cd src
+
+-# A portable random number generator
+-cp ../patches/random.{c,h} lib-src/
+-cp ../patches/random.{c,h} lib-src-gmp/
+-
+-# Required by sage.geometry.polyhedron
+-cp ../patches/cdd_both_reps.c src/
+-cp ../patches/cdd_both_reps.c src-gmp/cdd_both_reps.c
+-
+-# Use newer version of config.guess and config.sub (see Trac #19718)
+-cp "$SAGE_ROOT"/config/config.* .
+-
+ sdh_configure
+ sdh_make
+ sdh_make_install
+diff --git a/build/pkgs/cddlib/spkg-src b/build/pkgs/cddlib/spkg-src
+index d49ffae..7e0ba63 100755
+--- a/build/pkgs/cddlib/spkg-src
++++ b/build/pkgs/cddlib/spkg-src
+@@ -13,12 +13,12 @@ shopt -s extglob
+ # Remove old sources and download new
+ rm -rf src cddlib*
+
+-CDDLIBVERSION=094g
++CDDLIBVERSION=0.94j
+ CDDLIBDIR=cddlib-$CDDLIBVERSION
+ CDDLIBTAR=$CDDLIBDIR.tar.gz
+
+ if [ -z "$UPSTREAM_SOURCE_DIRECTORY" ]; then
+- tar xzf <( curl -L "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/$CDDLIBTAR" )
++ tar xzf <( curl -L "https://github.com/cddlib/cddlib/archive/$CDDLIBTAR" )
+ else
+ tar xzf "$UPSTREAM_SOURCE_DIRECTORY/$CDDLIBTAR"
+ fi
+diff --git a/build/pkgs/cddlib/tests/input/ccc4.ext b/build/pkgs/cddlib/tests/input/ccc4.ext
+deleted file mode 100644
+index 3118d0f..00000000
+--- a/build/pkgs/cddlib/tests/input/ccc4.ext
++++ /dev/null
+@@ -1,15 +0,0 @@
+-* file name: ccc4.ext
+-* Complete cut cone on 4 vertices
+-* The number of facets is 12.
+-V-representation
+-begin
+- 7 7 integer
+- 0 1 1 1 0 0 0
+- 0 0 1 1 1 1 0
+- 0 1 0 1 1 0 1
+- 0 1 1 0 0 1 1
+- 0 0 0 1 0 1 1
+- 0 0 1 0 1 0 1
+- 0 1 0 0 1 1 0
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/input/ccc5.ext b/build/pkgs/cddlib/tests/input/ccc5.ext
+deleted file mode 100644
+index 24d932c..00000000
+--- a/build/pkgs/cddlib/tests/input/ccc5.ext
++++ /dev/null
+@@ -1,22 +0,0 @@
+-* file name: ccc5.ext
+-* Complete cut cone on 5 vertices
+-* The number of facets is 40.
+-V-representation
+-begin
+- 15 11 integer
+-0 1 1 1 1 0 0 0 0 0 0
+-0 0 1 1 1 1 1 1 0 0 0
+-0 1 0 1 1 1 0 0 1 1 0
+-0 1 1 0 1 0 1 0 1 0 1
+-0 1 1 1 0 0 0 1 0 1 1
+-0 0 0 1 1 0 1 1 1 1 0
+-0 0 1 0 1 1 0 1 1 0 1
+-0 0 1 1 0 1 1 0 0 1 1
+-0 1 0 0 1 1 1 0 0 1 1
+-0 1 0 1 0 1 0 1 1 0 1
+-0 1 1 0 0 0 1 1 1 1 0
+-0 0 0 0 1 0 0 1 0 1 1
+-0 0 0 1 0 0 1 0 1 0 1
+-0 0 1 0 0 1 0 0 1 1 0
+-0 1 0 0 0 1 1 1 0 0 0
+-end
+diff --git a/build/pkgs/cddlib/tests/input/ccp4.ext b/build/pkgs/cddlib/tests/input/ccp4.ext
+deleted file mode 100644
+index 9c410ad..00000000
+--- a/build/pkgs/cddlib/tests/input/ccp4.ext
++++ /dev/null
+@@ -1,16 +0,0 @@
+-* file name: ccp4.ext
+-* Input file for computing the facets of the complete cut polytope on 4 vertices
+-* The number of facets is 16.
+-V-representation
+-begin
+- 8 7 integer
+- 1 0 0 0 0 0 0
+- 1 1 1 1 0 0 0
+- 1 0 1 1 1 1 0
+- 1 1 0 1 1 0 1
+- 1 1 1 0 0 1 1
+- 1 0 0 1 0 1 1
+- 1 0 1 0 1 0 1
+- 1 1 0 0 1 1 0
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/input/ccp5.ext b/build/pkgs/cddlib/tests/input/ccp5.ext
+deleted file mode 100644
+index 65374b2..00000000
+--- a/build/pkgs/cddlib/tests/input/ccp5.ext
++++ /dev/null
+@@ -1,24 +0,0 @@
+-* filename: ccp5.ext
+-* Input file for computing the facets of the complete cut polytope on 5 vertices
+-* The number of facets is 56.
+-V-representation
+-begin
+- 16 11 integer
+-1 0 0 0 0 0 0 0 0 0 0
+-1 1 1 1 1 0 0 0 0 0 0
+-1 0 1 1 1 1 1 1 0 0 0
+-1 1 0 1 1 1 0 0 1 1 0
+-1 1 1 0 1 0 1 0 1 0 1
+-1 1 1 1 0 0 0 1 0 1 1
+-1 0 0 1 1 0 1 1 1 1 0
+-1 0 1 0 1 1 0 1 1 0 1
+-1 0 1 1 0 1 1 0 0 1 1
+-1 1 0 0 1 1 1 0 0 1 1
+-1 1 0 1 0 1 0 1 1 0 1
+-1 1 1 0 0 0 1 1 1 1 0
+-1 0 0 0 1 0 0 1 0 1 1
+-1 0 0 1 0 0 1 0 1 0 1
+-1 0 1 0 0 1 0 0 1 1 0
+-1 1 0 0 0 1 1 1 0 0 0
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/input/cube10.ine b/build/pkgs/cddlib/tests/input/cube10.ine
+deleted file mode 100644
+index b2094a5..00000000
+--- a/build/pkgs/cddlib/tests/input/cube10.ine
++++ /dev/null
+@@ -1,27 +0,0 @@
+-H-representation
+-begin
+- 20 11 integer
+- 1 0 0 0 0 0 0 0 0 0 1
+- 1 1 0 0 0 0 0 0 0 0 0
+- 1 0 1 0 0 0 0 0 0 0 0
+- 1 0 0 1 0 0 0 0 0 0 0
+- 1 0 0 0 1 0 0 0 0 0 0
+- 1 0 0 0 0 1 0 0 0 0 0
+- 1 0 0 0 0 0 1 0 0 0 0
+- 1 0 0 0 0 0 0 1 0 0 0
+- 1 0 0 0 0 0 0 0 1 0 0
+- 1 0 0 0 0 0 0 0 0 1 0
+- 1 0 0 0 0 0 0 0 0 0 -1
+- 1 0 0 0 0 0 0 0 0 -1 0
+- 1 0 0 0 0 0 0 0 -1 0 0
+- 1 0 0 0 0 0 0 -1 0 0 0
+- 1 0 0 0 0 0 -1 0 0 0 0
+- 1 0 0 0 0 -1 0 0 0 0 0
+- 1 0 0 0 -1 0 0 0 0 0 0
+- 1 0 0 -1 0 0 0 0 0 0 0
+- 1 0 -1 0 0 0 0 0 0 0 0
+- -2 -1 0 0 0 0 0 0 0 0 0
+-end
+-minimize
+- -2 -1 0 0 0 0 0 0 0 0 0
+-
+diff --git a/build/pkgs/cddlib/tests/input/cube6.ine b/build/pkgs/cddlib/tests/input/cube6.ine
+deleted file mode 100644
+index 98b2553..00000000
+--- a/build/pkgs/cddlib/tests/input/cube6.ine
++++ /dev/null
+@@ -1,17 +0,0 @@
+-* 6-dim hypercube
+-H-representation
+-begin
+- 12 7 integer
+- 1 1 0 0 0 0 0
+- 1 0 1 0 0 0 0
+- 1 0 0 1 0 0 0
+- 1 0 0 0 1 0 0
+- 1 0 0 0 0 1 0
+- 1 0 0 0 0 0 1
+- 1 -1 0 0 0 0 0
+- 1 0 -1 0 0 0 0
+- 1 0 0 -1 0 0 0
+- 1 0 0 0 -1 0 0
+- 1 0 0 0 0 -1 0
+- 1 0 0 0 0 0 -1
+-end
+diff --git a/build/pkgs/cddlib/tests/input/cubocta.ine b/build/pkgs/cddlib/tests/input/cubocta.ine
+deleted file mode 100644
+index 954666c..00000000
+--- a/build/pkgs/cddlib/tests/input/cubocta.ine
++++ /dev/null
+@@ -1,20 +0,0 @@
+-filename: cubocta.ine
+-Cuboctahedron
+-H-representation
+-begin
+- 14 4 integer
+- 1 1 0 0
+- 1 0 1 0
+- 1 0 0 1
+- 1 -1 0 0
+- 1 0 -1 0
+- 1 0 0 -1
+- 2 1 1 1
+- 2 -1 1 1
+- 2 1 -1 1
+- 2 1 1 -1
+- 2 -1 -1 1
+- 2 1 -1 -1
+- 2 -1 1 -1
+- 2 -1 -1 -1
+-end
+diff --git a/build/pkgs/cddlib/tests/input/cyclic10-4.ext b/build/pkgs/cddlib/tests/input/cyclic10-4.ext
+deleted file mode 100644
+index 84629a5..00000000
+--- a/build/pkgs/cddlib/tests/input/cyclic10-4.ext
++++ /dev/null
+@@ -1,16 +0,0 @@
+-* 3-dim cyclic polytope with 10 vertices
+-* Number of facets (outputs) =16
+-V-representation
+-begin
+-10 4 integer
+- 1 1 1 1
+- 1 2 4 8
+- 1 3 9 27
+- 1 4 16 64
+- 1 5 25 125
+- 1 6 36 216
+- 1 7 49 343
+- 1 8 64 512
+- 1 9 81 729
+- 1 10 100 1000
+-end
+diff --git a/build/pkgs/cddlib/tests/input/cyclic12-6.ext b/build/pkgs/cddlib/tests/input/cyclic12-6.ext
+deleted file mode 100644
+index 4dfa2f6..00000000
+--- a/build/pkgs/cddlib/tests/input/cyclic12-6.ext
++++ /dev/null
+@@ -1,18 +0,0 @@
+-* 5-dim cyclic polytope with12 vertices
+-* Number of facets (outputs) =72
+-V-representation
+-begin
+-12 6 integer
+- 1 1 1 1 1 1
+- 1 2 4 8 16 32
+- 1 3 9 27 81 243
+- 1 4 16 64 256 1024
+- 1 5 25 125 625 3125
+- 1 6 36 216 1296 7776
+- 1 7 49 343 2401 16807
+- 1 8 64 512 4096 32768
+- 1 9 81 729 6561 59049
+- 1 10 100 1000 10000 100000
+- 1 11 121 1331 14641 161051
+- 1 12 144 1728 20736 248832
+-end
+diff --git a/build/pkgs/cddlib/tests/input/empty.ine b/build/pkgs/cddlib/tests/input/empty.ine
+deleted file mode 100644
+index 1452c2c..00000000
+--- a/build/pkgs/cddlib/tests/input/empty.ine
++++ /dev/null
+@@ -1,6 +0,0 @@
+-H-representation
+-begin
+- 2 2 rational
+- -1 0
+- 1 0
+-end
+diff --git a/build/pkgs/cddlib/tests/input/ex1.ine b/build/pkgs/cddlib/tests/input/ex1.ine
+deleted file mode 100644
+index e04d917..00000000
+--- a/build/pkgs/cddlib/tests/input/ex1.ine
++++ /dev/null
+@@ -1,11 +0,0 @@
+-* file name: ex1.ine
+-* 2 dimensional polyhedron with three vertices (0,3), (-1, 4) and (-1,10) and
+-* two extremal rays (2,1) and (1,2).
+-H-representation
+-begin
+- 4 3 integer
+- 12 2 -1
+- -6 -1 2
+- -3 1 1
+- 1 1 0
+-end
+diff --git a/build/pkgs/cddlib/tests/input/infeas.ine b/build/pkgs/cddlib/tests/input/infeas.ine
+deleted file mode 100644
+index 394fc50..00000000
+--- a/build/pkgs/cddlib/tests/input/infeas.ine
++++ /dev/null
+@@ -1,23 +0,0 @@
+-* File name: infeas.ine
+-* The empty polytope. No vertices and rays.
+-H-representation
+-begin
+- 13 7 integer
+- 0 1 0 0 0 0 0
+- 0 0 1 0 0 0 0
+- 0 0 0 1 0 0 0
+- 0 0 0 0 1 0 0
+- 0 0 0 0 0 1 0
+- -2 1 0 0 0 0 0
+- 0 0 0 0 0 0 1
+- 1 -1 0 0 0 0 0
+- 1 0 -1 0 0 0 0
+- 1 0 0 -1 0 0 0
+- 1 0 0 0 -1 0 0
+- 1 0 0 0 0 -1 0
+- 1 0 0 0 0 0 -1
+-end
+-minimize
+- 0 1 1 1 1 1 1
+-debug
+-
+diff --git a/build/pkgs/cddlib/tests/input/irbox20-4.ext b/build/pkgs/cddlib/tests/input/irbox20-4.ext
+deleted file mode 100644
+index 501bb5c..00000000
+--- a/build/pkgs/cddlib/tests/input/irbox20-4.ext
++++ /dev/null
+@@ -1,26 +0,0 @@
+-* File name: irbox20-4.ext
+-* Randomly generated 20 integral points in [-100..100]^3
+-V-representation
+-begin
+- 20 4 integer
+- 1 -45 1 47
+- 1 -34 19 4
+- 1 5 -11 28
+- 1 17 -43 17
+- 1 -46 8 -15
+- 1 35 -26 -6
+- 1 41 -3 -8
+- 1 -39 41 34
+- 1 -46 49 40
+- 1 -18 -29 46
+- 1 -20 -25 -2
+- 1 -22 -9 -32
+- 1 31 46 5
+- 1 10 14 11
+- 1 -22 17 -29
+- 1 12 3 -5
+- 1 -44 -5 40
+- 1 -2 4 32
+- 1 -18 8 31
+- 1 -27 40 -48
+-end
+diff --git a/build/pkgs/cddlib/tests/input/nonfull.ine b/build/pkgs/cddlib/tests/input/nonfull.ine
+deleted file mode 100644
+index 3a66e17..00000000
+--- a/build/pkgs/cddlib/tests/input/nonfull.ine
++++ /dev/null
+@@ -1,12 +0,0 @@
+-* filename: nonfull.ine
+-* non full-dimensional polyhedron
+-H-representation
+-begin
+- 6 4 integer
+- 2 -1 0 0
+- -2 1 0 0
+- 2 0 -1 0
+- -1 1 0 0
+- -1 0 1 0
+- -1 0 0 1
+-end
+diff --git a/build/pkgs/cddlib/tests/input/origin.ine b/build/pkgs/cddlib/tests/input/origin.ine
+deleted file mode 100644
+index fc06da0..00000000
+--- a/build/pkgs/cddlib/tests/input/origin.ine
++++ /dev/null
+@@ -1,15 +0,0 @@
+-* filename: origin.ine
+-* The polytope consists of a single point, the origin.
+-* cddlib now works properly for this input (version 090c and up).
+-H-representation
+-begin
+- 7 7 integer
+- 0 1 0 0 0 0 0
+- 0 0 1 0 0 0 0
+- 0 0 0 1 0 0 0
+- 0 0 0 0 1 0 0
+- 0 0 0 0 0 1 0
+- 0 0 0 0 0 0 1
+- 0 -1 -1 -1 -1 -1 -1
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/input/reg24-5.ext b/build/pkgs/cddlib/tests/input/reg24-5.ext
+deleted file mode 100644
+index 83d2211..00000000
+--- a/build/pkgs/cddlib/tests/input/reg24-5.ext
++++ /dev/null
+@@ -1,31 +0,0 @@
+-* The vertices of a self-dual 4-dim regular polytope
+-* with 24 octahedron facets.
+-* We use hull option to compute all (24) facet inequalities.
+-V-representation
+-begin
+- 24 5 integer
+- 1 1 1 1 1
+- 1 1 1 1 -1
+- 1 1 1 -1 1
+- 1 1 1 -1 -1
+- 1 1 -1 1 1
+- 1 1 -1 1 -1
+- 1 1 -1 -1 1
+- 1 1 -1 -1 -1
+- 1 -1 1 1 1
+- 1 -1 1 1 -1
+- 1 -1 1 -1 1
+- 1 -1 1 -1 -1
+- 1 -1 -1 1 1
+- 1 -1 -1 1 -1
+- 1 -1 -1 -1 1
+- 1 -1 -1 -1 -1
+- 1 2 0 0 0
+- 1 0 2 0 0
+- 1 0 0 2 0
+- 1 0 0 0 2
+- 1 -2 0 0 0
+- 1 0 -2 0 0
+- 1 0 0 -2 0
+- 1 0 0 0 -2
+-end
+diff --git a/build/pkgs/cddlib/tests/input/reg24-5.ine b/build/pkgs/cddlib/tests/input/reg24-5.ine
+deleted file mode 100644
+index e8185d4..00000000
+--- a/build/pkgs/cddlib/tests/input/reg24-5.ine
++++ /dev/null
+@@ -1,30 +0,0 @@
+-* The facets of a self-dual 4-dim regular polytope
+-* with 24 octahedron facets.
+-H-representation
+-begin
+- 24 5 integer
+- 1 1 1 1 1
+- 1 1 1 1 -1
+- 1 1 1 -1 1
+- 1 1 1 -1 -1
+- 1 1 -1 1 1
+- 1 1 -1 1 -1
+- 1 1 -1 -1 1
+- 1 1 -1 -1 -1
+- 1 -1 1 1 1
+- 1 -1 1 1 -1
+- 1 -1 1 -1 1
+- 1 -1 1 -1 -1
+- 1 -1 -1 1 1
+- 1 -1 -1 1 -1
+- 1 -1 -1 -1 1
+- 1 -1 -1 -1 -1
+- 1 2 0 0 0
+- 1 0 2 0 0
+- 1 0 0 2 0
+- 1 0 0 0 2
+- 1 -2 0 0 0
+- 1 0 -2 0 0
+- 1 0 0 -2 0
+- 1 0 0 0 -2
+-end
+diff --git a/build/pkgs/cddlib/tests/input/sampleh1.ine b/build/pkgs/cddlib/tests/input/sampleh1.ine
+deleted file mode 100644
+index 2ca4c63..00000000
+--- a/build/pkgs/cddlib/tests/input/sampleh1.ine
++++ /dev/null
+@@ -1,10 +0,0 @@
+-* file name: sampleh1.ine
+-* a 3-D cone containing no vertices and a line
+-H-representation
+-begin
+- 3 4 integer
+- 2 -1 -1 0
+- 0 1 0 0
+- 0 0 1 0
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/input/sampleh2.ine b/build/pkgs/cddlib/tests/input/sampleh2.ine
+deleted file mode 100644
+index 44b8b64..00000000
+--- a/build/pkgs/cddlib/tests/input/sampleh2.ine
++++ /dev/null
+@@ -1,8 +0,0 @@
+-* file name: sampleh2.ine
+-* a hyperplane with no vertices and rays
+-H-representation
+-begin
+- 1 4 integer
+--1 0 0 1
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/input/sampleh3.ine b/build/pkgs/cddlib/tests/input/sampleh3.ine
+deleted file mode 100644
+index 705870f..00000000
+--- a/build/pkgs/cddlib/tests/input/sampleh3.ine
++++ /dev/null
+@@ -1,8 +0,0 @@
+-* file name: sampleh3.ine
+-* a 3-D homogeneous cone with no vertices
+-H-representation
+-begin
+- 2 4 integer
+- 0 1 1 0
+- 0 0 1 0
+-end
+diff --git a/build/pkgs/cddlib/tests/input/sampleh5.ine b/build/pkgs/cddlib/tests/input/sampleh5.ine
+deleted file mode 100644
+index 63834fb..00000000
+--- a/build/pkgs/cddlib/tests/input/sampleh5.ine
++++ /dev/null
+@@ -1,19 +0,0 @@
+-* file name: sampleh5.ine
+-* test file for redundancy removal
+-H-representation
+-linearity 1 3
+-begin
+- 10 4 integer
+- 0 1 0 0
+- 0 0 1 0
+- 0 0 0 1
+- 0 2 0 0
+- 0 0 0 3
+- 1 -1 -1 -1
+- 1 -1 -1 0
+- 1 0 -1 -1
+- 1 -1 0 -1
+- 2 -1 -1 -1
+-end
+-maximize
+- 0 1 1 1
+diff --git a/build/pkgs/cddlib/tests/input/sampleh6.ine b/build/pkgs/cddlib/tests/input/sampleh6.ine
+deleted file mode 100644
+index fff163a..00000000
+--- a/build/pkgs/cddlib/tests/input/sampleh6.ine
++++ /dev/null
+@@ -1,12 +0,0 @@
+-* file name: sampleh6.ine
+-* test file for forced-equality checking
+-H-representation
+-begin
+- 5 4 integer
+- 0 1 0 0
+- 0 0 1 0
+- 0 0 0 1
+- 1 -1 -1 -1
+--1 1 1 0
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/input/sampleh7.ine b/build/pkgs/cddlib/tests/input/sampleh7.ine
+deleted file mode 100644
+index 16f9130..00000000
+--- a/build/pkgs/cddlib/tests/input/sampleh7.ine
++++ /dev/null
+@@ -1,19 +0,0 @@
+-* test file for redundancy removal
+-* the redundant rows are
+-* 3 4 5 9 10
+-* LP type = 1 Seed = 123
+-H-representation
+-begin
+- 10 3 integer
+- 0 1 0
+- 0 0 1
+- -10000 651 693
+- -10000 697 637
+- -10000 368 824
+- -10000 87 725
+- -10000 387 219
+- -10000 430 202
+- -10000 356 988
+- -10000 674 979
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/input/samplelp1.ine b/build/pkgs/cddlib/tests/input/samplelp1.ine
+deleted file mode 100644
+index 92779f3..00000000
+--- a/build/pkgs/cddlib/tests/input/samplelp1.ine
++++ /dev/null
+@@ -1,15 +0,0 @@
+-* file name: samplelp1.ine
+-* LP
+-H-representation
+-begin
+- 6 4 integer
+- 1 1 0 0
+- 1 0 1 0
+- 1 0 0 1
+- 1 -1 0 0
+- 1 0 -1 0
+- 1 0 0 -1
+-end
+-maximize
+- 0 1 1 1
+-
+diff --git a/build/pkgs/cddlib/tests/input/samplelp2.ine b/build/pkgs/cddlib/tests/input/samplelp2.ine
+deleted file mode 100644
+index d5e865c..00000000
+--- a/build/pkgs/cddlib/tests/input/samplelp2.ine
++++ /dev/null
+@@ -1,14 +0,0 @@
+-* file name: samplelp2.ine
+-* LP
+-H-representation
+-linearity 2 3 4
+-begin
+- 4 5 rational
+- 0 1 1 0 0
+- 0 0 2 0 0
+- 3 0 -1 0 0
+- 9/2 0 0 -1 -1
+-end
+-minimize
+-0 2 3/5 0 0
+-
+diff --git a/build/pkgs/cddlib/tests/input/test.ext b/build/pkgs/cddlib/tests/input/test.ext
+deleted file mode 100644
+index 27d9a9a..00000000
+--- a/build/pkgs/cddlib/tests/input/test.ext
++++ /dev/null
+@@ -1,12 +0,0 @@
+-H-representation
+-begin
+- 8 4 rational
+- 0 1 0 0
+- 0 0 1 0
+- 0 0 0 1
+- 1 -1 -1 -1
+- 1 -1 -1 0
+- 1 0 -1 -1
+- 1 -1 0 -1
+- 2 -1 -1 -1
+-end
+diff --git a/build/pkgs/cddlib/tests/output/ccc4.ext b/build/pkgs/cddlib/tests/output/ccc4.ext
+deleted file mode 100644
+index cebbf92..00000000
+--- a/build/pkgs/cddlib/tests/output/ccc4.ext
++++ /dev/null
+@@ -1,58 +0,0 @@
+-V-representation
+-begin
+- 7 7 rational
+- 0 1 1 1 0 0 0
+- 0 0 1 1 1 1 0
+- 0 1 0 1 1 0 1
+- 0 1 1 0 0 1 1
+- 0 0 0 1 0 1 1
+- 0 0 1 0 1 0 1
+- 0 1 0 0 1 1 0
+-end
+-
+-H-representation
+-begin
+- 12 7 rational
+- 0 0 1 1 0 0 -1
+- 0 1 0 1 0 -1 0
+- 0 1 1 0 -1 0 0
+- 0 1 0 -1 0 1 0
+- 0 1 -1 0 1 0 0
+- 0 0 0 0 1 1 -1
+- 0 0 1 -1 0 0 1
+- 0 0 0 0 1 -1 1
+- 0 -1 1 0 1 0 0
+- 0 0 0 0 -1 1 1
+- 0 0 -1 1 0 0 1
+- 0 -1 0 1 0 1 0
+-end
+-
+-Vertex graph
+-begin
+- 7 7
+- 1 6 : 2 3 4 5 6 7
+- 2 6 : 1 3 4 5 6 7
+- 3 6 : 1 2 4 5 6 7
+- 4 6 : 1 2 3 5 6 7
+- 5 6 : 1 2 3 4 6 7
+- 6 6 : 1 2 3 4 5 7
+- 7 6 : 1 2 3 4 5 6
+-end
+-
+-Facet graph
+-begin
+- 12 12
+- 1 5 : 2 3 6 9 12
+- 2 5 : 1 3 5 8 11
+- 3 5 : 1 2 4 7 10
+- 4 5 : 3 5 6 7 10
+- 5 5 : 2 4 6 8 11
+- 6 5 : 1 4 5 9 12
+- 7 5 : 3 4 8 9 10
+- 8 5 : 2 5 7 9 11
+- 9 5 : 1 6 7 8 12
+- 10 5 : 3 4 7 11 12
+- 11 5 : 2 5 8 10 12
+- 12 5 : 1 6 9 10 11
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/ccc5.ext b/build/pkgs/cddlib/tests/output/ccc5.ext
+deleted file mode 100644
+index 99a5ae7..00000000
+--- a/build/pkgs/cddlib/tests/output/ccc5.ext
++++ /dev/null
+@@ -1,130 +0,0 @@
+-V-representation
+-begin
+- 15 11 rational
+- 0 1 1 1 1 0 0 0 0 0 0
+- 0 0 1 1 1 1 1 1 0 0 0
+- 0 1 0 1 1 1 0 0 1 1 0
+- 0 1 1 0 1 0 1 0 1 0 1
+- 0 1 1 1 0 0 0 1 0 1 1
+- 0 0 0 1 1 0 1 1 1 1 0
+- 0 0 1 0 1 1 0 1 1 0 1
+- 0 0 1 1 0 1 1 0 0 1 1
+- 0 1 0 0 1 1 1 0 0 1 1
+- 0 1 0 1 0 1 0 1 1 0 1
+- 0 1 1 0 0 0 1 1 1 1 0
+- 0 0 0 0 1 0 0 1 0 1 1
+- 0 0 0 1 0 0 1 0 1 0 1
+- 0 0 1 0 0 1 0 0 1 1 0
+- 0 1 0 0 0 1 1 1 0 0 0
+-end
+-
+-H-representation
+-begin
+- 40 11 rational
+- 0 0 0 1 1 0 0 0 0 0 -1
+- 0 1 0 0 1 0 0 -1 0 0 0
+- 0 0 1 0 1 0 0 0 0 -1 0
+- 0 -1 1 1 1 1 1 1 -1 -1 -1
+- 0 1 -1 1 1 1 -1 -1 1 1 -1
+- 0 1 1 -1 1 -1 1 -1 1 -1 1
+- 0 1 1 0 0 -1 0 0 0 0 0
+- 0 1 1 1 -1 -1 -1 1 -1 1 1
+- 0 1 0 1 0 0 -1 0 0 0 0
+- 0 0 1 1 0 0 0 0 -1 0 0
+- 0 1 1 -1 -1 -1 1 1 1 1 -1
+- 0 1 -1 1 -1 1 -1 1 1 -1 1
+- 0 -1 1 1 -1 1 1 -1 -1 1 1
+- 0 1 -1 -1 1 1 1 -1 -1 1 1
+- 0 -1 1 -1 1 1 -1 1 1 -1 1
+- 0 -1 -1 1 1 -1 1 1 1 1 -1
+- 0 0 0 0 0 0 -1 1 0 0 1
+- 0 0 0 0 0 0 0 0 -1 1 1
+- 0 0 0 1 -1 0 0 0 0 0 1
+- 0 0 0 0 0 -1 0 1 0 1 0
+- 0 0 1 0 -1 0 0 0 0 1 0
+- 0 1 0 0 -1 0 0 1 0 0 0
+- 0 1 0 -1 0 0 1 0 0 0 0
+- 0 0 1 -1 0 0 0 0 1 0 0
+- 0 0 0 0 0 -1 1 0 1 0 0
+- 0 1 -1 0 0 1 0 0 0 0 0
+- 0 0 0 0 0 1 1 0 -1 0 0
+- 0 0 0 0 0 1 -1 0 1 0 0
+- 0 -1 1 0 0 1 0 0 0 0 0
+- 0 0 -1 1 0 0 0 0 1 0 0
+- 0 -1 0 1 0 0 1 0 0 0 0
+- 0 0 0 -1 1 0 0 0 0 0 1
+- 0 0 0 0 0 0 0 0 1 -1 1
+- 0 0 0 0 0 0 1 -1 0 0 1
+- 0 0 0 0 0 1 0 -1 0 1 0
+- 0 0 0 0 0 0 0 0 1 1 -1
+- 0 0 -1 0 1 0 0 0 0 1 0
+- 0 0 0 0 0 0 1 1 0 0 -1
+- 0 0 0 0 0 1 0 1 0 -1 0
+- 0 -1 0 0 1 0 0 1 0 0 0
+-end
+-
+-Vertex graph
+-begin
+- 15 15
+- 1 14 : 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+- 2 14 : 1 3 4 5 6 7 8 9 10 11 12 13 14 15
+- 3 14 : 1 2 4 5 6 7 8 9 10 11 12 13 14 15
+- 4 14 : 1 2 3 5 6 7 8 9 10 11 12 13 14 15
+- 5 14 : 1 2 3 4 6 7 8 9 10 11 12 13 14 15
+- 6 14 : 1 2 3 4 5 7 8 9 10 11 12 13 14 15
+- 7 14 : 1 2 3 4 5 6 8 9 10 11 12 13 14 15
+- 8 14 : 1 2 3 4 5 6 7 9 10 11 12 13 14 15
+- 9 14 : 1 2 3 4 5 6 7 8 10 11 12 13 14 15
+- 10 14 : 1 2 3 4 5 6 7 8 9 11 12 13 14 15
+- 11 14 : 1 2 3 4 5 6 7 8 9 10 12 13 14 15
+- 12 14 : 1 2 3 4 5 6 7 8 9 10 11 13 14 15
+- 13 14 : 1 2 3 4 5 6 7 8 9 10 11 12 14 15
+- 14 14 : 1 2 3 4 5 6 7 8 9 10 11 12 13 15
+- 15 14 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14
+-end
+-
+-Facet graph
+-begin
+- 40 40
+- 1 22 : 2 3 4 5 7 9 10 16 20 25 26 27 28 29 30 31 35 36 37 38 39 40
+- 2 22 : 1 3 5 6 7 9 10 14 18 23 24 25 26 27 28 30 32 33 34 35 36 37
+- 3 22 : 1 2 4 6 7 9 10 15 17 23 24 25 27 28 29 31 32 33 34 38 39 40
+- 4 9 : 1 3 10 27 29 31 38 39 40
+- 5 9 : 1 2 9 26 28 30 35 36 37
+- 6 9 : 2 3 7 23 24 25 32 33 34
+- 7 22 : 1 2 3 6 8 9 10 11 17 18 19 20 21 22 23 24 25 32 33 34 36 38
+- 8 9 : 7 9 10 17 18 19 20 21 22
+- 9 22 : 1 2 3 5 7 8 10 12 17 18 19 20 21 22 26 28 30 33 35 36 37 39
+- 10 22 : 1 2 3 4 7 8 9 13 17 18 19 20 21 22 27 29 31 34 35 38 39 40
+- 11 9 : 7 20 21 22 23 24 25 36 38
+- 12 9 : 9 17 19 22 26 28 30 33 39
+- 13 9 : 10 18 19 21 27 29 31 34 35
+- 14 9 : 2 18 23 26 27 32 34 35 37
+- 15 9 : 3 17 24 28 29 32 33 39 40
+- 16 9 : 1 20 25 30 31 36 37 38 40
+- 17 22 : 3 7 8 9 10 12 15 18 19 20 21 22 24 26 28 29 30 32 33 37 39 40
+- 18 22 : 2 7 8 9 10 13 14 17 19 20 21 22 23 26 27 29 31 32 34 35 37 40
+- 19 22 : 7 8 9 10 12 13 17 18 20 21 22 25 26 27 28 29 30 31 33 34 35 39
+- 20 22 : 1 7 8 9 10 11 16 17 18 19 21 22 23 24 25 30 31 32 36 37 38 40
+- 21 22 : 7 8 9 10 11 13 17 18 19 20 22 23 24 25 27 28 29 31 34 35 36 38
+- 22 22 : 7 8 9 10 11 12 17 18 19 20 21 23 24 25 26 27 28 30 33 36 38 39
+- 23 22 : 2 3 6 7 11 14 18 20 21 22 24 25 26 27 32 33 34 35 36 37 38 39
+- 24 22 : 2 3 6 7 11 15 17 20 21 22 23 25 28 29 32 33 34 35 36 38 39 40
+- 25 22 : 1 2 3 6 7 11 16 19 20 21 22 23 24 30 31 32 33 34 36 37 38 40
+- 26 22 : 1 2 5 9 12 14 17 18 19 22 23 27 28 30 32 33 34 35 36 37 38 39
+- 27 22 : 1 2 3 4 10 13 14 18 19 21 22 23 26 29 31 32 34 35 37 38 39 40
+- 28 22 : 1 2 3 5 9 12 15 17 19 21 22 24 26 29 30 32 33 35 36 37 39 40
+- 29 22 : 1 3 4 10 13 15 17 18 19 21 24 27 28 31 32 33 34 35 36 38 39 40
+- 30 22 : 1 2 5 9 12 16 17 19 20 22 25 26 28 31 33 34 35 36 37 38 39 40
+- 31 22 : 1 3 4 10 13 16 18 19 20 21 25 27 29 30 33 34 35 36 37 38 39 40
+- 32 22 : 2 3 6 7 14 15 17 18 20 23 24 25 26 27 28 29 33 34 35 37 39 40
+- 33 22 : 2 3 6 7 9 12 15 17 19 22 23 24 25 26 28 29 30 31 32 34 39 40
+- 34 22 : 2 3 6 7 10 13 14 18 19 21 23 24 25 26 27 29 30 31 32 33 35 37
+- 35 22 : 1 2 5 9 10 13 14 18 19 21 23 24 26 27 28 29 30 31 32 34 36 37
+- 36 22 : 1 2 5 7 9 11 16 20 21 22 23 24 25 26 28 29 30 31 35 37 38 40
+- 37 22 : 1 2 5 9 14 16 17 18 20 23 25 26 27 28 30 31 32 34 35 36 38 40
+- 38 22 : 1 3 4 7 10 11 16 20 21 22 23 24 25 26 27 29 30 31 36 37 39 40
+- 39 22 : 1 3 4 9 10 12 15 17 19 22 23 24 26 27 28 29 30 31 32 33 38 40
+- 40 22 : 1 3 4 10 15 16 17 18 20 24 25 27 28 29 30 31 32 33 36 37 38 39
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/ccp4.ext b/build/pkgs/cddlib/tests/output/ccp4.ext
+deleted file mode 100644
+index bce53a8..00000000
+--- a/build/pkgs/cddlib/tests/output/ccp4.ext
++++ /dev/null
+@@ -1,68 +0,0 @@
+-V-representation
+-begin
+- 8 7 rational
+- 1 0 0 0 0 0 0
+- 1 1 1 1 0 0 0
+- 1 0 1 1 1 1 0
+- 1 1 0 1 1 0 1
+- 1 1 1 0 0 1 1
+- 1 0 0 1 0 1 1
+- 1 0 1 0 1 0 1
+- 1 1 0 0 1 1 0
+-end
+-
+-H-representation
+-begin
+- 16 7 rational
+- 0 0 1 1 0 0 -1
+- 0 1 0 1 0 -1 0
+- 0 1 1 0 -1 0 0
+- 2 0 0 0 -1 -1 -1
+- 2 0 -1 -1 0 0 -1
+- 2 -1 0 -1 0 -1 0
+- 2 -1 -1 0 -1 0 0
+- 0 1 0 -1 0 1 0
+- 0 1 -1 0 1 0 0
+- 0 0 0 0 1 1 -1
+- 0 0 1 -1 0 0 1
+- 0 0 0 0 1 -1 1
+- 0 -1 1 0 1 0 0
+- 0 0 0 0 -1 1 1
+- 0 0 -1 1 0 0 1
+- 0 -1 0 1 0 1 0
+-end
+-
+-Vertex graph
+-begin
+- 8 8
+- 1 7 : 2 3 4 5 6 7 8
+- 2 7 : 1 3 4 5 6 7 8
+- 3 7 : 1 2 4 5 6 7 8
+- 4 7 : 1 2 3 5 6 7 8
+- 5 7 : 1 2 3 4 6 7 8
+- 6 7 : 1 2 3 4 5 7 8
+- 7 7 : 1 2 3 4 5 6 8
+- 8 7 : 1 2 3 4 5 6 7
+-end
+-
+-Facet graph
+-begin
+- 16 16
+- 1 6 : 2 3 4 10 13 16
+- 2 6 : 1 3 4 9 12 15
+- 3 6 : 1 2 4 8 11 14
+- 4 6 : 1 2 3 5 6 7
+- 5 6 : 4 6 7 8 9 10
+- 6 6 : 4 5 7 11 12 13
+- 7 6 : 4 5 6 14 15 16
+- 8 6 : 3 5 9 10 11 14
+- 9 6 : 2 5 8 10 12 15
+- 10 6 : 1 5 8 9 13 16
+- 11 6 : 3 6 8 12 13 14
+- 12 6 : 2 6 9 11 13 15
+- 13 6 : 1 6 10 11 12 16
+- 14 6 : 3 7 8 11 15 16
+- 15 6 : 2 7 9 12 14 16
+- 16 6 : 1 7 10 13 14 15
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/ccp5.ext b/build/pkgs/cddlib/tests/output/ccp5.ext
+deleted file mode 100644
+index f84160f..00000000
+--- a/build/pkgs/cddlib/tests/output/ccp5.ext
++++ /dev/null
+@@ -1,164 +0,0 @@
+-V-representation
+-begin
+- 16 11 rational
+- 1 0 0 0 0 0 0 0 0 0 0
+- 1 1 1 1 1 0 0 0 0 0 0
+- 1 0 1 1 1 1 1 1 0 0 0
+- 1 1 0 1 1 1 0 0 1 1 0
+- 1 1 1 0 1 0 1 0 1 0 1
+- 1 1 1 1 0 0 0 1 0 1 1
+- 1 0 0 1 1 0 1 1 1 1 0
+- 1 0 1 0 1 1 0 1 1 0 1
+- 1 0 1 1 0 1 1 0 0 1 1
+- 1 1 0 0 1 1 1 0 0 1 1
+- 1 1 0 1 0 1 0 1 1 0 1
+- 1 1 1 0 0 0 1 1 1 1 0
+- 1 0 0 0 1 0 0 1 0 1 1
+- 1 0 0 1 0 0 1 0 1 0 1
+- 1 0 1 0 0 1 0 0 1 1 0
+- 1 1 0 0 0 1 1 1 0 0 0
+-end
+-
+-H-representation
+-begin
+- 56 11 rational
+- 2 0 0 0 0 0 0 0 -1 -1 -1
+- 0 0 0 1 1 0 0 0 0 0 -1
+- 2 0 0 0 0 0 -1 -1 0 0 -1
+- 0 1 0 0 1 0 0 -1 0 0 0
+- 0 0 1 0 1 0 0 0 0 -1 0
+- 2 0 0 0 0 -1 0 -1 0 -1 0
+- 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+- 0 -1 1 1 1 1 1 1 -1 -1 -1
+- 0 1 -1 1 1 1 -1 -1 1 1 -1
+- 0 1 1 -1 1 -1 1 -1 1 -1 1
+- 0 1 1 0 0 -1 0 0 0 0 0
+- 2 1 1 1 1 -1 -1 -1 -1 -1 -1
+- 0 1 1 1 -1 -1 -1 1 -1 1 1
+- 0 1 0 1 0 0 -1 0 0 0 0
+- 0 0 1 1 0 0 0 0 -1 0 0
+- 2 0 0 0 0 -1 -1 0 -1 0 0
+- 0 1 1 -1 -1 -1 1 1 1 1 -1
+- 0 1 -1 1 -1 1 -1 1 1 -1 1
+- 0 -1 1 1 -1 1 1 -1 -1 1 1
+- 2 -1 -1 -1 1 -1 -1 1 -1 1 1
+- 2 1 -1 -1 -1 1 1 1 -1 -1 -1
+- 0 1 -1 -1 1 1 1 -1 -1 1 1
+- 2 -1 1 -1 -1 1 -1 -1 1 1 -1
+- 0 -1 1 -1 1 1 -1 1 1 -1 1
+- 0 -1 -1 1 1 -1 1 1 1 1 -1
+- 2 -1 -1 1 -1 -1 1 -1 1 -1 1
+- 0 0 0 0 0 0 -1 1 0 0 1
+- 0 0 0 0 0 0 0 0 -1 1 1
+- 0 0 0 1 -1 0 0 0 0 0 1
+- 0 0 0 0 0 -1 0 1 0 1 0
+- 0 0 1 0 -1 0 0 0 0 1 0
+- 0 1 0 0 -1 0 0 1 0 0 0
+- 0 1 0 -1 0 0 1 0 0 0 0
+- 0 0 1 -1 0 0 0 0 1 0 0
+- 0 0 0 0 0 -1 1 0 1 0 0
+- 0 1 -1 0 0 1 0 0 0 0 0
+- 0 0 0 0 0 1 1 0 -1 0 0
+- 2 0 -1 -1 0 0 0 0 -1 0 0
+- 0 0 0 0 0 1 -1 0 1 0 0
+- 0 -1 1 0 0 1 0 0 0 0 0
+- 2 -1 0 -1 0 0 -1 0 0 0 0
+- 0 0 -1 1 0 0 0 0 1 0 0
+- 0 -1 0 1 0 0 1 0 0 0 0
+- 2 -1 -1 0 0 -1 0 0 0 0 0
+- 0 0 0 -1 1 0 0 0 0 0 1
+- 0 0 0 0 0 0 0 0 1 -1 1
+- 0 0 0 0 0 0 1 -1 0 0 1
+- 0 0 0 0 0 1 0 -1 0 1 0
+- 0 0 0 0 0 0 0 0 1 1 -1
+- 0 0 -1 0 1 0 0 0 0 1 0
+- 0 0 0 0 0 0 1 1 0 0 -1
+- 2 0 0 -1 -1 0 0 0 0 0 -1
+- 0 0 0 0 0 1 0 1 0 -1 0
+- 2 0 -1 0 -1 0 0 0 0 -1 0
+- 2 -1 0 0 -1 0 0 -1 0 0 0
+- 0 -1 0 0 1 0 0 1 0 0 0
+-end
+-
+-Vertex graph
+-begin
+- 16 16
+- 1 15 : 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+- 2 15 : 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+- 3 15 : 1 2 4 5 6 7 8 9 10 11 12 13 14 15 16
+- 4 15 : 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16
+- 5 15 : 1 2 3 4 6 7 8 9 10 11 12 13 14 15 16
+- 6 15 : 1 2 3 4 5 7 8 9 10 11 12 13 14 15 16
+- 7 15 : 1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
+- 8 15 : 1 2 3 4 5 6 7 9 10 11 12 13 14 15 16
+- 9 15 : 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16
+- 10 15 : 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16
+- 11 15 : 1 2 3 4 5 6 7 8 9 10 12 13 14 15 16
+- 12 15 : 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16
+- 13 15 : 1 2 3 4 5 6 7 8 9 10 11 12 14 15 16
+- 14 15 : 1 2 3 4 5 6 7 8 9 10 11 12 13 15 16
+- 15 15 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16
+- 16 15 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+-end
+-
+-Facet graph
+-begin
+- 56 56
+- 1 28 : 2 3 4 5 6 7 8 11 12 14 15 16 21 32 33 36 37 38 40 41 43 44 51 52 53 54 55 56
+- 2 28 : 1 3 4 5 6 8 9 11 12 14 15 16 25 30 35 36 37 39 40 42 43 44 48 49 50 51 53 56
+- 3 28 : 1 2 4 5 6 7 9 11 12 14 15 16 23 31 34 36 38 39 40 41 42 44 48 49 50 52 54 55
+- 4 28 : 1 2 3 5 6 9 10 11 12 14 15 16 22 28 33 34 35 36 37 38 39 42 45 46 47 48 49 50
+- 5 28 : 1 2 3 4 6 8 10 11 12 14 15 16 24 27 33 34 35 37 39 40 41 43 45 46 47 51 53 56
+- 6 28 : 1 2 3 4 5 7 10 11 12 14 15 16 26 29 33 34 35 38 41 42 43 44 45 46 47 52 54 55
+- 7 10 : 1 3 6 16 38 41 44 52 54 55
+- 8 10 : 1 2 5 15 37 40 43 51 53 56
+- 9 10 : 2 3 4 14 36 39 42 48 49 50
+- 10 10 : 4 5 6 11 33 34 35 45 46 47
+- 11 28 : 1 2 3 4 5 6 10 12 13 14 15 16 17 27 28 29 30 31 32 33 34 35 45 46 47 49 51 52
+- 12 10 : 1 2 3 4 5 6 11 14 15 16
+- 13 10 : 11 14 15 16 27 28 29 30 31 32
+- 14 28 : 1 2 3 4 5 6 9 11 12 13 15 16 18 27 28 29 30 31 32 36 39 42 46 48 49 50 53 54
+- 15 28 : 1 2 3 4 5 6 8 11 12 13 14 16 19 27 28 29 30 31 32 37 40 43 47 48 51 53 55 56
+- 16 28 : 1 2 3 4 5 6 7 11 12 13 14 15 20 27 28 29 30 31 32 38 41 44 45 50 52 54 55 56
+- 17 10 : 11 30 31 32 33 34 35 49 51 52
+- 18 10 : 14 27 29 32 36 39 42 46 53 54
+- 19 10 : 15 28 29 31 37 40 43 47 48 55
+- 20 10 : 16 27 28 30 38 41 44 45 50 56
+- 21 10 : 1 32 33 36 37 38 51 52 53 54
+- 22 10 : 4 28 33 36 37 38 45 47 48 50
+- 23 10 : 3 31 34 39 40 41 48 49 52 55
+- 24 10 : 5 27 34 39 40 41 45 46 53 56
+- 25 10 : 2 30 35 42 43 44 49 50 51 56
+- 26 10 : 6 29 35 42 43 44 46 47 54 55
+- 27 28 : 5 11 13 14 15 16 18 20 24 28 29 30 31 32 34 36 38 39 40 41 42 44 45 46 50 53 54 56
+- 28 28 : 4 11 13 14 15 16 19 20 22 27 29 30 31 32 33 36 37 38 40 41 43 44 45 47 48 50 55 56
+- 29 28 : 6 11 13 14 15 16 18 19 26 27 28 30 31 32 35 36 37 39 40 42 43 44 46 47 48 53 54 55
+- 30 28 : 2 11 13 14 15 16 17 20 25 27 28 29 31 32 33 34 35 38 41 42 43 44 45 49 50 51 52 56
+- 31 28 : 3 11 13 14 15 16 17 19 23 27 28 29 30 32 33 34 35 37 39 40 41 43 47 48 49 51 52 55
+- 32 28 : 1 11 13 14 15 16 17 18 21 27 28 29 30 31 33 34 35 36 37 38 39 42 46 49 51 52 53 54
+- 33 28 : 1 4 5 6 10 11 17 21 22 28 30 31 32 34 35 36 37 38 45 46 47 48 49 50 51 52 53 54
+- 34 28 : 3 4 5 6 10 11 17 23 24 27 30 31 32 33 35 39 40 41 45 46 47 48 49 51 52 53 55 56
+- 35 28 : 2 4 5 6 10 11 17 25 26 29 30 31 32 33 34 42 43 44 45 46 47 49 50 51 52 54 55 56
+- 36 28 : 1 2 3 4 9 14 18 21 22 27 28 29 32 33 37 38 39 42 45 46 47 48 49 50 51 52 53 54
+- 37 28 : 1 2 4 5 8 15 19 21 22 28 29 31 32 33 36 38 40 43 45 47 48 50 51 52 53 54 55 56
+- 38 28 : 1 3 4 6 7 16 20 21 22 27 28 30 32 33 36 37 41 44 45 47 48 50 51 52 53 54 55 56
+- 39 28 : 2 3 4 5 9 14 18 23 24 27 29 31 32 34 36 40 41 42 45 46 48 49 50 52 53 54 55 56
+- 40 28 : 1 2 3 5 8 15 19 23 24 27 28 29 31 34 37 39 41 43 45 46 47 48 49 51 52 53 55 56
+- 41 28 : 1 3 5 6 7 16 20 23 24 27 28 30 31 34 38 39 40 44 45 46 48 49 50 52 53 54 55 56
+- 42 28 : 2 3 4 6 9 14 18 25 26 27 29 30 32 35 36 39 43 44 46 47 48 49 50 51 53 54 55 56
+- 43 28 : 1 2 5 6 8 15 19 25 26 28 29 30 31 35 37 40 42 44 46 47 48 49 50 51 53 54 55 56
+- 44 28 : 1 2 3 6 7 16 20 25 26 27 28 29 30 35 38 41 42 43 45 46 47 49 50 51 52 54 55 56
+- 45 28 : 4 5 6 10 11 16 20 22 24 27 28 30 33 34 35 36 37 38 39 40 41 44 46 47 48 50 53 56
+- 46 28 : 4 5 6 10 11 14 18 24 26 27 29 32 33 34 35 36 39 40 41 42 43 44 45 47 53 54 55 56
+- 47 28 : 4 5 6 10 11 15 19 22 26 28 29 31 33 34 35 36 37 38 40 42 43 44 45 46 48 50 54 55
+- 48 28 : 2 3 4 9 14 15 19 22 23 28 29 31 33 34 36 37 38 39 40 41 42 43 45 47 49 50 52 55
+- 49 28 : 2 3 4 9 11 14 17 23 25 30 31 32 33 34 35 36 39 40 41 42 43 44 48 50 51 52 55 56
+- 50 28 : 2 3 4 9 14 16 20 22 25 27 28 30 33 35 36 37 38 39 41 42 43 44 45 47 48 49 51 56
+- 51 28 : 1 2 5 8 11 15 17 21 25 30 31 32 33 34 35 36 37 38 40 42 43 44 49 50 52 53 54 56
+- 52 28 : 1 3 6 7 11 16 17 21 23 30 31 32 33 34 35 36 37 38 39 40 41 44 48 49 51 53 54 55
+- 53 28 : 1 2 5 8 14 15 18 21 24 27 29 32 33 34 36 37 38 39 40 41 42 43 45 46 51 52 54 56
+- 54 28 : 1 3 6 7 14 16 18 21 26 27 29 32 33 35 36 37 38 39 41 42 43 44 46 47 51 52 53 55
+- 55 28 : 1 3 6 7 15 16 19 23 26 28 29 31 34 35 37 38 39 40 41 42 43 44 46 47 48 49 52 54
+- 56 28 : 1 2 5 8 15 16 20 24 25 27 28 30 34 35 37 38 39 40 41 42 43 44 45 46 49 50 51 53
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/cube10.ine b/build/pkgs/cddlib/tests/output/cube10.ine
+deleted file mode 100644
+index 8b632c9..00000000
+--- a/build/pkgs/cddlib/tests/output/cube10.ine
++++ /dev/null
+@@ -1,43 +0,0 @@
+-V-representation
+-begin
+- 0 11 rational
+-end
+-
+-H-representation
+-linearity 11 1 2 3 4 5 6 7 8 9 10 11
+-begin
+- 11 11 rational
+- 1 0 0 0 0 0 0 0 0 0 1
+- 1 1 0 0 0 0 0 0 0 0 0
+- 1 0 1 0 0 0 0 0 0 0 0
+- 1 0 0 1 0 0 0 0 0 0 0
+- 1 0 0 0 1 0 0 0 0 0 0
+- 1 0 0 0 0 1 0 0 0 0 0
+- 1 0 0 0 0 0 1 0 0 0 0
+- 1 0 0 0 0 0 0 1 0 0 0
+- 1 0 0 0 0 0 0 0 1 0 0
+- 1 0 0 0 0 0 0 0 0 1 0
+- 1 0 0 0 0 0 0 0 0 0 -1
+-end
+-
+-Vertex graph
+-begin
+- 0 0
+-end
+-
+-Facet graph
+-begin
+- 11 11
+- 1 0 :
+- 2 0 :
+- 3 0 :
+- 4 0 :
+- 5 0 :
+- 6 0 :
+- 7 0 :
+- 8 0 :
+- 9 0 :
+- 10 0 :
+- 11 0 :
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/cube6.ine b/build/pkgs/cddlib/tests/output/cube6.ine
+deleted file mode 100644
+index 9acfe41..00000000
+--- a/build/pkgs/cddlib/tests/output/cube6.ine
++++ /dev/null
+@@ -1,172 +0,0 @@
+-V-representation
+-begin
+- 64 7 rational
+- 1 1 -1 -1 -1 -1 -1
+- 1 1 -1 -1 -1 -1 1
+- 1 1 -1 -1 -1 1 -1
+- 1 1 -1 -1 -1 1 1
+- 1 1 -1 -1 1 -1 -1
+- 1 1 -1 -1 1 -1 1
+- 1 1 -1 -1 1 1 -1
+- 1 1 -1 -1 1 1 1
+- 1 1 -1 1 -1 -1 -1
+- 1 1 -1 1 -1 -1 1
+- 1 1 -1 1 -1 1 -1
+- 1 1 -1 1 -1 1 1
+- 1 1 -1 1 1 -1 -1
+- 1 1 -1 1 1 -1 1
+- 1 1 -1 1 1 1 -1
+- 1 1 -1 1 1 1 1
+- 1 1 1 1 -1 -1 -1
+- 1 1 1 1 -1 -1 1
+- 1 1 1 1 -1 1 -1
+- 1 1 1 1 -1 1 1
+- 1 1 1 1 1 1 -1
+- 1 1 1 1 1 1 1
+- 1 1 1 1 1 -1 1
+- 1 1 1 1 1 -1 -1
+- 1 1 1 -1 1 1 1
+- 1 1 1 -1 1 1 -1
+- 1 1 1 -1 1 -1 1
+- 1 1 1 -1 1 -1 -1
+- 1 1 1 -1 -1 1 1
+- 1 1 1 -1 -1 1 -1
+- 1 1 1 -1 -1 -1 1
+- 1 1 1 -1 -1 -1 -1
+- 1 -1 1 1 1 1 1
+- 1 -1 1 1 1 1 -1
+- 1 -1 1 1 1 -1 1
+- 1 -1 1 1 1 -1 -1
+- 1 -1 1 1 -1 1 1
+- 1 -1 1 1 -1 1 -1
+- 1 -1 1 1 -1 -1 1
+- 1 -1 1 1 -1 -1 -1
+- 1 -1 1 -1 1 1 1
+- 1 -1 1 -1 1 1 -1
+- 1 -1 1 -1 1 -1 1
+- 1 -1 1 -1 1 -1 -1
+- 1 -1 1 -1 -1 1 1
+- 1 -1 1 -1 -1 1 -1
+- 1 -1 1 -1 -1 -1 1
+- 1 -1 1 -1 -1 -1 -1
+- 1 -1 -1 1 1 1 1
+- 1 -1 -1 1 1 1 -1
+- 1 -1 -1 1 1 -1 1
+- 1 -1 -1 1 1 -1 -1
+- 1 -1 -1 1 -1 1 1
+- 1 -1 -1 1 -1 1 -1
+- 1 -1 -1 1 -1 -1 1
+- 1 -1 -1 1 -1 -1 -1
+- 1 -1 -1 -1 1 1 1
+- 1 -1 -1 -1 1 1 -1
+- 1 -1 -1 -1 1 -1 1
+- 1 -1 -1 -1 1 -1 -1
+- 1 -1 -1 -1 -1 1 1
+- 1 -1 -1 -1 -1 1 -1
+- 1 -1 -1 -1 -1 -1 1
+- 1 -1 -1 -1 -1 -1 -1
+-end
+-
+-H-representation
+-begin
+- 12 7 rational
+- 1 1 0 0 0 0 0
+- 1 0 1 0 0 0 0
+- 1 0 0 1 0 0 0
+- 1 0 0 0 1 0 0
+- 1 0 0 0 0 1 0
+- 1 0 0 0 0 0 1
+- 1 -1 0 0 0 0 0
+- 1 0 -1 0 0 0 0
+- 1 0 0 -1 0 0 0
+- 1 0 0 0 -1 0 0
+- 1 0 0 0 0 -1 0
+- 1 0 0 0 0 0 -1
+-end
+-
+-Vertex graph
+-begin
+- 64 64
+- 1 6 : 2 3 5 9 32 64
+- 2 6 : 1 4 6 10 31 63
+- 3 6 : 1 4 7 11 30 62
+- 4 6 : 2 3 8 12 29 61
+- 5 6 : 1 6 7 13 28 60
+- 6 6 : 2 5 8 14 27 59
+- 7 6 : 3 5 8 15 26 58
+- 8 6 : 4 6 7 16 25 57
+- 9 6 : 1 10 11 13 17 56
+- 10 6 : 2 9 12 14 18 55
+- 11 6 : 3 9 12 15 19 54
+- 12 6 : 4 10 11 16 20 53
+- 13 6 : 5 9 14 15 24 52
+- 14 6 : 6 10 13 16 23 51
+- 15 6 : 7 11 13 16 21 50
+- 16 6 : 8 12 14 15 22 49
+- 17 6 : 9 18 19 24 32 40
+- 18 6 : 10 17 20 23 31 39
+- 19 6 : 11 17 20 21 30 38
+- 20 6 : 12 18 19 22 29 37
+- 21 6 : 15 19 22 24 26 34
+- 22 6 : 16 20 21 23 25 33
+- 23 6 : 14 18 22 24 27 35
+- 24 6 : 13 17 21 23 28 36
+- 25 6 : 8 22 26 27 29 41
+- 26 6 : 7 21 25 28 30 42
+- 27 6 : 6 23 25 28 31 43
+- 28 6 : 5 24 26 27 32 44
+- 29 6 : 4 20 25 30 31 45
+- 30 6 : 3 19 26 29 32 46
+- 31 6 : 2 18 27 29 32 47
+- 32 6 : 1 17 28 30 31 48
+- 33 6 : 22 34 35 37 41 49
+- 34 6 : 21 33 36 38 42 50
+- 35 6 : 23 33 36 39 43 51
+- 36 6 : 24 34 35 40 44 52
+- 37 6 : 20 33 38 39 45 53
+- 38 6 : 19 34 37 40 46 54
+- 39 6 : 18 35 37 40 47 55
+- 40 6 : 17 36 38 39 48 56
+- 41 6 : 25 33 42 43 45 57
+- 42 6 : 26 34 41 44 46 58
+- 43 6 : 27 35 41 44 47 59
+- 44 6 : 28 36 42 43 48 60
+- 45 6 : 29 37 41 46 47 61
+- 46 6 : 30 38 42 45 48 62
+- 47 6 : 31 39 43 45 48 63
+- 48 6 : 32 40 44 46 47 64
+- 49 6 : 16 33 50 51 53 57
+- 50 6 : 15 34 49 52 54 58
+- 51 6 : 14 35 49 52 55 59
+- 52 6 : 13 36 50 51 56 60
+- 53 6 : 12 37 49 54 55 61
+- 54 6 : 11 38 50 53 56 62
+- 55 6 : 10 39 51 53 56 63
+- 56 6 : 9 40 52 54 55 64
+- 57 6 : 8 41 49 58 59 61
+- 58 6 : 7 42 50 57 60 62
+- 59 6 : 6 43 51 57 60 63
+- 60 6 : 5 44 52 58 59 64
+- 61 6 : 4 45 53 57 62 63
+- 62 6 : 3 46 54 58 61 64
+- 63 6 : 2 47 55 59 61 64
+- 64 6 : 1 48 56 60 62 63
+-end
+-
+-Facet graph
+-begin
+- 12 12
+- 1 10 : 2 3 4 5 6 8 9 10 11 12
+- 2 10 : 1 3 4 5 6 7 9 10 11 12
+- 3 10 : 1 2 4 5 6 7 8 10 11 12
+- 4 10 : 1 2 3 5 6 7 8 9 11 12
+- 5 10 : 1 2 3 4 6 7 8 9 10 12
+- 6 10 : 1 2 3 4 5 7 8 9 10 11
+- 7 10 : 2 3 4 5 6 8 9 10 11 12
+- 8 10 : 1 3 4 5 6 7 9 10 11 12
+- 9 10 : 1 2 4 5 6 7 8 10 11 12
+- 10 10 : 1 2 3 5 6 7 8 9 11 12
+- 11 10 : 1 2 3 4 6 7 8 9 10 12
+- 12 10 : 1 2 3 4 5 7 8 9 10 11
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/cubocta.ine b/build/pkgs/cddlib/tests/output/cubocta.ine
+deleted file mode 100644
+index ef39f3d..00000000
+--- a/build/pkgs/cddlib/tests/output/cubocta.ine
++++ /dev/null
+@@ -1,72 +0,0 @@
+-V-representation
+-begin
+- 12 4 rational
+- 1 0 -1 1
+- 1 -1 0 1
+- 1 0 1 1
+- 1 1 0 1
+- 1 1 1 0
+- 1 1 0 -1
+- 1 1 -1 0
+- 1 0 1 -1
+- 1 -1 1 0
+- 1 -1 0 -1
+- 1 0 -1 -1
+- 1 -1 -1 0
+-end
+-
+-H-representation
+-begin
+- 14 4 rational
+- 1 1 0 0
+- 1 0 1 0
+- 1 0 0 1
+- 1 -1 0 0
+- 1 0 -1 0
+- 1 0 0 -1
+- 2 1 1 1
+- 2 -1 1 1
+- 2 1 -1 1
+- 2 1 1 -1
+- 2 -1 -1 1
+- 2 1 -1 -1
+- 2 -1 1 -1
+- 2 -1 -1 -1
+-end
+-
+-Vertex graph
+-begin
+- 12 12
+- 1 4 : 2 4 7 12
+- 2 4 : 1 3 9 12
+- 3 4 : 2 4 5 9
+- 4 4 : 1 3 5 7
+- 5 4 : 3 4 6 8
+- 6 4 : 5 7 8 11
+- 7 4 : 1 4 6 11
+- 8 4 : 5 6 9 10
+- 9 4 : 2 3 8 10
+- 10 4 : 8 9 11 12
+- 11 4 : 6 7 10 12
+- 12 4 : 1 2 10 11
+-end
+-
+-Facet graph
+-begin
+- 14 14
+- 1 4 : 7 9 10 12
+- 2 4 : 7 8 10 13
+- 3 4 : 7 8 9 11
+- 4 4 : 8 11 13 14
+- 5 4 : 9 11 12 14
+- 6 4 : 10 12 13 14
+- 7 3 : 1 2 3
+- 8 3 : 2 3 4
+- 9 3 : 1 3 5
+- 10 3 : 1 2 6
+- 11 3 : 3 4 5
+- 12 3 : 1 5 6
+- 13 3 : 2 4 6
+- 14 3 : 4 5 6
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/cyclic10-4.ext b/build/pkgs/cddlib/tests/output/cyclic10-4.ext
+deleted file mode 100644
+index 7fab01f..00000000
+--- a/build/pkgs/cddlib/tests/output/cyclic10-4.ext
++++ /dev/null
+@@ -1,72 +0,0 @@
+-V-representation
+-begin
+- 10 4 rational
+- 1 1 1 1
+- 1 2 4 8
+- 1 3 9 27
+- 1 4 16 64
+- 1 5 25 125
+- 1 6 36 216
+- 1 7 49 343
+- 1 8 64 512
+- 1 9 81 729
+- 1 10 100 1000
+-end
+-
+-H-representation
+-begin
+- 16 4 rational
+- -72 89 -18 1
+- -42 55 -14 1
+- -20 29 -10 1
+- -12 19 -8 1
+- -6 11 -6 1
+- -30 41 -12 1
+- -56 71 -16 1
+- 560 -206 25 -1
+- 300 -140 21 -1
+- 20 -32 13 -1
+- 60 -56 15 -1
+- 120 -82 17 -1
+- 200 -110 19 -1
+- 420 -172 23 -1
+- -90 109 -20 1
+- 720 -242 27 -1
+-end
+-
+-Vertex graph
+-begin
+- 10 10
+- 1 9 : 2 3 4 5 6 7 8 9 10
+- 2 3 : 1 3 10
+- 3 4 : 1 2 4 10
+- 4 4 : 1 3 5 10
+- 5 4 : 1 4 6 10
+- 6 4 : 1 5 7 10
+- 7 4 : 1 6 8 10
+- 8 4 : 1 7 9 10
+- 9 3 : 1 8 10
+- 10 9 : 1 2 3 4 5 6 7 8 9
+-end
+-
+-Facet graph
+-begin
+- 16 16
+- 1 3 : 7 15 16
+- 2 3 : 6 7 14
+- 3 3 : 4 6 13
+- 4 3 : 3 5 12
+- 5 3 : 4 10 11
+- 6 3 : 2 3 9
+- 7 3 : 1 2 8
+- 8 3 : 7 14 16
+- 9 3 : 6 13 14
+- 10 3 : 5 11 15
+- 11 3 : 5 10 12
+- 12 3 : 4 11 13
+- 13 3 : 3 9 12
+- 14 3 : 2 8 9
+- 15 3 : 1 10 16
+- 16 3 : 1 8 15
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/cyclic12-6.ext b/build/pkgs/cddlib/tests/output/cyclic12-6.ext
+deleted file mode 100644
+index ee6ba4b..00000000
+--- a/build/pkgs/cddlib/tests/output/cyclic12-6.ext
++++ /dev/null
+@@ -1,188 +0,0 @@
+-V-representation
+-begin
+- 12 6 rational
+- 1 1 1 1 1 1
+- 1 2 4 8 16 32
+- 1 3 9 27 81 243
+- 1 4 16 64 256 1024
+- 1 5 25 125 625 3125
+- 1 6 36 216 1296 7776
+- 1 7 49 343 2401 16807
+- 1 8 64 512 4096 32768
+- 1 9 81 729 6561 59049
+- 1 10 100 1000 10000 100000
+- 1 11 121 1331 14641 161051
+- 1 12 144 1728 20736 248832
+-end
+-
+-H-representation
+-begin
+- 72 6 rational
+- -7920 11302 -3921 577 -39 1
+- -4620 6932 -2737 459 -35 1
+- -3300 5140 -2211 403 -33 1
+- -2200 3610 -1729 349 -31 1
+- -660 1336 -897 247 -27 1
+- -1320 2342 -1291 297 -29 1
+- -6160 8986 -3307 517 -37 1
+- -3024 4674 -1985 365 -31 1
+- -2160 3462 -1591 317 -29 1
+- -1440 2428 -1233 271 -27 1
+- -432 894 -625 185 -23 1
+- -864 1572 -911 227 -25 1
+- -252 540 -401 131 -19 1
+- -504 954 -595 165 -21 1
+- -840 1478 -817 201 -23 1
+- -360 702 -461 137 -19 1
+- -180 396 -307 107 -17 1
+- -120 274 -225 85 -15 1
+- -1680 2746 -1317 277 -27 1
+- -1120 1924 -1015 235 -25 1
+- -672 1244 -745 195 -23 1
+- -336 706 -507 157 -21 1
+- -3780 5748 -2347 411 -33 1
+- -2700 4260 -1889 359 -31 1
+- -1800 2990 -1471 309 -29 1
+- -1080 1938 -1093 261 -27 1
+- -540 1104 -755 215 -25 1
+- -5040 7454 -2845 465 -35 1
+- 2160 -3876 2096 -413 34 -1
+- 6480 -7308 2856 -479 36 -1
+- 12960 -11376 3678 -547 38 -1
+- 21600 -16080 4562 -617 40 -1
+- 60480 -34008 7586 -839 46 -1
+- 45360 -27396 6516 -763 44 -1
+- 32400 -21420 5508 -689 42 -1
+- 1344 -2488 1434 -319 30 -1
+- 4032 -4776 2014 -377 32 -1
+- 8064 -7536 2648 -437 34 -1
+- 13440 -10768 3336 -499 36 -1
+- 20160 -14472 4078 -563 38 -1
+- 288 -624 470 -155 22 -1
+- 480 -976 666 -193 24 -1
+- 720 -1404 892 -233 26 -1
+- 1440 -1968 1006 -239 26 -1
+- 2160 -2772 1308 -283 28 -1
+- 4320 -4464 1770 -335 30 -1
+- 10080 -8496 2786 -443 34 -1
+- 6048 -5904 2190 -385 32 -1
+- 3024 -3708 1644 -329 30 -1
+- 1008 -1908 1148 -275 28 -1
+- 25920 -17784 4770 -625 40 -1
+- 36288 -22824 5670 -695 42 -1
+- 17280 -13296 3928 -557 38 -1
+- 10368 -9360 3144 -491 36 -1
+- 5184 -5976 2418 -427 34 -1
+- 1728 -3144 1750 -365 32 -1
+- -9504 13404 -4495 635 -41 1
+- -5544 8226 -3155 509 -37 1
+- -3960 6102 -2557 449 -35 1
+- -2640 4288 -2007 391 -33 1
+- -1584 2784 -1505 335 -31 1
+- -792 1590 -1051 281 -29 1
+- -7392 10660 -3801 571 -39 1
+- 39600 -25380 6292 -755 44 -1
+- 55440 -32364 7412 -833 46 -1
+- 73920 -40072 8598 -913 48 -1
+- 95040 -48504 9850 -995 50 -1
+- 26400 -19120 5238 -679 42 -1
+- 15840 -13584 4250 -605 40 -1
+- 7920 -8772 3328 -533 38 -1
+- 2640 -4684 2472 -463 36 -1
+- -11880 16458 -5237 701 -43 1
+-end
+-
+-Vertex graph
+-begin
+- 12 12
+- 1 11 : 2 3 4 5 6 7 8 9 10 11 12
+- 2 11 : 1 3 4 5 6 7 8 9 10 11 12
+- 3 11 : 1 2 4 5 6 7 8 9 10 11 12
+- 4 11 : 1 2 3 5 6 7 8 9 10 11 12
+- 5 11 : 1 2 3 4 6 7 8 9 10 11 12
+- 6 11 : 1 2 3 4 5 7 8 9 10 11 12
+- 7 11 : 1 2 3 4 5 6 8 9 10 11 12
+- 8 11 : 1 2 3 4 5 6 7 9 10 11 12
+- 9 11 : 1 2 3 4 5 6 7 8 10 11 12
+- 10 11 : 1 2 3 4 5 6 7 8 9 11 12
+- 11 11 : 1 2 3 4 5 6 7 8 9 10 12
+- 12 11 : 1 2 3 4 5 6 7 8 9 10 11
+-end
+-
+-Facet graph
+-begin
+- 72 72
+- 1 5 : 7 28 57 67 72
+- 2 5 : 3 7 23 58 65
+- 3 5 : 2 4 24 59 64
+- 4 5 : 3 6 25 60 68
+- 5 5 : 6 27 62 70 71
+- 6 5 : 4 5 26 61 69
+- 7 5 : 1 2 28 63 66
+- 8 5 : 9 19 23 28 52
+- 9 5 : 8 10 19 24 51
+- 10 5 : 9 12 20 25 53
+- 11 5 : 12 22 27 55 56
+- 12 5 : 10 11 21 26 54
+- 13 5 : 14 17 22 49 50
+- 14 5 : 13 15 16 21 48
+- 15 5 : 14 16 19 20 47
+- 16 5 : 14 15 17 18 46
+- 17 5 : 13 16 18 43 45
+- 18 5 : 16 17 41 42 44
+- 19 5 : 8 9 15 20 40
+- 20 5 : 10 15 19 21 39
+- 21 5 : 12 14 20 22 38
+- 22 5 : 11 13 21 36 37
+- 23 5 : 2 8 24 28 34
+- 24 5 : 3 9 23 25 35
+- 25 5 : 4 10 24 26 32
+- 26 5 : 6 12 25 27 31
+- 27 5 : 5 11 26 29 30
+- 28 5 : 1 7 8 23 33
+- 29 5 : 27 30 56 71 72
+- 30 5 : 27 29 31 55 70
+- 31 5 : 26 30 32 54 69
+- 32 5 : 25 31 35 53 68
+- 33 5 : 28 34 52 66 67
+- 34 5 : 23 33 35 52 65
+- 35 5 : 24 32 34 51 64
+- 36 5 : 22 37 50 56 63
+- 37 5 : 22 36 38 49 55
+- 38 5 : 21 37 39 48 54
+- 39 5 : 20 38 40 47 53
+- 40 5 : 19 39 47 51 52
+- 41 5 : 18 42 44 61 62
+- 42 5 : 18 41 43 44 60
+- 43 5 : 17 42 45 50 59
+- 44 5 : 18 41 42 45 46
+- 45 5 : 17 43 44 46 49
+- 46 5 : 16 44 45 47 48
+- 47 5 : 15 39 40 46 48
+- 48 5 : 14 38 46 47 49
+- 49 5 : 13 37 45 48 50
+- 50 5 : 13 36 43 49 58
+- 51 5 : 9 35 40 52 53
+- 52 5 : 8 33 34 40 51
+- 53 5 : 10 32 39 51 54
+- 54 5 : 12 31 38 53 55
+- 55 5 : 11 30 37 54 56
+- 56 5 : 11 29 36 55 57
+- 57 5 : 1 56 63 67 72
+- 58 5 : 2 50 59 63 65
+- 59 5 : 3 43 58 60 64
+- 60 5 : 4 42 59 61 68
+- 61 5 : 6 41 60 62 69
+- 62 5 : 5 41 61 70 71
+- 63 5 : 7 36 57 58 66
+- 64 5 : 3 35 59 65 68
+- 65 5 : 2 34 58 64 66
+- 66 5 : 7 33 63 65 67
+- 67 5 : 1 33 57 66 72
+- 68 5 : 4 32 60 64 69
+- 69 5 : 6 31 61 68 70
+- 70 5 : 5 30 62 69 71
+- 71 5 : 5 29 62 70 72
+- 72 5 : 1 29 57 67 71
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/empty.ine b/build/pkgs/cddlib/tests/output/empty.ine
+deleted file mode 100644
+index 0cfa018..00000000
+--- a/build/pkgs/cddlib/tests/output/empty.ine
++++ /dev/null
+@@ -1,23 +0,0 @@
+-V-representation
+-begin
+- 0 2 rational
+-end
+-
+-H-representation
+-linearity 1 1
+-begin
+- 1 2 rational
+- -1 0
+-end
+-
+-Vertex graph
+-begin
+- 0 0
+-end
+-
+-Facet graph
+-begin
+- 1 1
+- 1 0 :
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/ex1.ine b/build/pkgs/cddlib/tests/output/ex1.ine
+deleted file mode 100644
+index 0941d82..00000000
+--- a/build/pkgs/cddlib/tests/output/ex1.ine
++++ /dev/null
+@@ -1,38 +0,0 @@
+-V-representation
+-begin
+- 5 3 rational
+- 1 -1 4
+- 0 2 1
+- 1 0 3
+- 0 1 2
+- 1 -1 10
+-end
+-
+-H-representation
+-begin
+- 4 3 rational
+- 12 2 -1
+- -6 -1 2
+- -3 1 1
+- 1 1 0
+-end
+-
+-Vertex graph
+-begin
+- 5 5
+- 1 2 : 3 5
+- 2 2 : 3 4
+- 3 2 : 1 2
+- 4 2 : 2 5
+- 5 2 : 1 4
+-end
+-
+-Facet graph
+-begin
+- 4 4
+- 1 1 : 4
+- 2 1 : 3
+- 3 2 : 2 4
+- 4 2 : 1 3
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/infeas.ine b/build/pkgs/cddlib/tests/output/infeas.ine
+deleted file mode 100644
+index 8fabe3a..00000000
+--- a/build/pkgs/cddlib/tests/output/infeas.ine
++++ /dev/null
+@@ -1,173 +0,0 @@
+- 16 8 real
+- | 0 1 2 3 4 5 7 14
+- | 0 1 2 3 4 5 7 14
+- ------- | ------------------------
+- 1( 2) | 0 + 0 0 0 0 0 0
+- 2( 3) | 0 0 + 0 0 0 0 0
+- 3( 4) | 0 0 0 + 0 0 0 0
+- 4( 5) | 0 0 0 0 + 0 0 0
+- 5( 6) | 0 0 0 0 0 + 0 0
+- 6( -1) | - + 0 0 0 0 0 0
+- 7( 7) | 0 0 0 0 0 0 + 0
+- 8( -1) | + - 0 0 0 0 0 0
+- 9( -1) | + 0 - 0 0 0 0 0
+- 10( -1) | + 0 0 - 0 0 0 0
+- 11( -1) | + 0 0 0 - 0 0 0
+- 12( -1) | + 0 0 0 0 - 0 0
+- 13( -1) | + 0 0 0 0 0 - 0
+- 14( 8) | 0 0 0 0 0 0 0 +
+- 15( 0) | + 0 0 0 0 0 0 -
+- 16( 0) | 0 0 0 0 0 0 0 0
+-end
+- 15 8 real
+- | 0 1 2 3 4 5 7 14
+- | 0 6 2 3 4 5 7 14
+- ------- | ------------------------
+- 1( -1) | + + 0 0 0 0 0 0
+- 2( 3) | 0 0 + 0 0 0 0 0
+- 3( 4) | 0 0 0 + 0 0 0 0
+- 4( 5) | 0 0 0 0 + 0 0 0
+- 5( 6) | 0 0 0 0 0 + 0 0
+- 6( 2) | 0 + 0 0 0 0 0 0
+- 7( 7) | 0 0 0 0 0 0 + 0
+- 8( -1) | - - 0 0 0 0 0 0
+- 9( -1) | + 0 - 0 0 0 0 0
+- 10( -1) | + 0 0 - 0 0 0 0
+- 11( -1) | + 0 0 0 - 0 0 0
+- 12( -1) | + 0 0 0 0 - 0 0
+- 13( -1) | + 0 0 0 0 0 - 0
+- 14( 8) | 0 0 0 0 0 0 0 +
+- 15( 0) | + 0 0 0 0 0 0 -
+-end
+-
+-Evaluating dd_BasisStatusMaximize:
+-
+-nbindex: 0 6 2 3 4 5 7 14
+-re = 8, se=0
+-se=0, is=0
+-new se=0, is=0
+-dd_BasisStatusMaximize: a specified basis exists.
+- 15 8 real
+- | 0 6 2 3 4 5 7 14
+- ---- ---- ---- ---- ---- ---- ---- ---- ----
+- 1( -1) | 2 1 0 0 0 0 0 0
+- 2( 3) | 0 0 1 0 0 0 0 0
+- 3( 4) | 0 0 0 1 0 0 0 0
+- 4( 5) | 0 0 0 0 1 0 0 0
+- 5( 6) | 0 0 0 0 0 1 0 0
+- 6( 2) | 0 1 0 0 0 0 0 0
+- 7( 7) | 0 0 0 0 0 0 1 0
+- 8( -1) | -1 -1 0 0 0 0 0 0
+- 9( -1) | 1 0 -1 0 0 0 0 0
+- 10( -1) | 1 0 0 -1 0 0 0 0
+- 11( -1) | 1 0 0 0 -1 0 0 0
+- 12( -1) | 1 0 0 0 0 -1 0 0
+- 13( -1) | 1 0 0 0 0 0 -1 0
+- 14( 8) | 0 0 0 0 0 0 0 1
+- 15( 0) | 1 0 0 0 0 0 0 -1
+-end
+-BasisStatus: the current basis is verified with GMP. The LP Solved.
+- 16 8 real
+- | 0 1 2 3 4 5 7 8
+- | 0 1 2 3 4 5 7 8
+- ------- | ------------------------
+- 1( 2) | 0 + 0 0 0 0 0 0
+- 2( 3) | 0 0 + 0 0 0 0 0
+- 3( 4) | 0 0 0 + 0 0 0 0
+- 4( 5) | 0 0 0 0 + 0 0 0
+- 5( 6) | 0 0 0 0 0 + 0 0
+- 6( -1) | - + 0 0 0 0 0 0
+- 7( 7) | 0 0 0 0 0 0 + 0
+- 8( 8) | 0 0 0 0 0 0 0 +
+- 9( -1) | 0 + - 0 0 0 0 +
+- 10( -1) | 0 + 0 - 0 0 0 +
+- 11( -1) | 0 + 0 0 - 0 0 +
+- 12( -1) | 0 + 0 0 0 - 0 +
+- 13( -1) | 0 + 0 0 0 0 - +
+- 14( -1) | + + 0 0 0 0 0 +
+- 15( 0) | + - 0 0 0 0 0 -
+- 16( 0) | 0 0 0 0 0 0 0 0
+-end
+- 15 8 real
+- | 0 1 2 3 4 5 7 8
+- | 0 6 2 3 4 5 7 8
+- ------- | ------------------------
+- 1( -1) | + + 0 0 0 0 0 0
+- 2( 3) | 0 0 + 0 0 0 0 0
+- 3( 4) | 0 0 0 + 0 0 0 0
+- 4( 5) | 0 0 0 0 + 0 0 0
+- 5( 6) | 0 0 0 0 0 + 0 0
+- 6( 2) | 0 + 0 0 0 0 0 0
+- 7( 7) | 0 0 0 0 0 0 + 0
+- 8( 8) | 0 0 0 0 0 0 0 +
+- 9( -1) | + + - 0 0 0 0 +
+- 10( -1) | + + 0 - 0 0 0 +
+- 11( -1) | + + 0 0 - 0 0 +
+- 12( -1) | + + 0 0 0 - 0 +
+- 13( -1) | + + 0 0 0 0 - +
+- 14( -1) | + + 0 0 0 0 0 +
+- 15( 0) | - - 0 0 0 0 0 -
+-end
+-
+-Evaluating dd_BasisStatusMaximize:
+-
+-nbindex: 0 6 2 3 4 5 7 8
+-re = 0, se=0
+-se=0, is=0
+-new se=0, is=0
+-dd_BasisStatusMaximize: a specified basis exists.
+- 15 8 real
+- | 0 6 2 3 4 5 7 8
+- ---- ---- ---- ---- ---- ---- ---- ---- ----
+- 1( -1) | 2 1 0 0 0 0 0 0
+- 2( 3) | 0 0 1 0 0 0 0 0
+- 3( 4) | 0 0 0 1 0 0 0 0
+- 4( 5) | 0 0 0 0 1 0 0 0
+- 5( 6) | 0 0 0 0 0 1 0 0
+- 6( 2) | 0 1 0 0 0 0 0 0
+- 7( 7) | 0 0 0 0 0 0 1 0
+- 8( 8) | 0 0 0 0 0 0 0 1
+- 9( -1) | 2 1 -1 0 0 0 0 1
+- 10( -1) | 2 1 0 -1 0 0 0 1
+- 11( -1) | 2 1 0 0 -1 0 0 1
+- 12( -1) | 2 1 0 0 0 -1 0 1
+- 13( -1) | 2 1 0 0 0 0 -1 1
+- 14( -1) | 3/2 1/2 0 0 0 0 0 1/2
+- 15( 0) | -1/2 -1/2 0 0 0 0 0 -1/2
+-end
+-BasisStatus: the current basis is verified with GMP. The LP Solved.
+-V-representation
+-begin
+- 0 7 rational
+-end
+-
+-H-representation
+-linearity 7 1 2 3 4 5 6 7
+-begin
+- 7 7 rational
+- 0 1 0 0 0 0 0
+- 0 0 1 0 0 0 0
+- 0 0 0 1 0 0 0
+- 0 0 0 0 1 0 0
+- 0 0 0 0 0 1 0
+- -2 1 0 0 0 0 0
+- 0 0 0 0 0 0 1
+-end
+-
+-Vertex graph
+-begin
+- 0 0
+-end
+-
+-Facet graph
+-begin
+- 7 7
+- 1 0 :
+- 2 0 :
+- 3 0 :
+- 4 0 :
+- 5 0 :
+- 6 0 :
+- 7 0 :
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/irbox20-4.ext b/build/pkgs/cddlib/tests/output/irbox20-4.ext
+deleted file mode 100644
+index 7021ff1..00000000
+--- a/build/pkgs/cddlib/tests/output/irbox20-4.ext
++++ /dev/null
+@@ -1,96 +0,0 @@
+-V-representation
+-begin
+- 14 4 rational
+- 1 -45 1 47
+- 1 5 -11 28
+- 1 17 -43 17
+- 1 -46 8 -15
+- 1 35 -26 -6
+- 1 41 -3 -8
+- 1 -46 49 40
+- 1 -18 -29 46
+- 1 -20 -25 -2
+- 1 -22 -9 -32
+- 1 31 46 5
+- 1 -44 -5 40
+- 1 -2 4 32
+- 1 -27 40 -48
+-end
+-
+-H-representation
+-begin
+- 24 4 rational
+- 18563/17 -1 593/17 25
+- 35825/391 -501/391 1 1354/391
+- 8158/59 1 268/59 139/59
+- 30933/37 -774/37 1 -952/37
+- 29717/56 197/28 869/56 1
+- 17417/122 -447/244 -1 -543/122
+- 13393/14 141/7 309/14 1
+- 3799/33 17/11 47/33 -1
+- 24041/95 -129/95 -1 -633/95
+- 163243/779 3113/779 -55/41 1
+- 18829 421 69 1
+- 133587/41 2927/41 55/41 -1
+- 63443/469 1105/469 1 1091/469
+- 17141/68 823/136 351/68 1
+- 3519/35 391/175 377/175 1
+- 7262/17 -171/17 -1 -471/34
+- 8110/19 -191/19 -1 -263/19
+- 1625/14 -47/28 -1 -101/28
+- 92115/17 1 -2037/17 212/17
+- 49373/10 -1363/10 1 -758/5
+- 59123/62 -1745/62 1 -788/31
+- 40881/428 -2519/1284 -1 1451/642
+- 24949/188 -417/188 1 911/188
+- 355/2 -165/34 1 -52/17
+-end
+-
+-Vertex graph
+-begin
+- 14 14
+- 1 4 : 4 7 8 12
+- 2 4 : 3 8 11 13
+- 3 7 : 2 5 6 8 9 10 11
+- 4 6 : 1 7 9 10 12 14
+- 5 4 : 3 6 10 14
+- 6 4 : 3 5 11 14
+- 7 6 : 1 4 8 11 13 14
+- 8 7 : 1 2 3 7 9 12 13
+- 9 5 : 3 4 8 10 12
+- 10 5 : 3 4 5 9 14
+- 11 6 : 2 3 6 7 13 14
+- 12 4 : 1 4 8 9
+- 13 4 : 2 7 8 11
+- 14 6 : 4 5 6 7 10 11
+-end
+-
+-Facet graph
+-begin
+- 24 24
+- 1 3 : 2 3 24
+- 2 3 : 1 13 23
+- 3 3 : 1 5 15
+- 4 3 : 5 16 20
+- 5 3 : 3 4 7
+- 6 3 : 9 16 18
+- 7 3 : 5 8 14
+- 8 3 : 7 9 11
+- 9 3 : 6 8 12
+- 10 3 : 12 13 19
+- 11 3 : 8 12 14
+- 12 3 : 9 10 11
+- 13 3 : 2 10 15
+- 14 3 : 7 11 15
+- 15 3 : 3 13 14
+- 16 3 : 4 6 17
+- 17 3 : 16 18 20
+- 18 3 : 6 17 19
+- 19 3 : 10 18 22
+- 20 3 : 4 17 21
+- 21 3 : 20 22 24
+- 22 3 : 19 21 23
+- 23 3 : 2 22 24
+- 24 3 : 1 21 23
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/nonfull.ine b/build/pkgs/cddlib/tests/output/nonfull.ine
+deleted file mode 100644
+index 2984be5..00000000
+--- a/build/pkgs/cddlib/tests/output/nonfull.ine
++++ /dev/null
+@@ -1,35 +0,0 @@
+-V-representation
+-begin
+- 3 4 rational
+- 1 2 1 1
+- 1 2 2 1
+- 0 0 0 1
+-end
+-
+-H-representation
+-linearity 1 1
+-begin
+- 4 4 rational
+- 2 -1 0 0
+- 2 0 -1 0
+- -1 0 1 0
+- -1 0 0 1
+-end
+-
+-Vertex graph
+-begin
+- 3 3
+- 1 2 : 2 3
+- 2 2 : 1 3
+- 3 2 : 1 2
+-end
+-
+-Facet graph
+-begin
+- 4 4
+- 1 0 :
+- 2 1 : 4
+- 3 1 : 4
+- 4 2 : 2 3
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/origin.ine b/build/pkgs/cddlib/tests/output/origin.ine
+deleted file mode 100644
+index b6f9b22..00000000
+--- a/build/pkgs/cddlib/tests/output/origin.ine
++++ /dev/null
+@@ -1,35 +0,0 @@
+-V-representation
+-begin
+- 1 7 rational
+- 1 0 0 0 0 0 0
+-end
+-
+-H-representation
+-linearity 6 1 2 3 4 5 6
+-begin
+- 6 7 rational
+- 0 1 0 0 0 0 0
+- 0 0 1 0 0 0 0
+- 0 0 0 1 0 0 0
+- 0 0 0 0 1 0 0
+- 0 0 0 0 0 1 0
+- 0 0 0 0 0 0 1
+-end
+-
+-Vertex graph
+-begin
+- 1 1
+- 1 0 :
+-end
+-
+-Facet graph
+-begin
+- 6 6
+- 1 0 :
+- 2 0 :
+- 3 0 :
+- 4 0 :
+- 5 0 :
+- 6 0 :
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/reg24-5.ext b/build/pkgs/cddlib/tests/output/reg24-5.ext
+deleted file mode 100644
+index 21d7b41..00000000
+--- a/build/pkgs/cddlib/tests/output/reg24-5.ext
++++ /dev/null
+@@ -1,116 +0,0 @@
+-V-representation
+-begin
+- 24 5 rational
+- 1 1 1 1 1
+- 1 1 1 1 -1
+- 1 1 1 -1 1
+- 1 1 1 -1 -1
+- 1 1 -1 1 1
+- 1 1 -1 1 -1
+- 1 1 -1 -1 1
+- 1 1 -1 -1 -1
+- 1 -1 1 1 1
+- 1 -1 1 1 -1
+- 1 -1 1 -1 1
+- 1 -1 1 -1 -1
+- 1 -1 -1 1 1
+- 1 -1 -1 1 -1
+- 1 -1 -1 -1 1
+- 1 -1 -1 -1 -1
+- 1 2 0 0 0
+- 1 0 2 0 0
+- 1 0 0 2 0
+- 1 0 0 0 2
+- 1 -2 0 0 0
+- 1 0 -2 0 0
+- 1 0 0 -2 0
+- 1 0 0 0 -2
+-end
+-
+-H-representation
+-begin
+- 24 5 rational
+- 2 0 -1 -1 0
+- 2 0 0 -1 -1
+- 2 0 -1 0 -1
+- 2 0 -1 1 0
+- 2 0 0 1 -1
+- 2 0 1 -1 0
+- 2 0 1 0 -1
+- 2 0 1 1 0
+- 2 1 -1 0 0
+- 2 1 0 0 -1
+- 2 1 0 1 0
+- 2 1 1 0 0
+- 2 1 0 0 1
+- 2 1 0 -1 0
+- 2 0 1 0 1
+- 2 0 0 1 1
+- 2 0 -1 0 1
+- 2 0 0 -1 1
+- 2 -1 0 0 1
+- 2 -1 1 0 0
+- 2 -1 0 1 0
+- 2 -1 0 0 -1
+- 2 -1 0 -1 0
+- 2 -1 -1 0 0
+-end
+-
+-Vertex graph
+-begin
+- 24 24
+- 1 8 : 2 3 5 9 17 18 19 20
+- 2 8 : 1 4 6 10 17 18 19 24
+- 3 8 : 1 4 7 11 17 18 20 23
+- 4 8 : 2 3 8 12 17 18 23 24
+- 5 8 : 1 6 7 13 17 19 20 22
+- 6 8 : 2 5 8 14 17 19 22 24
+- 7 8 : 3 5 8 15 17 20 22 23
+- 8 8 : 4 6 7 16 17 22 23 24
+- 9 8 : 1 10 11 13 18 19 20 21
+- 10 8 : 2 9 12 14 18 19 21 24
+- 11 8 : 3 9 12 15 18 20 21 23
+- 12 8 : 4 10 11 16 18 21 23 24
+- 13 8 : 5 9 14 15 19 20 21 22
+- 14 8 : 6 10 13 16 19 21 22 24
+- 15 8 : 7 11 13 16 20 21 22 23
+- 16 8 : 8 12 14 15 21 22 23 24
+- 17 8 : 1 2 3 4 5 6 7 8
+- 18 8 : 1 2 3 4 9 10 11 12
+- 19 8 : 1 2 5 6 9 10 13 14
+- 20 8 : 1 3 5 7 9 11 13 15
+- 21 8 : 9 10 11 12 13 14 15 16
+- 22 8 : 5 6 7 8 13 14 15 16
+- 23 8 : 3 4 7 8 11 12 15 16
+- 24 8 : 2 4 6 8 10 12 14 16
+-end
+-
+-Facet graph
+-begin
+- 24 24
+- 1 8 : 2 3 9 14 17 18 23 24
+- 2 8 : 1 3 6 7 10 14 22 23
+- 3 8 : 1 2 4 5 9 10 22 24
+- 4 8 : 3 5 9 11 16 17 21 24
+- 5 8 : 3 4 7 8 10 11 21 22
+- 6 8 : 2 7 12 14 15 18 20 23
+- 7 8 : 2 5 6 8 10 12 20 22
+- 8 8 : 5 7 11 12 15 16 20 21
+- 9 8 : 1 3 4 10 11 13 14 17
+- 10 8 : 2 3 5 7 9 11 12 14
+- 11 8 : 4 5 8 9 10 12 13 16
+- 12 8 : 6 7 8 10 11 13 14 15
+- 13 8 : 9 11 12 14 15 16 17 18
+- 14 8 : 1 2 6 9 10 12 13 18
+- 15 8 : 6 8 12 13 16 18 19 20
+- 16 8 : 4 8 11 13 15 17 19 21
+- 17 8 : 1 4 9 13 16 18 19 24
+- 18 8 : 1 6 13 14 15 17 19 23
+- 19 8 : 15 16 17 18 20 21 23 24
+- 20 8 : 6 7 8 15 19 21 22 23
+- 21 8 : 4 5 8 16 19 20 22 24
+- 22 8 : 2 3 5 7 20 21 23 24
+- 23 8 : 1 2 6 18 19 20 22 24
+- 24 8 : 1 3 4 17 19 21 22 23
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/reg24-5.ine b/build/pkgs/cddlib/tests/output/reg24-5.ine
+deleted file mode 100644
+index 351b546..00000000
+--- a/build/pkgs/cddlib/tests/output/reg24-5.ine
++++ /dev/null
+@@ -1,116 +0,0 @@
+-V-representation
+-begin
+- 24 5 rational
+- 1 0 -1/2 -1/2 0
+- 1 0 0 -1/2 -1/2
+- 1 0 -1/2 0 -1/2
+- 1 0 -1/2 1/2 0
+- 1 0 0 1/2 -1/2
+- 1 0 1/2 -1/2 0
+- 1 0 1/2 0 -1/2
+- 1 0 1/2 1/2 0
+- 1 1/2 -1/2 0 0
+- 1 1/2 0 0 -1/2
+- 1 1/2 0 0 1/2
+- 1 1/2 1/2 0 0
+- 1 1/2 0 1/2 0
+- 1 1/2 0 -1/2 0
+- 1 0 1/2 0 1/2
+- 1 0 0 1/2 1/2
+- 1 0 -1/2 0 1/2
+- 1 0 0 -1/2 1/2
+- 1 -1/2 0 0 1/2
+- 1 -1/2 1/2 0 0
+- 1 -1/2 0 1/2 0
+- 1 -1/2 0 0 -1/2
+- 1 -1/2 0 -1/2 0
+- 1 -1/2 -1/2 0 0
+-end
+-
+-H-representation
+-begin
+- 24 5 rational
+- 1 1 1 1 1
+- 1 1 1 1 -1
+- 1 1 1 -1 1
+- 1 1 1 -1 -1
+- 1 1 -1 1 1
+- 1 1 -1 1 -1
+- 1 1 -1 -1 1
+- 1 1 -1 -1 -1
+- 1 -1 1 1 1
+- 1 -1 1 1 -1
+- 1 -1 1 -1 1
+- 1 -1 1 -1 -1
+- 1 -1 -1 1 1
+- 1 -1 -1 1 -1
+- 1 -1 -1 -1 1
+- 1 -1 -1 -1 -1
+- 1 2 0 0 0
+- 1 0 2 0 0
+- 1 0 0 2 0
+- 1 0 0 0 2
+- 1 -2 0 0 0
+- 1 0 -2 0 0
+- 1 0 0 -2 0
+- 1 0 0 0 -2
+-end
+-
+-Vertex graph
+-begin
+- 24 24
+- 1 8 : 2 3 9 14 17 18 23 24
+- 2 8 : 1 3 6 7 10 14 22 23
+- 3 8 : 1 2 4 5 9 10 22 24
+- 4 8 : 3 5 9 13 16 17 21 24
+- 5 8 : 3 4 7 8 10 13 21 22
+- 6 8 : 2 7 12 14 15 18 20 23
+- 7 8 : 2 5 6 8 10 12 20 22
+- 8 8 : 5 7 12 13 15 16 20 21
+- 9 8 : 1 3 4 10 11 13 14 17
+- 10 8 : 2 3 5 7 9 12 13 14
+- 11 8 : 9 12 13 14 15 16 17 18
+- 12 8 : 6 7 8 10 11 13 14 15
+- 13 8 : 4 5 8 9 10 11 12 16
+- 14 8 : 1 2 6 9 10 11 12 18
+- 15 8 : 6 8 11 12 16 18 19 20
+- 16 8 : 4 8 11 13 15 17 19 21
+- 17 8 : 1 4 9 11 16 18 19 24
+- 18 8 : 1 6 11 14 15 17 19 23
+- 19 8 : 15 16 17 18 20 21 23 24
+- 20 8 : 6 7 8 15 19 21 22 23
+- 21 8 : 4 5 8 16 19 20 22 24
+- 22 8 : 2 3 5 7 20 21 23 24
+- 23 8 : 1 2 6 18 19 20 22 24
+- 24 8 : 1 3 4 17 19 21 22 23
+-end
+-
+-Facet graph
+-begin
+- 24 24
+- 1 8 : 2 3 5 9 17 18 19 20
+- 2 8 : 1 4 6 10 17 18 19 24
+- 3 8 : 1 4 7 11 17 18 20 23
+- 4 8 : 2 3 8 12 17 18 23 24
+- 5 8 : 1 6 7 13 17 19 20 22
+- 6 8 : 2 5 8 14 17 19 22 24
+- 7 8 : 3 5 8 15 17 20 22 23
+- 8 8 : 4 6 7 16 17 22 23 24
+- 9 8 : 1 10 11 13 18 19 20 21
+- 10 8 : 2 9 12 14 18 19 21 24
+- 11 8 : 3 9 12 15 18 20 21 23
+- 12 8 : 4 10 11 16 18 21 23 24
+- 13 8 : 5 9 14 15 19 20 21 22
+- 14 8 : 6 10 13 16 19 21 22 24
+- 15 8 : 7 11 13 16 20 21 22 23
+- 16 8 : 8 12 14 15 21 22 23 24
+- 17 8 : 1 2 3 4 5 6 7 8
+- 18 8 : 1 2 3 4 9 10 11 12
+- 19 8 : 1 2 5 6 9 10 13 14
+- 20 8 : 1 3 5 7 9 11 13 15
+- 21 8 : 9 10 11 12 13 14 15 16
+- 22 8 : 5 6 7 8 13 14 15 16
+- 23 8 : 3 4 7 8 11 12 15 16
+- 24 8 : 2 4 6 8 10 12 14 16
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/sampleh1.ine b/build/pkgs/cddlib/tests/output/sampleh1.ine
+deleted file mode 100644
+index c06e5c3..00000000
+--- a/build/pkgs/cddlib/tests/output/sampleh1.ine
++++ /dev/null
+@@ -1,35 +0,0 @@
+-V-representation
+-linearity 1 1
+-begin
+- 4 4 rational
+- 0 0 0 1
+- 1 0 0 0
+- 1 2 0 0
+- 1 0 2 0
+-end
+-
+-H-representation
+-begin
+- 3 4 rational
+- 2 -1 -1 0
+- 0 1 0 0
+- 0 0 1 0
+-end
+-
+-Vertex graph
+-begin
+- 4 4
+- 1 0 :
+- 2 2 : 3 4
+- 3 2 : 2 4
+- 4 2 : 2 3
+-end
+-
+-Facet graph
+-begin
+- 3 3
+- 1 2 : 2 3
+- 2 2 : 1 3
+- 3 2 : 1 2
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/sampleh2.ine b/build/pkgs/cddlib/tests/output/sampleh2.ine
+deleted file mode 100644
+index b6a1e3c..00000000
+--- a/build/pkgs/cddlib/tests/output/sampleh2.ine
++++ /dev/null
+@@ -1,31 +0,0 @@
+-V-representation
+-linearity 2 1 2
+-begin
+- 4 4 rational
+- 0 1 0 0
+- 0 0 1 0
+- 0 0 0 1
+- 1 0 0 1
+-end
+-
+-H-representation
+-begin
+- 1 4 rational
+- -1 0 0 1
+-end
+-
+-Vertex graph
+-begin
+- 4 4
+- 1 0 :
+- 2 0 :
+- 3 1 : 4
+- 4 1 : 3
+-end
+-
+-Facet graph
+-begin
+- 1 1
+- 1 0 :
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/sampleh3.ine b/build/pkgs/cddlib/tests/output/sampleh3.ine
+deleted file mode 100644
+index cc1307f..00000000
+--- a/build/pkgs/cddlib/tests/output/sampleh3.ine
++++ /dev/null
+@@ -1,31 +0,0 @@
+-V-representation
+-linearity 1 1
+-begin
+- 3 4 rational
+- 0 0 0 1
+- 0 1 0 0
+- 0 -1 1 0
+-end
+-
+-H-representation
+-begin
+- 2 4 rational
+- 0 1 1 0
+- 0 0 1 0
+-end
+-
+-Vertex graph
+-begin
+- 3 3
+- 1 0 :
+- 2 1 : 3
+- 3 1 : 2
+-end
+-
+-Facet graph
+-begin
+- 2 2
+- 1 1 : 2
+- 2 1 : 1
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/sampleh5.ine b/build/pkgs/cddlib/tests/output/sampleh5.ine
+deleted file mode 100644
+index 958ceef..00000000
+--- a/build/pkgs/cddlib/tests/output/sampleh5.ine
++++ /dev/null
+@@ -1,35 +0,0 @@
+-V-representation
+-begin
+- 3 4 rational
+- 1 0 0 0
+- 1 1 0 0
+- 1 0 1 0
+-end
+-
+-H-representation
+-linearity 1 1
+-begin
+- 4 4 rational
+- 0 0 0 1
+- 0 1 0 0
+- 0 0 1 0
+- 1 -1 -1 0
+-end
+-
+-Vertex graph
+-begin
+- 3 3
+- 1 2 : 2 3
+- 2 2 : 1 3
+- 3 2 : 1 2
+-end
+-
+-Facet graph
+-begin
+- 4 4
+- 1 0 :
+- 2 2 : 3 4
+- 3 2 : 2 4
+- 4 2 : 2 3
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/sampleh6.ine b/build/pkgs/cddlib/tests/output/sampleh6.ine
+deleted file mode 100644
+index 7710d0c..00000000
+--- a/build/pkgs/cddlib/tests/output/sampleh6.ine
++++ /dev/null
+@@ -1,33 +0,0 @@
+-V-representation
+-begin
+- 2 4 rational
+- 1 1 0 0
+- 1 0 1 0
+-end
+-
+-H-representation
+-linearity 2 1 2
+-begin
+- 4 4 rational
+- 0 0 0 1
+- 1 -1 -1 -1
+- 0 1 0 0
+- 0 0 1 0
+-end
+-
+-Vertex graph
+-begin
+- 2 2
+- 1 1 : 2
+- 2 1 : 1
+-end
+-
+-Facet graph
+-begin
+- 4 4
+- 1 0 :
+- 2 0 :
+- 3 0 :
+- 4 0 :
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/sampleh7.ine b/build/pkgs/cddlib/tests/output/sampleh7.ine
+deleted file mode 100644
+index 198a72f..00000000
+--- a/build/pkgs/cddlib/tests/output/sampleh7.ine
++++ /dev/null
+@@ -1,42 +0,0 @@
+-V-representation
+-begin
+- 6 3 rational
+- 1 0 5000/101
+- 1 2530000/130761 500000/43587
+- 1 42500/3999 2500/93
+- 1 10000/87 0
+- 0 1 0
+- 0 0 1
+-end
+-
+-H-representation
+-begin
+- 5 3 rational
+- 0 1 0
+- 0 0 1
+- -10000 87 725
+- -10000 387 219
+- -10000 430 202
+-end
+-
+-Vertex graph
+-begin
+- 6 6
+- 1 2 : 3 6
+- 2 2 : 3 4
+- 3 2 : 1 2
+- 4 2 : 2 5
+- 5 2 : 4 6
+- 6 2 : 1 5
+-end
+-
+-Facet graph
+-begin
+- 5 5
+- 1 1 : 5
+- 2 1 : 3
+- 3 2 : 2 4
+- 4 2 : 3 5
+- 5 2 : 1 4
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/samplelp1.ine b/build/pkgs/cddlib/tests/output/samplelp1.ine
+deleted file mode 100644
+index e5ceedb..00000000
+--- a/build/pkgs/cddlib/tests/output/samplelp1.ine
++++ /dev/null
+@@ -1,48 +0,0 @@
+-V-representation
+-begin
+- 8 4 rational
+- 1 1 -1 -1
+- 1 1 -1 1
+- 1 1 1 1
+- 1 1 1 -1
+- 1 -1 1 1
+- 1 -1 1 -1
+- 1 -1 -1 1
+- 1 -1 -1 -1
+-end
+-
+-H-representation
+-begin
+- 6 4 rational
+- 1 1 0 0
+- 1 0 1 0
+- 1 0 0 1
+- 1 -1 0 0
+- 1 0 -1 0
+- 1 0 0 -1
+-end
+-
+-Vertex graph
+-begin
+- 8 8
+- 1 3 : 2 4 8
+- 2 3 : 1 3 7
+- 3 3 : 2 4 5
+- 4 3 : 1 3 6
+- 5 3 : 3 6 7
+- 6 3 : 4 5 8
+- 7 3 : 2 5 8
+- 8 3 : 1 6 7
+-end
+-
+-Facet graph
+-begin
+- 6 6
+- 1 4 : 2 3 5 6
+- 2 4 : 1 3 4 6
+- 3 4 : 1 2 4 5
+- 4 4 : 2 3 5 6
+- 5 4 : 1 3 4 6
+- 6 4 : 1 2 4 5
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/samplelp2.ine b/build/pkgs/cddlib/tests/output/samplelp2.ine
+deleted file mode 100644
+index e878496..00000000
+--- a/build/pkgs/cddlib/tests/output/samplelp2.ine
++++ /dev/null
+@@ -1,34 +0,0 @@
+-V-representation
+-linearity 1 1
+-begin
+- 3 5 rational
+- 0 0 0 -1 1
+- 1 -3 3 9/2 0
+- 0 1 0 0 0
+-end
+-
+-H-representation
+-linearity 2 1 2
+-begin
+- 3 5 rational
+- 3 0 -1 0 0
+- 9/2 0 0 -1 -1
+- 0 1 1 0 0
+-end
+-
+-Vertex graph
+-begin
+- 3 3
+- 1 0 :
+- 2 1 : 3
+- 3 1 : 2
+-end
+-
+-Facet graph
+-begin
+- 3 3
+- 1 0 :
+- 2 0 :
+- 3 0 :
+-end
+-
+diff --git a/build/pkgs/cddlib/tests/output/test.ext b/build/pkgs/cddlib/tests/output/test.ext
+deleted file mode 100644
+index 5eff75c..00000000
+--- a/build/pkgs/cddlib/tests/output/test.ext
++++ /dev/null
+@@ -1,36 +0,0 @@
+-V-representation
+-begin
+- 4 4 rational
+- 1 0 0 1
+- 1 0 0 0
+- 1 1 0 0
+- 1 0 1 0
+-end
+-
+-H-representation
+-begin
+- 4 4 rational
+- 0 1 0 0
+- 0 0 1 0
+- 0 0 0 1
+- 1 -1 -1 -1
+-end
+-
+-Vertex graph
+-begin
+- 4 4
+- 1 3 : 2 3 4
+- 2 3 : 1 3 4
+- 3 3 : 1 2 4
+- 4 3 : 1 2 3
+-end
+-
+-Facet graph
+-begin
+- 4 4
+- 1 3 : 2 3 4
+- 2 3 : 1 3 4
+- 3 3 : 1 2 4
+- 4 3 : 1 2 3
+-end
+-
+diff --git a/src/sage/geometry/hasse_diagram.py b/src/sage/geometry/hasse_diagram.py
+index 9d336ce..c5bff21 100644
+--- a/src/sage/geometry/hasse_diagram.py
++++ b/src/sage/geometry/hasse_diagram.py
+@@ -44,7 +44,7 @@ def Hasse_diagram_from_incidences(atom_to_coatoms, coatom_to_atoms,
+ implementation will just return these two tuples as a tuple;
+
+ - ``required_atoms`` -- list of atoms (default:None). Each
+- non-empty "face" requires at least on of the specified atoms
++ non-empty "face" requires at least one of the specified atoms
+ present. Used to ensure that each face has a vertex.
+
+ - ``key`` -- any hashable value (default: None). It is passed down
+diff --git a/src/sage/geometry/polyhedron/backend_cdd.py b/src/sage/geometry/polyhedron/backend_cdd.py
+index 8497741..85f6632 100644
+--- a/src/sage/geometry/polyhedron/backend_cdd.py
++++ b/src/sage/geometry/polyhedron/backend_cdd.py
+@@ -1,6 +1,19 @@
+-"""
++# -*- coding: utf-8 -*-
++r"""
+ The cdd backend for polyhedral computations
+ """
++# ****************************************************************************
++# Copyright (C) 2011-2014 Volker Braun <vbraun.name at gmail.com>
++# 2018 Timo Kaufmann <timokau at zoho.com>
++# 2018 Julian Rüth <julian.rueth at fsfe.org>
++#
++# This program 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 2 of the License, or
++# (at your option) any later version.
++# https://www.gnu.org/licenses/
++# ****************************************************************************
++
+ from __future__ import print_function
+ from __future__ import absolute_import
+
+@@ -13,12 +26,10 @@ from .base import Polyhedron_base
+ from .base_QQ import Polyhedron_QQ
+ from .base_RDF import Polyhedron_RDF
+
+-#########################################################################
+ class Polyhedron_cdd(Polyhedron_base):
+- """
++ r"""
+ Base class for the cdd backend.
+ """
+-
+ def _init_from_Vrepresentation(self, vertices, rays, lines, verbose=False):
+ """
+ Construct polyhedron from V-representation data.
+@@ -49,8 +60,30 @@ class Polyhedron_cdd(Polyhedron_base):
+ """
+ from .cdd_file_format import cdd_Vrepresentation
+ s = cdd_Vrepresentation(self._cdd_type, vertices, rays, lines)
+- self._init_from_cdd_input(s, '--reps', verbose)
+-
++ s = self._run_cdd(s, '--redcheck', verbose=verbose)
++ s = self._run_cdd(s, '--repall', verbose=verbose)
++ self._init_from_cdd_output(s)
++ if not self.base_ring().is_exact():
++ # cdd's parser can not handle the full output of --repall, so we
++ # need to extract the first block before we feed it back into cdd
++ s = s.splitlines()
++ s = s[:s.index('end')+1]
++ s = '\n'.join(s)
++ t = self._run_cdd(s, '--rep', verbose=verbose)
++
++ def parse(intro, data):
++ count = int(data[0][0])
++ if count != len(self._cdd_V_to_sage_V):
++ # Upstream claims that nothing can be done about these
++ # cases/that they are features not bugs. Imho, cddlib is
++ # not really suitable for automatic parsing of its output,
++ # the implementation backed by doubles has not really been
++ # optimized for numerical stability, and makes some
++ # somewhat random numerical choices. (But I am not an
++ # expert in that field by any means.) See also
++ # https://github.com/cddlib/cddlib/pull/7.
++ raise ValueError("polyhedron data is numerically complicated; cdd could not convert between inexact V and H representation without loss of data")
++ Polyhedron_cdd._parse_block(t.splitlines(), 'V-representation', parse)
+
+ def _init_from_Hrepresentation(self, ieqs, eqns, verbose=False):
+ """
+@@ -78,88 +111,32 @@ class Polyhedron_cdd(Polyhedron_base):
+ """
+ from .cdd_file_format import cdd_Hrepresentation
+ s = cdd_Hrepresentation(self._cdd_type, ieqs, eqns)
+- self._init_from_cdd_input(s, '--reps', verbose)
+-
+-
+- def _init_facet_adjacency_matrix(self, verbose=False):
+- """
+- Compute the facet adjacency matrix in case it has not been
+- computed during initialization.
+-
+- INPUT:
+-
+- - ``verbose`` -- boolean (default: ``False``). Whether to print
+- verbose output for debugging purposes.
+-
+- EXAMPLES::
+-
+- sage: p = Polyhedron(vertices=[(0,0),(1,0),(0,1)], backend='cdd', base_ring=QQ)
+- sage: '_H_adjacency_matrix' in p.__dict__
+- False
+- sage: p._init_facet_adjacency_matrix()
+- sage: p._H_adjacency_matrix
+- [0 1 1]
+- [1 0 1]
+- [1 1 0]
+- """
+- self._init_from_cdd_input(self.cdd_Hrepresentation(),
+- '--adjacency', verbose)
+-
+-
+- def _init_vertex_adjacency_matrix(self, verbose=False):
+- """
+- Compute the vertex adjacency matrix in case it has not been
+- computed during initialization.
+-
+- INPUT:
+-
+- - ``verbose`` -- boolean (default: ``False``). Whether to print
+- verbose output for debugging purposes.
+-
+- EXAMPLES::
+-
+- sage: p = Polyhedron(vertices=[(0,0),(1,0),(0,1)], backend='cdd', base_ring=QQ)
+- sage: '_V_adjacency_matrix' in p.__dict__
+- False
+- sage: p._init_vertex_adjacency_matrix()
+- sage: p._V_adjacency_matrix
+- [0 1 1]
+- [1 0 1]
+- [1 1 0]
+- """
+- self._init_from_cdd_input(self.cdd_Vrepresentation(),
+- '--adjacency', verbose)
+-
+-
+- def _init_from_cdd_input(self, cdd_input_string, cmdline_arg='--all', verbose=False):
+- """
+- Internal method: run cdd on a cdd H- or V-representation
+- and initialize ourselves with the output.
+-
+- TESTS::
+-
+- sage: p = Polyhedron(vertices=[[0,0,0],[1,0,0],[0,1,0],[0,0,1]],
+- ....: backend='cdd', base_ring=QQ)
+- sage: from sage.geometry.polyhedron.cdd_file_format import cdd_Vrepresentation
+- sage: s = cdd_Vrepresentation('rational', [[0,0,1],[0,1,0],[1,0,0]], [], [])
+- sage: p._init_from_cdd_input(s)
+- sage: p.dim()
+- 2
+-
+- sage: point_list = [[0.132, -1.028, 0.028],[0.5, 0.5, -1.5],
+- ....: [-0.5, 1.5, -0.5],[0.5, 0.5, 0.5],[1.5, -0.5, -0.5],
+- ....: [-0.332, -0.332, -0.668],[-1.332, 0.668, 0.332],
+- ....: [-0.932, 0.068, 0.932],[-0.38, -0.38, 1.38],
+- ....: [-0.744, -0.12, 1.12],[-0.7781818182, -0.12, 0.9490909091],
+- ....: [0.62, -1.38, 0.38],[0.144, -1.04, 0.04],
+- ....: [0.1309090909, -1.0290909091, 0.04]]
+- sage: Polyhedron(point_list)
+- Traceback (most recent call last):
+- ...
+- ValueError: *Error: Numerical inconsistency is found. Use the GMP exact arithmetic.
+- sage: Polyhedron(point_list, base_ring=QQ)
+- A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 14 vertices
+- """
++ s = self._run_cdd(s, '--redcheck', verbose=verbose)
++ s = self._run_cdd(s, '--repall', verbose=verbose)
++ self._init_from_cdd_output(s)
++ if not self.base_ring().is_exact():
++ # cdd's parser can not handle the full output of --repall, so we
++ # need to extract the first block before we feed it back into cdd
++ s = s.splitlines()
++ s = s[:s.index('end')+1]
++ s = '\n'.join(s)
++ t = self._run_cdd(s, '--rep', verbose=verbose)
++
++ def parse(intro, data):
++ count = int(data[0][0])
++ infinite_count = len([d for d in data[1:] if d[0] == '1' and all(c == '0' for c in d[1:])])
++ if count - infinite_count != len(self._Hrepresentation):
++ # Upstream claims that nothing can be done about these
++ # cases/that they are features not bugs. Imho, cddlib is
++ # not really suitable for automatic parsing of its output,
++ # the implementation backed by doubles has not really been
++ # optimized for numerical stability, and makes some
++ # somewhat random numerical choices. (But I am not an
++ # expert in that field by any means.)
++ raise ValueError("polyhedron data is numerically complicated; cdd could not convert between inexact V and H representation without loss of data")
++ Polyhedron_cdd._parse_block(t.splitlines(), 'H-representation', parse)
++
++ def _run_cdd(self, cdd_input_string, cmdline_arg, verbose=False):
+ if verbose:
+ print('---- CDD input -----')
+ print(cdd_input_string)
+@@ -175,157 +152,189 @@ class Polyhedron_cdd(Polyhedron_base):
+ if 'Error:' in ans + err:
+ # cdd reports errors on stdout and misc information on stderr
+ raise ValueError(ans.strip())
+- self._init_from_cdd_output(ans)
++ return ans
++
++ @classmethod
++ def _parse_block(cls, cddout, header, parser):
++ r"""
++ Parse a block of cdd data identified by ``header`` by invoking
++ ``parser`` on it.
++
++ EXAMPLES::
+
++ sage: cddout = r'''
++ ....: unrelated
++ ....: HEADER
++ ....: intro 0 1 2
++ ....: begin
++ ....: data 0 1 2
++ ....: data 3 4 5
++ ....: end
++ ....: unrelated
++ ....: '''.splitlines()
++ sage: from sage.geometry.polyhedron.backend_cdd import Polyhedron_cdd
++ sage: def parser(intro, data):
++ ....: print("INTRO:", intro)
++ ....: print("DATA:", data)
++ sage: Polyhedron_cdd._parse_block(cddout, 'HEADER', parser)
++ INTRO: [['intro', '0', '1', '2']]
++ DATA: [['data', '0', '1', '2'], ['data', '3', '4', '5']]
+
+- def _init_from_cdd_output(self, cdd_output_string):
++ """
++ try:
++ block = cddout[cddout.index(header)+1:]
++ except ValueError:
++ # section is missing in the cdd output
++ return
++
++ intro = block[:block.index('begin')]
++ intro = [i.strip().split() for i in intro]
++ data = block[block.index('begin')+1:block.index('end')]
++ data = [d.strip().split() for d in data]
++ parser(intro, data)
++
++ def _init_from_cdd_output(self, cddout):
+ """
+ Initialize ourselves with the output from cdd.
+
+ TESTS::
+
+- sage: from sage.geometry.polyhedron.cdd_file_format import cdd_Vrepresentation
+- sage: s = cdd_Vrepresentation('rational',[[0,0],[1,0],[0,1],[1,1]], [], [])
+- sage: from subprocess import Popen, PIPE
+- sage: cdd_proc = Popen(['cdd_both_reps_gmp', '--all'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
+- sage: ans, err = cdd_proc.communicate(input=s)
+- sage: p = Polyhedron(vertices = [[0,0],[1,0],[0,1],[1,1]], backend='cdd', base_ring=QQ)
+- sage: p._init_from_cdd_output(ans)
++ sage: p = Polyhedron(vertices = [[0,0],[1,0],[0,1],[1,1]], backend='cdd', base_ring=QQ) # indirect doctest
+ sage: p.vertices()
+ (A vertex at (0, 0), A vertex at (1, 0), A vertex at (0, 1), A vertex at (1, 1))
+ """
+- cddout=cdd_output_string.splitlines()
+- suppressed_vertex = False # whether cdd suppressed the vertex in output
+- parent = self.parent()
+-
+- # nested function
+- def expect_in_cddout(expected_string):
+- l = cddout.pop(0).strip()
+- if l!=expected_string:
+- raise ValueError('Error while parsing cdd output: expected "'
+- +expected_string+'" but got "'+l+'".\n')
+- # nested function
+- def cdd_linearities():
+- l = cddout[0].split()
+- if l[0] != "linearity":
+- return []
+- cddout.pop(0)
+- assert len(l) == int(l[1])+2, "Not enough linearities given"
+- return [int(i)-1 for i in l[2:]] # make indices pythonic
+-
+- # nested function
+- def cdd_convert(string, base_ring=self.base_ring()):
+- """
+- Converts the cdd output string to a numerical value.
+- """
+- return [base_ring(x) for x in string.split()]
+-
+- # nested function
+- def find_in_cddout(expected_string):
+- """
+- Find the expected string in a list of strings, and
+- truncates ``cddout`` to start at that point. Returns
+- ``False`` if search fails.
+- """
+- for pos in range(0,len(cddout)):
+- l = cddout[pos].strip();
+- if l==expected_string:
+- # must not assign to cddout in nested function
+- for i in range(0,pos+1):
+- cddout.pop(0)
+- return True
+- return False
+-
+- if find_in_cddout('V-representation'):
++ cddout = cddout.splitlines()
++
++ def parse_indices(count, cdd_indices, cdd_indices_to_sage_indices=None):
++ cdd_indices = map(int, cdd_indices)
++ if cdd_indices_to_sage_indices is None:
++ cdd_indices_to_sage_indices = {i:i-1 for i in cdd_indices}
++ if count < 0:
++ assert cdd_indices_to_sage_indices is not None, "Did not expect negative counts here"
++ count = -count
++ cdd_indices = list(set(cdd_indices_to_sage_indices.keys()) - set(cdd_indices))
++ assert count in [len(cdd_indices), len(cdd_indices) -1]
++ assert count == len(cdd_indices)
++ return [cdd_indices_to_sage_indices[i] for i in cdd_indices if cdd_indices_to_sage_indices[i] is not None]
++
++ def parse_linearities(intro):
++ for entries in intro:
++ if entries and entries.pop(0) == 'linearity':
++ return parse_indices(int(entries.pop(0)), entries)
++ return []
++
++ def parse_H_representation(intro, data):
++ if '_Hrepresentation' in self.__dict__:
++ raise NotImplementedError("can not replace internal representation as this breaks caching")
++ self._Hrepresentation = []
++ # we drop some entries in cdd's output and this changes the numbering; this dict keeps track of that
++ self._cdd_H_to_sage_H = {}
++ equations = parse_linearities(intro)
++ data[0].pop(2) # ignore data type, we know the base ring already
++ count, dimension = map(int, data.pop(0))
++ assert self.ambient_dim() == dimension - 1, "Unexpected ambient dimension"
++ assert len(data) == count, "Unexpected number of lines"
++ for i, line in enumerate(data):
++ coefficients = map(self.base_ring(), line)
++ if coefficients[0] != 0 and all([e == 0 for e in coefficients[1:]]):
++ # cddlib sometimes includes an implicit plane at infinity: 1 0 0 ... 0
++ # We do not care about this entry.
++ self._cdd_H_to_sage_H[i+1] = None
++ continue
++
++ self._cdd_H_to_sage_H[i+1] = len(self._Hrepresentation)
++ if i in equations:
++ self.parent()._make_Equation(self, coefficients)
++ else:
++ self.parent()._make_Inequality(self, coefficients)
++
++ self._Hrepresentation = tuple(self._Hrepresentation)
++
++ def parse_V_representation(intro, data):
++ if '_Vrepresentation' in self.__dict__:
++ raise NotImplementedError("can not replace internal representation as this breaks caching")
+ self._Vrepresentation = []
+- lines = cdd_linearities()
+- expect_in_cddout('begin')
+- l = cddout.pop(0).split()
+- assert self.ambient_dim() == int(l[1])-1, "Different ambient dimension?"
+- suppressed_vertex = True
+- for i in range(int(l[0])):
+- l = cddout.pop(0).strip()
+- l_type = l[0]
+- l = l[1:]
++ # we drop some entries in cdd's output and this changes the numbering; this dict keeps track of that
++ self._cdd_V_to_sage_V = {}
++ lines = parse_linearities(intro)
++ data[0].pop(2) # ignore data type, we know the base ring already
++ count, dimension = map(int, data.pop(0))
++ assert self.ambient_dim() == dimension - 1, "Unexpected ambient dimension"
++ assert len(data) == count, "Unexpected number of lines"
++ has_vertex = False
++ for i, line in enumerate(data):
++ kind = line.pop(0)
++ coefficients = map(self.base_ring(), line)
++ self._cdd_V_to_sage_V[i+1] = len(self._Vrepresentation)
+ if i in lines:
+- parent._make_Line(self, cdd_convert(l));
+- elif l_type == '0':
+- parent._make_Ray(self, cdd_convert(l));
++ self.parent()._make_Line(self, coefficients);
++ elif kind == '0':
++ self.parent()._make_Ray(self, coefficients);
+ else:
+- parent._make_Vertex(self, cdd_convert(l));
+- suppressed_vertex = False
+- if suppressed_vertex and self.n_Vrepresentation()>0:
+- # cdd does not output the vertex if it is only the origin
+- parent._make_Vertex(self, [0] * self.ambient_dim())
++ self.parent()._make_Vertex(self, coefficients)
++ has_vertex = True
++ if len(self._Vrepresentation) and not has_vertex:
++ # when the Polyhedron consists only of lines/rays from the
++ # origin, cddlib does not output the single vertex at the
++ # origin so we have to add it here as the Polyhedron class
++ # expects it to be there.
++ self.parent()._make_Vertex(self, [self.base_ring().zero()] * self.ambient_dim())
+ self._Vrepresentation = tuple(self._Vrepresentation)
+- expect_in_cddout('end')
+
+- if find_in_cddout('H-representation'):
+- self._Hrepresentation = []
+- equations = cdd_linearities()
+- expect_in_cddout('begin')
+- l = cddout.pop(0).split()
+- assert self.ambient_dim() == int(l[1])-1, "Different ambient dimension?"
+- for i in range(int(l[0])):
+- l = cddout.pop(0)
+- if i in equations:
+- parent._make_Equation(self, cdd_convert(l));
+- else:
+- parent._make_Inequality(self, cdd_convert(l));
+- self._Hrepresentation = tuple(self._Hrepresentation)
+- expect_in_cddout('end')
+-
+- # nested function
+- def cdd_adjacencies():
+- l = cddout.pop(0).split()
+- assert l[2] == ':', "Not a line of the adjacency data?"
+- return [int(i)-1 for i in l[3:]]
+-
+- if find_in_cddout('Vertex graph'):
+- n = len(self._Vrepresentation);
+- if suppressed_vertex:
+- n_cdd=n-1;
+- else:
+- n_cdd=n;
+- self._V_adjacency_matrix = matrix(ZZ, n, n, 0)
+- if not find_in_cddout('begin'):
+- raise ValueError('Error while parsing cdd output: could not '
+- 'find "begin" after "Vertex graph"')
+- l = cddout.pop(0).split()
+- assert int(l[0]) == n_cdd, "Not enough V-adjacencies in cdd output?"
+- for i in range(n_cdd):
+- for a in cdd_adjacencies():
+- self._V_adjacency_matrix[i,a] = 1
++ def parse_adjacency(intro, data, N, cdd_indices_to_sage_indices):
++ ret = matrix(ZZ, N, N, 0)
++ cdd_vertex_count = int(data.pop(0)[0])
++ data.reverse()
++ for adjacencies in data:
++ assert adjacencies[2] == ':', "Not a line of adjacency data"
++ cdd_vertex = int(adjacencies[0])
++ count = int(adjacencies[1])
++
++ # cdd sometimes prints implicit adjacencies for the plane at
++ # infinity at the end of the output (even though it's not part
++ # of the V/H representation) so we ignore indices that we do
++ # not know about.
++ if cdd_vertex not in cdd_indices_to_sage_indices:
++ cdd_indices_to_sage_indices[cdd_vertex] = None
++ v = cdd_indices_to_sage_indices[cdd_vertex]
++ if v is None:
++ continue
++ for w in parse_indices(count, adjacencies[3:], cdd_indices_to_sage_indices):
++ if w is None:
++ continue
++ ret[v, w] = 1
++ return ret
++
++ def parse_vertex_adjacency(intro, data):
++ if '_V_adjacency_matrix' in self.__dict__:
++ raise NotImplementedError("can not replace internal representation as this breaks caching")
++ N = len(self._Vrepresentation)
++ self._V_adjacency_matrix = parse_adjacency(intro, data, N, self._cdd_V_to_sage_V)
++ for i, v in enumerate(self._Vrepresentation):
+ # cdd reports that lines are never adjacent to anything.
+- # I disagree, they are adjacent to everything!
+- if self._Vrepresentation[i].is_line():
+- for j in range(n):
++ # we disagree, they are adjacent to everything.
++ if v.is_line():
++ for j in range(len(self._Vrepresentation)):
+ self._V_adjacency_matrix[i,j] = 1
+ self._V_adjacency_matrix[j,i] = 1
+- self._V_adjacency_matrix[i,i] = 0
+- if suppressed_vertex: # cdd implied that there is only one vertex
+- for i in range(n-1):
+- self._V_adjacency_matrix[i,n-1] = 1
+- self._V_adjacency_matrix[n-1,i] = 1
++ self._V_adjacency_matrix[i,i] = 0
+ self._V_adjacency_matrix.set_immutable()
+- expect_in_cddout('end')
+-
+- if find_in_cddout('Facet graph'):
+- n = len(self._Hrepresentation);
+- self._H_adjacency_matrix = matrix(ZZ, n, n, 0)
+- if not find_in_cddout('begin'):
+- raise ValueError('Error while parsing cdd output: could not '
+- 'find "begin" after "Facet graph"')
+- l = cddout.pop(0).split()
+- assert int(l[0]) == n, "Not enough H-adjacencies in cdd output?"
+- for i in range(n):
+- for a in cdd_adjacencies():
+- self._H_adjacency_matrix[i,a] = 1
++ self.vertex_adjacency_matrix.set_cache(self._V_adjacency_matrix)
++
++ def parse_facet_adjacency(intro, data):
++ if '_H_adjacency_matrix' in self.__dict__:
++ raise NotImplementedError("can not replace internal representation as this breaks caching")
++ N = len(self._Hrepresentation)
++ self._H_adjacency_matrix = parse_adjacency(intro, data, N, self._cdd_H_to_sage_H)
+ self._H_adjacency_matrix.set_immutable()
+- expect_in_cddout('end')
++ self.facet_adjacency_matrix.set_cache(self._H_adjacency_matrix)
++
++ Polyhedron_cdd._parse_block(cddout, 'H-representation', parse_H_representation)
++ Polyhedron_cdd._parse_block(cddout, 'V-representation', parse_V_representation)
++ Polyhedron_cdd._parse_block(cddout, 'Facet adjacency', parse_facet_adjacency)
++ Polyhedron_cdd._parse_block(cddout, 'Vertex adjacency', parse_vertex_adjacency)
+
+
+-#########################################################################
+ class Polyhedron_QQ_cdd(Polyhedron_cdd, Polyhedron_QQ):
+ """
+ Polyhedra over QQ with cdd
+@@ -350,7 +359,7 @@ class Polyhedron_QQ_cdd(Polyhedron_cdd, Polyhedron_QQ):
+
+ _cdd_type = 'rational'
+
+- _cdd_executable = 'cdd_both_reps_gmp'
++ _cdd_executable = 'cddexec_gmp'
+
+ def __init__(self, parent, Vrep, Hrep, **kwds):
+ """
+@@ -369,7 +378,6 @@ class Polyhedron_QQ_cdd(Polyhedron_cdd, Polyhedron_QQ):
+ Polyhedron_cdd.__init__(self, parent, Vrep, Hrep, **kwds)
+
+
+-#########################################################################
+ class Polyhedron_RDF_cdd(Polyhedron_cdd, Polyhedron_RDF):
+ """
+ Polyhedra over RDF with cdd
+@@ -392,7 +400,7 @@ class Polyhedron_RDF_cdd(Polyhedron_cdd, Polyhedron_RDF):
+ """
+ _cdd_type = 'real'
+
+- _cdd_executable = 'cdd_both_reps'
++ _cdd_executable = 'cddexec'
+
+ def __init__(self, parent, Vrep, Hrep, **kwds):
+ """
+diff --git a/src/sage/geometry/polyhedron/base.py b/src/sage/geometry/polyhedron/base.py
+index 34f0a3f..a8ca502 100644
+--- a/src/sage/geometry/polyhedron/base.py
++++ b/src/sage/geometry/polyhedron/base.py
+@@ -46,10 +46,9 @@ from sage.categories.sets_cat import EmptySetError
+ # * derive from Polyhedron_base
+ #
+ # * you must implement _init_from_Vrepresentation and
+-# _init_from_Vrepresentationa
++# _init_from_Hrepresentation
+ #
+-# * You might want to override _init_empty_polyhedron,
+-# _init_facet_adjacency_matrix, _init_vertex_adjacency_matrix, and
++# * You might want to override _init_empty_polyhedron and
+ # _make_polyhedron_face.
+ #
+ # * You can of course also override any other method for which you
+diff --git a/src/sage/geometry/polyhedron/library.py b/src/sage/geometry/polyhedron/library.py
+index bbadbb3..2cdc728 100644
+--- a/src/sage/geometry/polyhedron/library.py
++++ b/src/sage/geometry/polyhedron/library.py
+@@ -1100,18 +1100,23 @@ class Polytopes():
+
+ EXAMPLES::
+
+- sage: td = polytopes.truncated_dodecahedron() # long time - 6secs
+- sage: td.f_vector() # long time
++ sage: td = polytopes.truncated_dodecahedron()
++ sage: td.f_vector()
+ (1, 60, 90, 32, 1)
+- sage: td.base_ring() # long time
++ sage: td.base_ring()
+ Number Field in sqrt5 with defining polynomial x^2 - 5
+
+- A much faster implementation using floating point approximations::
++ The faster implementation using floating point approximations does not
++ work unfortunately, see https://github.com/cddlib/cddlib/pull/7 for a
++ detailed discussion of this case::
+
+ sage: td = polytopes.truncated_dodecahedron(exact=False)
+- sage: td.f_vector()
++ Traceback (most recent call last):
++ ...
++ ValueError: polyhedron data is numerically complicated; cdd could not convert between inexact V and H representation without loss of data
++ sage: td.f_vector() # not tested
+ (1, 60, 90, 32, 1)
+- sage: td.base_ring()
++ sage: td.base_ring() # not tested
+ Real Double Field
+
+ Its faces are 20 triangles and 12 regular decagons::
+@@ -1323,21 +1328,25 @@ class Polytopes():
+ sage: ti.base_ring() # long time
+ Number Field in sqrt5 with defining polynomial x^2 - 5
+
+- A much faster implementation using floating point approximations::
++ The faster implementation using floating point approximations does not
++ work unfortunately::
+
+ sage: ti = polytopes.truncated_icosidodecahedron(exact=False)
+- sage: ti.f_vector()
++ Traceback (most recent call last):
++ ...
++ ValueError: polyhedron data is numerically complicated; cdd could not convert between inexact V and H representation without loss of data
++ sage: ti.f_vector() # not tested
+ (1, 120, 180, 62, 1)
+- sage: ti.base_ring()
++ sage: ti.base_ring() # not tested
+ Real Double Field
+
+ Its faces are 30 squares, 20 hexagons and 12 decagons::
+
+- sage: sum(1 for f in ti.faces(2) if len(f.vertices()) == 4)
++ sage: sum(1 for f in ti.faces(2) if len(f.vertices()) == 4) # long time
+ 30
+- sage: sum(1 for f in ti.faces(2) if len(f.vertices()) == 6)
++ sage: sum(1 for f in ti.faces(2) if len(f.vertices()) == 6) # long time
+ 20
+- sage: sum(1 for f in ti.faces(2) if len(f.vertices()) == 10)
++ sage: sum(1 for f in ti.faces(2) if len(f.vertices()) == 10) # long time
+ 12
+ """
+ if base_ring is None and exact:
+@@ -1382,26 +1391,32 @@ class Polytopes():
+
+ - ``backend`` -- the backend to use to create the polytope.
+
+- EXAMPLES::
++ EXAMPLES:
++
++ Unfortunately, no polyhedra backend supports the construction of the
++ snub dodecahedron at the moment::
+
+ sage: sd = polytopes.snub_dodecahedron()
+- sage: sd.f_vector()
++ Traceback (most recent call last):
++ ...
++ ValueError: *Error: Numerical inconsistency is found. Use the GMP exact arithmetic.
++ sage: sd.f_vector() # not tested
+ (1, 60, 150, 92, 1)
+- sage: sd.base_ring()
++ sage: sd.base_ring() # not tested
+ Real Double Field
+
+ Its faces are 80 triangles and 12 pentagons::
+
+- sage: sum(1 for f in sd.faces(2) if len(f.vertices()) == 3)
++ sage: sum(1 for f in sd.faces(2) if len(f.vertices()) == 3) # not tested
+ 80
+- sage: sum(1 for f in sd.faces(2) if len(f.vertices()) == 5)
++ sage: sum(1 for f in sd.faces(2) if len(f.vertices()) == 5) # not tested
+ 12
+ """
+ if base_ring is None:
+ base_ring = RDF
+ phi = (1 + base_ring(5).sqrt()) / 2
+- xi = ((phi/2 + (phi - 5/27).sqrt()/2).nth_root(3) +
+- (phi/2 - (phi - 5/27).sqrt()/2).nth_root(3))
++ xi = ((phi/2 + (phi - 5/27).sqrt()/2)**(~ZZ(3)) +
++ (phi/2 - (phi - 5/27).sqrt()/2)**(~ZZ(3)))
+
+ alpha = xi - 1 / xi
+ beta = xi * phi + phi**2 + phi / xi
+@@ -1549,14 +1564,18 @@ class Polytopes():
+ sage: gap # not tested - very long time
+ A 4-dimensional polyhedron in (Number Field in sqrt5 with defining polynomial x^2 - 5)^4 defined as the convex hull of 100 vertices
+
+- Computation with approximated coordinates is much faster::
++ Computation with approximated coordinates would be much faster but is
++ not supported currently::
+
+ sage: gap = polytopes.grand_antiprism(exact=False)
+- sage: gap
++ Traceback (most recent call last):
++ ...
++ ValueError: polyhedron data is numerically complicated; cdd could not convert between inexact V and H representation without loss of data
++ sage: gap # not tested
+ A 4-dimensional polyhedron in RDF^4 defined as the convex hull of 100 vertices
+- sage: gap.f_vector()
++ sage: gap.f_vector() # not tested
+ (1, 100, 500, 720, 320, 1)
+- sage: len(list(gap.bounded_edges()))
++ sage: len(list(gap.bounded_edges())) # not tested
+ 500
+ """
+ from itertools import product
+diff --git a/src/sage/libs/ppl.pyx b/src/sage/libs/ppl.pyx
+index 5366c74..e318e86 100644
+--- a/src/sage/libs/ppl.pyx
++++ b/src/sage/libs/ppl.pyx
+@@ -110,14 +110,11 @@ basis vectors::
+ sage: C_Polyhedron(gs)
+ A 4-dimensional polyhedron in QQ^5 defined as the convex hull of 120 points
+
+-The above computation (using PPL) finishes without noticeable delay (timeit
+-measures it to be 90 microseconds on sage.math). Below we do the same
+-computation with cddlib, which needs more than 3 seconds on the same
+-hardware::
++The same computation with cddlib which is slightly slower::
+
+ sage: basis = list(range(5))
+ sage: gs = [ tuple(coeff) for coeff in Permutations(basis) ]
+- sage: Polyhedron(vertices=gs, backend='cdd') # long time (3s on sage.math, 2011)
++ sage: Polyhedron(vertices=gs, backend='cdd')
+ A 4-dimensional polyhedron in QQ^5 defined as the convex hull of 120 vertices
+
+ DIFFERENCES VS. C++
+--
+cgit v1.0-1-gd88e
+
+
+From 9a649fcb48922f2e211df3f5c6ee000342465711 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Julian=20R=C3=BCth?= <julian.rueth at fsfe.org>
+Date: Thu, 14 Jun 2018 11:31:40 +0200
+Subject: Fix failing doctests
+
+I think the current approach of failing if cdd can not convert back and forth
+is a bit too restrictive. Issuing a warning would probably be more appropriate.
+---
+ .../en/thematic_tutorials/geometry/polyhedra_tutorial.rst | 15 ++++++++-------
+ src/sage/categories/finite_coxeter_groups.py | 8 ++++++--
+ src/sage/geometry/polyhedron/backend_cdd.py | 4 ++++
+ src/sage/graphs/generators/smallgraphs.py | 11 ++++++++---
+ 4 files changed, 26 insertions(+), 12 deletions(-)
+
+diff --git a/src/doc/en/thematic_tutorials/geometry/polyhedra_tutorial.rst b/src/doc/en/thematic_tutorials/geometry/polyhedra_tutorial.rst
+index 0c20e1e..8b7e1d1 100644
+--- a/src/doc/en/thematic_tutorials/geometry/polyhedra_tutorial.rst
++++ b/src/doc/en/thematic_tutorials/geometry/polyhedra_tutorial.rst
+@@ -154,8 +154,8 @@ The chosen ring depends on the input format.
+ .. WARNING::
+
+ The base ring :code:`RDF` should be used with care. As it is not an exact
+- ring, certain computations may break, for example when dealing with
+- non-simplicial polyhedra.
++ ring, certain computations may break or silently produce wrong results, for
++ example when dealing with non-simplicial polyhedra.
+
+
+ The following example demonstrates the limitations of :code:`RDF`.
+@@ -166,8 +166,9 @@ The following example demonstrates the limitations of :code:`RDF`.
+ sage: D
+ A 3-dimensional polyhedron in (Number Field in sqrt5 with defining polynomial x^2 - 5)^3 defined as the convex hull of 20 vertices
+ sage: D_RDF = Polyhedron(vertices = [n(v.vector(),digits=6) for v in D.vertices()], base_ring=RDF)
+- sage: D_RDF
+- A 3-dimensional polyhedron in RDF^3 defined as the convex hull of 19 vertices
++ Traceback (most recent call last):
++ ...
++ ValueError: *Error: Numerical inconsistency is found. Use the GMP exact arithmetic.
+
+ .. end of output
+
+@@ -301,9 +302,9 @@ defined. The `H`-representation may contain equations:
+ ::
+
+ sage: P3.Hrepresentation()
+- (An equation (1.0, 1.0) x - 0.5 == 0,
+- An inequality (-2.0, 0.0) x + 1.0 >= 0,
+- An inequality (1.0, 0.0) x + 0.0 >= 0)
++ (An inequality (-2.0, 0.0) x + 1.0 >= 0,
++ An inequality (1.0, 0.0) x + 0.0 >= 0,
++ An equation (1.0, 1.0) x - 0.5 == 0)
+
+ .. end of output
+
+diff --git a/src/sage/categories/finite_coxeter_groups.py b/src/sage/categories/finite_coxeter_groups.py
+index e0b2846..8395895 100644
+--- a/src/sage/categories/finite_coxeter_groups.py
++++ b/src/sage/categories/finite_coxeter_groups.py
+@@ -712,11 +712,15 @@ class FiniteCoxeterGroups(CategoryWithAxiom):
+ If function is too slow, switching the base ring to
+ :class:`RDF` will almost certainly speed things up.
+
+- EXAMPLES::
++ EXAMPLES:
++
++ Unfortunately, an inexact base ring can not always be used::
+
+ sage: W = CoxeterGroup(['H',3], base_ring=RDF)
+ sage: W.permutahedron()
+- A 3-dimensional polyhedron in RDF^3 defined as the convex hull of 120 vertices
++ Traceback (most recent call last):
++ ...
++ ValueError: polyhedron data is numerically complicated; cdd could not convert between inexact V and H representation without loss of data
+
+ sage: W = CoxeterGroup(['I',7])
+ sage: W.permutahedron()
+diff --git a/src/sage/geometry/polyhedron/backend_cdd.py b/src/sage/geometry/polyhedron/backend_cdd.py
+index 85f6632..aaae546 100644
+--- a/src/sage/geometry/polyhedron/backend_cdd.py
++++ b/src/sage/geometry/polyhedron/backend_cdd.py
+@@ -115,6 +115,10 @@ class Polyhedron_cdd(Polyhedron_base):
+ s = self._run_cdd(s, '--repall', verbose=verbose)
+ self._init_from_cdd_output(s)
+ if not self.base_ring().is_exact():
++ if len(self._Vrepresentation) == 0:
++ # cdd (reasonably) refuses to handle empty polyhedra, so we
++ # skip this check
++ return
+ # cdd's parser can not handle the full output of --repall, so we
+ # need to extract the first block before we feed it back into cdd
+ s = s.splitlines()
+diff --git a/src/sage/graphs/generators/smallgraphs.py b/src/sage/graphs/generators/smallgraphs.py
+index bae02d7..084ed43 100644
+--- a/src/sage/graphs/generators/smallgraphs.py
++++ b/src/sage/graphs/generators/smallgraphs.py
+@@ -4454,14 +4454,19 @@ def TruncatedIcosidodecahedralGraph():
+ and 180 edges. For more information, see the
+ :wikipedia:`Truncated_icosidodecahedron`.
+
+- EXAMPLES::
++ EXAMPLES:
++
++ Unfortunately, this graph can not be constructed currently, due to numerical issues::
+
+ sage: g = graphs.TruncatedIcosidodecahedralGraph(); g
+- Truncated Icosidodecahedron: Graph on 120 vertices
+- sage: g.order(), g.size()
++ Traceback (most recent call last):
++ ...
++ ValueError: *Error: Numerical inconsistency is found. Use the GMP exact arithmetic.
++ sage: g.order(), g.size() # not tested
+ (120, 180)
+ """
+ from sage.geometry.polyhedron.library import polytopes
++ # note that dropping exact=False here makes the construction take forever
+ G = polytopes.icosidodecahedron(exact=False).truncation().graph()
+ G.name("Truncated Icosidodecahedron")
+ return G
+--
+cgit v1.0-1-gd88e
+
+
+From c4048677393f7088d1aa9a2c1392ed95d809d31c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Julian=20R=C3=BCth?= <julian.rueth at fsfe.org>
+Date: Thu, 14 Jun 2018 12:00:27 +0200
+Subject: Relax cddlib sanity checks
+
+sometimes cddlib's output is useful even if it fails to transform back and forth
+---
+ src/sage/categories/finite_coxeter_groups.py | 9 ++---
+ src/sage/geometry/polyhedron/backend_cdd.py | 6 ++-
+ src/sage/geometry/polyhedron/library.py | 56 +++++++++++++---------------
+ 3 files changed, 33 insertions(+), 38 deletions(-)
+
+diff --git a/src/sage/categories/finite_coxeter_groups.py b/src/sage/categories/finite_coxeter_groups.py
+index 8395895..78a89fd 100644
+--- a/src/sage/categories/finite_coxeter_groups.py
++++ b/src/sage/categories/finite_coxeter_groups.py
+@@ -712,15 +712,14 @@ class FiniteCoxeterGroups(CategoryWithAxiom):
+ If function is too slow, switching the base ring to
+ :class:`RDF` will almost certainly speed things up.
+
+- EXAMPLES:
+-
+- Unfortunately, an inexact base ring can not always be used::
++ EXAMPLES::
+
+ sage: W = CoxeterGroup(['H',3], base_ring=RDF)
+ sage: W.permutahedron()
+- Traceback (most recent call last):
++ doctest:warning
+ ...
+- ValueError: polyhedron data is numerically complicated; cdd could not convert between inexact V and H representation without loss of data
++ UserWarning: This polyhedron data is numerically complicated; cdd could not convert between the inexact V and H representation without loss of data. The resulting object might show inconsistencies.
++ A 3-dimensional polyhedron in RDF^3 defined as the convex hull of 120 vertices
+
+ sage: W = CoxeterGroup(['I',7])
+ sage: W.permutahedron()
+diff --git a/src/sage/geometry/polyhedron/backend_cdd.py b/src/sage/geometry/polyhedron/backend_cdd.py
+index aaae546..64f3002 100644
+--- a/src/sage/geometry/polyhedron/backend_cdd.py
++++ b/src/sage/geometry/polyhedron/backend_cdd.py
+@@ -82,7 +82,8 @@ class Polyhedron_cdd(Polyhedron_base):
+ # somewhat random numerical choices. (But I am not an
+ # expert in that field by any means.) See also
+ # https://github.com/cddlib/cddlib/pull/7.
+- raise ValueError("polyhedron data is numerically complicated; cdd could not convert between inexact V and H representation without loss of data")
++ from warnings import warn
++ warn("This polyhedron data is numerically complicated; cdd could not convert between the inexact V and H representation without loss of data. The resulting object might show inconsistencies.")
+ Polyhedron_cdd._parse_block(t.splitlines(), 'V-representation', parse)
+
+ def _init_from_Hrepresentation(self, ieqs, eqns, verbose=False):
+@@ -137,7 +138,8 @@ class Polyhedron_cdd(Polyhedron_base):
+ # optimized for numerical stability, and makes some
+ # somewhat random numerical choices. (But I am not an
+ # expert in that field by any means.)
+- raise ValueError("polyhedron data is numerically complicated; cdd could not convert between inexact V and H representation without loss of data")
++ from warnings import warn
++ warn("This polyhedron data is numerically complicated; cdd could not convert between the inexact V and H representation without loss of data. The resulting object might show inconsistencies.")
+ Polyhedron_cdd._parse_block(t.splitlines(), 'H-representation', parse)
+
+ def _run_cdd(self, cdd_input_string, cmdline_arg, verbose=False):
+diff --git a/src/sage/geometry/polyhedron/library.py b/src/sage/geometry/polyhedron/library.py
+index 2cdc728..1115978 100644
+--- a/src/sage/geometry/polyhedron/library.py
++++ b/src/sage/geometry/polyhedron/library.py
+@@ -1106,25 +1106,27 @@ class Polytopes():
+ sage: td.base_ring()
+ Number Field in sqrt5 with defining polynomial x^2 - 5
+
+- The faster implementation using floating point approximations does not
+- work unfortunately, see https://github.com/cddlib/cddlib/pull/7 for a
+- detailed discussion of this case::
+-
+- sage: td = polytopes.truncated_dodecahedron(exact=False)
+- Traceback (most recent call last):
+- ...
+- ValueError: polyhedron data is numerically complicated; cdd could not convert between inexact V and H representation without loss of data
+- sage: td.f_vector() # not tested
+- (1, 60, 90, 32, 1)
+- sage: td.base_ring() # not tested
+- Real Double Field
+-
+ Its faces are 20 triangles and 12 regular decagons::
+
+ sage: sum(1 for f in td.faces(2) if len(f.vertices()) == 3)
+ 20
+ sage: sum(1 for f in td.faces(2) if len(f.vertices()) == 10)
+ 12
++
++ The faster implementation using floating point approximations does not
++ fully work unfortunately, see https://github.com/cddlib/cddlib/pull/7
++ for a detailed discussion of this case::
++
++ sage: td = polytopes.truncated_dodecahedron(exact=False)
++ doctest:warning
++ ...
++ UserWarning: This polyhedron data is numerically complicated; cdd could not convert between the inexact V and H representation without loss of data. The resulting object might show inconsistencies.
++ sage: td.f_vector()
++ Traceback (most recent call last):
++ ...
++ KeyError: ...
++ sage: td.base_ring()
++ Real Double Field
+ """
+ if base_ring is None and exact:
+ from sage.rings.number_field.number_field import QuadraticField
+@@ -1328,25 +1330,21 @@ class Polytopes():
+ sage: ti.base_ring() # long time
+ Number Field in sqrt5 with defining polynomial x^2 - 5
+
+- The faster implementation using floating point approximations does not
+- work unfortunately::
++ The implementation using floating point approximations is much faster::
+
+ sage: ti = polytopes.truncated_icosidodecahedron(exact=False)
+- Traceback (most recent call last):
+- ...
+- ValueError: polyhedron data is numerically complicated; cdd could not convert between inexact V and H representation without loss of data
+- sage: ti.f_vector() # not tested
++ sage: ti.f_vector()
+ (1, 120, 180, 62, 1)
+- sage: ti.base_ring() # not tested
++ sage: ti.base_ring()
+ Real Double Field
+
+ Its faces are 30 squares, 20 hexagons and 12 decagons::
+
+- sage: sum(1 for f in ti.faces(2) if len(f.vertices()) == 4) # long time
++ sage: sum(1 for f in ti.faces(2) if len(f.vertices()) == 4)
+ 30
+- sage: sum(1 for f in ti.faces(2) if len(f.vertices()) == 6) # long time
++ sage: sum(1 for f in ti.faces(2) if len(f.vertices()) == 6)
+ 20
+- sage: sum(1 for f in ti.faces(2) if len(f.vertices()) == 10) # long time
++ sage: sum(1 for f in ti.faces(2) if len(f.vertices()) == 10)
+ 12
+ """
+ if base_ring is None and exact:
+@@ -1564,18 +1562,14 @@ class Polytopes():
+ sage: gap # not tested - very long time
+ A 4-dimensional polyhedron in (Number Field in sqrt5 with defining polynomial x^2 - 5)^4 defined as the convex hull of 100 vertices
+
+- Computation with approximated coordinates would be much faster but is
+- not supported currently::
++ Computation with approximated coordinates is much faster::
+
+ sage: gap = polytopes.grand_antiprism(exact=False)
+- Traceback (most recent call last):
+- ...
+- ValueError: polyhedron data is numerically complicated; cdd could not convert between inexact V and H representation without loss of data
+- sage: gap # not tested
++ sage: gap
+ A 4-dimensional polyhedron in RDF^4 defined as the convex hull of 100 vertices
+- sage: gap.f_vector() # not tested
++ sage: gap.f_vector()
+ (1, 100, 500, 720, 320, 1)
+- sage: len(list(gap.bounded_edges())) # not tested
++ sage: len(list(gap.bounded_edges()))
+ 500
+ """
+ from itertools import product
+--
+cgit v1.0-1-gd88e
+
+
+From 32987a6aa197b274cb4bf550a8fa5567250924a5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Julian=20R=C3=BCth?= <julian.rueth at fsfe.org>
+Date: Thu, 21 Jun 2018 16:29:35 +0200
+Subject: Update hashes with actual release hashes
+
+---
+ build/pkgs/cddlib/checksums.ini | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/build/pkgs/cddlib/checksums.ini b/build/pkgs/cddlib/checksums.ini
+index c3a6a0d..943d71a 100644
+--- a/build/pkgs/cddlib/checksums.ini
++++ b/build/pkgs/cddlib/checksums.ini
+@@ -1,2 +1,4 @@
+ tarball=cddlib-VERSION.tar.gz
+-sha1=f7f2f2a9706ed514652ae6adbc990bd4bba02891
++sha1=4bad24b32d9c056615377ff3103e6b95e17628ac
++md5=73e5f7dfa72b5c3339c09564721813d6
++cksum=3211115816
+--
+cgit v1.0-1-gd88e
+
Added: sagemath-cypari2.patch
===================================================================
--- sagemath-cypari2.patch (rev 0)
+++ sagemath-cypari2.patch 2018-09-05 07:44:12 UTC (rev 376925)
@@ -0,0 +1,58 @@
+From da380b320ecd1821dfc2d981c87fe20c2b53c606 Mon Sep 17 00:00:00 2001
+From: Jeroen Demeyer <jdemeyer at cage.ugent.be>
+Date: Tue, 10 Jul 2018 15:47:12 +0200
+Subject: Upgrade cypari2
+
+---
+ build/pkgs/cypari/checksums.ini | 6 +++---
+ build/pkgs/cypari/package-version.txt | 2 +-
+ src/sage/rings/number_field/number_field_rel.py | 7 +++----
+ 3 files changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/build/pkgs/cypari/checksums.ini b/build/pkgs/cypari/checksums.ini
+index 98475cd..56701e9 100644
+--- a/build/pkgs/cypari/checksums.ini
++++ b/build/pkgs/cypari/checksums.ini
+@@ -1,4 +1,4 @@
+ tarball=cypari2-VERSION.tar.gz
+-sha1=d27b8a80470514471a59e38f3e7248c677c58abb
+-md5=38149046fbdbecc390ce45e28fc10f8a
+-cksum=296167081
++sha1=0f5b274e599c6a6fc9038ac3f4fa4ec86f10a258
++md5=81397fc5665239f23bb22838d84e2f5b
++cksum=1009515002
+diff --git a/build/pkgs/cypari/package-version.txt b/build/pkgs/cypari/package-version.txt
+index 65087b4..26aaba0 100644
+--- a/build/pkgs/cypari/package-version.txt
++++ b/build/pkgs/cypari/package-version.txt
+@@ -1 +1 @@
+-1.1.4
++1.2.0
+diff --git a/src/sage/rings/number_field/number_field_rel.py b/src/sage/rings/number_field/number_field_rel.py
+index aa585f6..b3f9c9e 100644
+--- a/src/sage/rings/number_field/number_field_rel.py
++++ b/src/sage/rings/number_field/number_field_rel.py
+@@ -1103,8 +1103,8 @@ class NumberField_relative(NumberField_generic):
+ element = self.base_field().coerce(element)
+ element = to_abs_base(element)
+ # Express element as a polynomial in the absolute generator of self
+- zk, czk = self._pari_nfzk()
+- expr_x = self._pari_base_nf()._nfeltup(element._pari_polynomial(), zk, czk)
++ nfzk = self._pari_nfzk()
++ expr_x = self._pari_base_nf()._nfeltup(element._pari_polynomial(), nfzk)
+ # We do NOT call self(...) because this code is called by
+ # __init__ before we initialize self.gens(), and self(...)
+ # uses self.gens()
+@@ -1515,8 +1515,7 @@ class NumberField_relative(NumberField_generic):
+ sage: K.<a> = NumberField(x^2 - 2)
+ sage: L.<b> = K.extension(x^2 - 3)
+ sage: L._pari_nfzk()
+- ([2, -x^3 + 9*x], 1/2)
+-
++ [[2, -x^3 + 9*x], 1/2]
+ """
+ return self._pari_base_nf()._nf_nfzk(self._pari_rnfeq())
+
+--
+cgit v1.0-1-gd88e
+
More information about the arch-commits
mailing list