2008-11-15  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/check-representation.cpp:
	Fix typo in output text

2008-05-28  Raymond Hemmecke, I-308  <hemmecke@theta.imst.uni-magdeburg.de>

	* code/latte/normalize/normaliz_wrapper.cpp: *** empty log message ***

2008-04-24  Raymond Hemmecke, I-308  <hemmecke@theta.imst.uni-magdeburg.de>

	* code/latte/normalize/normaliz_wrapper.cpp: *** empty log message ***

2008-04-24  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp: *** empty log message ***

	* code/latte/normalize/normaliz_wrapper.cpp:
	Add some command-line error handling

	* code/latte/normalize/normalize.cpp (enumerate_simplicial_cone_with_latte):
	Handle all vectors in the
	fundapiped, don't be fooled by Boolean shortcircuiting

2008-04-24  Raymond Hemmecke, I-308  <hemmecke@theta.imst.uni-magdeburg.de>

	* code/latte/normalize/normaliz_wrapper.cpp: *** empty log message ***

2008-04-23  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp: *** empty log message ***

2008-04-23  Raymond Hemmecke, I-308  <hemmecke@theta.imst.uni-magdeburg.de>

	* code/latte/normalize/normaliz_wrapper.cpp: *** empty log message ***

2008-04-23  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp:
	Don't report on triangulations if none were done.

2008-04-23  Raymond Hemmecke, I-308  <hemmecke@theta.imst.uni-magdeburg.de>

	* code/latte/normalize/normaliz_wrapper.cpp: *** empty log message ***

2008-04-22  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/Makefile.am, code/latte/normalize/normalize_main.cpp:
	*** empty log message ***

	* code/latte/normalize/normaliz_wrapper.cpp: Use normaliz library

2008-04-21  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normaliz_wrapper.cpp:
	From 4ti2/src/utils/normaliz_wrapper.c (1.7)

	* code/latte/normalize/normalize.cpp:
	New option -- output-trivial-subcones

	* code/latte/ReadSubcones.cpp (ReadSubcones):
	Initialize index_hint slot.

	* code/latte/cone.cpp, code/latte/cone.h (listCone):
	New slot index_hint

2008-04-18  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp: Report triangulation statistics.

	* code/latte/latte_gmp.cpp, code/latte/latte_gmp.h (convert_ZZ_to_mpz):
	New overloaded variant.

	* code/latte/latte_4ti2.cpp, code/latte/latte_4ti2.h (rays_to_transposed_4ti2_VectorArray):
	New.

	* code/latte/triangulation/RegularTriangulationWith4ti2.cpp:
	Finish rank test for heights.

	* code/latte/barvinok/barvinok.cpp, code/latte/barvinok/barvinok.h (BarvinokParameters):
	New statistics on triangulations

2008-04-17  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/triangulation/RegularTriangulationWith4ti2.cpp:
	Construct the lattice basis manually, to save time.
	Use index hints.

	* code/latte/ReadSubcones.cpp, code/latte/ReadSubcones.h:
	Create and use index hints to speed up writing subcones files.

	* code/latte/cone.cpp, code/latte/cone.h (listVector):
	New slot index_hint.

	* code/latte/triangulation/RegularTriangulationWith4ti2.cpp:
	Speed up trivial test, prepare rank test for heights.

	* code/latte/latte_gmp.cpp, code/latte/latte_gmp.h (convert_vec_ZZ_to_mpz_vector):
	New overloaded variant.

	* code/latte/cone.cpp, code/latte/cone.h: Constification.

2008-04-14  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp:
	Print how many subcones processed.

	* code/latte/cone_consumer.cpp, code/latte/cone_consumer.h (ProgressPrintingConeTransducer):
	New.

2008-04-12  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* m4/4ti2-check.m4: Adapt to namespacification of zsolve.

	* code/latte/triangulation/RegularTriangulationWith4ti2.cpp:
	Don't talk about trivial subdivisions.

2008-04-10  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp:
	Install SIGUSR1, SIGUSR2 handlers that control vebosity

	* code/latte/triangulation/RegularTriangulationWith4ti2.cpp:
	If height are all the same, do nothing.

2008-04-09  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp:
	Fix behavior for zero timelimit (meaning no timelimit).

2008-04-08  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp: Restore zsolve-timelimit feature.

	* code/latte/triangulation/RegularTriangulationWith4ti2.h, code/latte/triangulation/SpecialSimplex.cpp, code/latte/triangulation/triangulate.cpp, code/latte/DualizationWith4ti2.cpp, code/latte/ReadSubcones.cpp, code/latte/barvinok/barvinok.cpp, code/latte/barvinok/barvinok.h, code/latte/cone.cpp, code/latte/cone.h, code/latte/dual.cpp, code/latte/latte_4ti2_zsolve.cpp, code/latte/latte_4ti2_zsolve.h, code/latte/latte_ntl.cpp, code/latte/latte_ntl.h, code/latte/normalize/ReductionTestWithCPLEX.cpp, code/latte/normalize/normalize.cpp, code/latte/triangulation/BoundaryTriangulation.cpp, code/latte/triangulation/RegularTriangulation.cpp, code/latte/triangulation/RegularTriangulation.h, code/latte/triangulation/RegularTriangulationWith4ti2.cpp:
	Merge from cxx_zsolve_branch.

	* code/latte/normalize/normalize.cpp: Use new C++ zsolve.

	* code/latte/latte_4ti2_zsolve.cpp, code/latte/latte_4ti2_zsolve.h:
	Interface to the new C++ zsolve.

	* code/latte/normalize/normalize.cpp: Be quiet on --quiet.

2008-04-07  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp: Handle non-fulldimensional cones.

	* code/latte/DualizationWith4ti2.cpp (dualizeCone_with_4ti2):
	Handle non-fulldimensional cones.

	* code/latte/normalize/ReductionTestWithCPLEX.cpp:
	Improve diagnosis if repr-ip.lp cannot be written to.

	* code/latte/latte_4ti2_zsolve.cpp, code/latte/latte_4ti2_zsolve.h (facets_to_4ti2_zsolve_LinearSystem):
	Change interface, handle
	non-fulldimensional cones.

	* code/latte/dual.cpp (dualizeCone):
	Handle "subspace_generators" and "equalities".
	(dualizeCone_with_cdd): Assert cone is pointed.

	* code/latte/cone.cpp, code/latte/cone.h (listCone):
	Add slots "subspace_generators" and "equalities".

2008-04-04  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp:
	Also use the name of the subcones file to construct the name of the
	.hil and .stats file.

	* code/latte/triangulation/triangulate.cpp:
	Unless triangulation_assume_fulldim is true, don't assume cones with M
	rays in ambient dimension M are simplicial.

	* code/latte/normalize/normalize.cpp:
	Handle lower-dimensional cones with M rays in ambient dimension M
	properly -- don't assume they are full-dimensional and simplicial.

	* code/latte/barvinok/barvinok.cpp, code/latte/barvinok/barvinok.h (BarvinokParameters):
	New quirky parameter,
	triangulation_assume_fulldim

	* code/latte/triangulation/SpecialSimplex.cpp, code/latte/triangulation/BoundaryTriangulation.cpp, code/latte/triangulation/RegularTriangulationWith4ti2.cpp, code/latte/triangulation/RegularTriangulationWith4ti2.h (triangulate_cone_with_4ti2):
	Remove unused cone_dimension argument.

	* code/latte/ReadSubcones.cpp: Check whether writes are successful.

2008-04-03  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp:
	Implement enumeration of fundamental parallelepiped.
	New option, --max-determinant-for-enumeration.

	* code/latte/latte_ntl.cpp, code/latte/latte_ntl.h, code/latte/latte_4ti2_zsolve.cpp (convert_ZZ_to_int):
	Move from latte_4ti2_zsolve.cpp to latte_ntl.h, latte_ntl.cpp

	* code/latte/cone.cpp, code/latte/cone.h: Some constification.

	* code/latte/normalize/normalize.cpp:
	New option --triangulation-pull-rays=INDEX,...

2008-04-02  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/barvinok/barvinok.cpp, code/latte/barvinok/barvinok.h (triangulation_prescribed_height_data):
	New slot.

	* code/latte/normalize/normalize.cpp: New option,
	--triangulation-height-vector=4TI2-ROWVECTOR-FILE

	* code/latte/triangulation/RegularTriangulation.cpp, code/latte/triangulation/RegularTriangulation.h (prescribed_height):
	New.

	* code/latte/triangulation/RegularTriangulationWith4ti2.cpp:
	New option, --debug-triangulation.

	(random_regular_triangulation_with_4ti2): If
	triangulation_prescribed_height_data is given, use it.

	* code/latte/triangulation/triangulate.cpp:
	New option, --debug-triangulation

2008-03-11  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/DualizationWith4ti2.cpp, code/latte/VertexConesWith4ti2.cpp, code/latte/latte_4ti2.h, code/latte/normalize/normalize.cpp, code/latte/triangulation/RegularTriangulationWith4ti2.cpp:
	Use new header file location of 4ti2 headers.

	* m4/4ti2-check.m4:
	Update 4ti2 library check to new C++ rewrite of zsolve.

2008-03-04  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/ReadSubcones.cpp (ReadSubcones):
	Call SetNumcones with the number read from the file.

	* code/latte/normalize/normalize.cpp: Handle --help.

2007-10-19  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/Residue.cpp, code/latte/RudyResNTL.cpp,
	code/latte/RudyResNTL.h, code/latte/banner.cpp,
	code/latte/barvinok/Cone.cpp,
	code/latte/barvinok/SubspaceAvoidingDecomposition.cpp,
	code/latte/barvinok/Triangulation.cpp,
	code/latte/barvinok/barvinok.cpp, code/latte/barvinok/barvinok.h,
	code/latte/barvinok/dec.cpp, code/latte/binarySearchIP.cpp,
	code/latte/count.cpp, code/latte/dual.cpp, code/latte/ehrhart.cpp,
	code/latte/genFunction/IntCombEnum.cpp,
	code/latte/genFunction/NTL_to_LiDIA.cpp,
	code/latte/genFunction/piped.cpp, code/latte/maximize.cpp,
	code/latte/minimize.cpp, code/latte/normalize/normalize.cpp,
	code/latte/polyhedron-to-cones.cpp, code/latte/preprocess.cpp,
	code/latte/print.cpp, code/latte/rational.cpp,
	code/latte/triangulation/BoundaryTriangulation.cpp,
	code/latte/triangulation/test-triangulation.cpp,
	code/latte/triangulation/triangulate.cpp,
	code/latte/vertices/cdd.cpp, code/latte/CheckEmpty.cpp,
	code/latte/ConeInfo.cpp, code/latte/ExponentialApprox.cpp,
	code/latte/ExponentialSubst.cpp, code/latte/Grobner.cpp,
	code/latte/IntegralHull.cpp, code/latte/Irrational.cpp,
	code/latte/ProjectUp.cpp, code/latte/ReadPolyhedron.cpp,
	code/latte/ReadingFile.cpp, code/latte/ResSingle.cpp: Send all
	debugging and progress messages to standard error rather than
	standard output. Now only the final result (usually a number of
	lattice points) should appear on standard output.  
	Reported by Nicolas Thiery.

2007-10-15  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* ReadSubcones.cpp: Fix a build problem with GCC 3.2.3

2007-10-09  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Version 1.2-mk-0.9

2007-10-06  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* ReadPolyhedron.cpp, ReadPolyhedron.h:
	New option --input-vertex-cones=CONES

	* print.cpp (printVectorToFile): Add length assertion.
	(readConeFromFile): Read more data, not just the rays.  Don't reverse
	list of rays.

	* cone.cpp, cone.h (ambient_cone_dimension): New.

	* count.cpp (--ehrhart-polynomial):
	Turn on --exp automatically, rather than complain to user.

	* count.cpp: In Ehrhart polynomial mode, use tight-inequality
	information BEFORE shifting cones to the origin.  Fixes wrong
	result for "code/latte/count --compute-vertex-cones=cdd
	--ehrhart-polynomial --exp --all-primal
	/home/mkoeppe/w/latte/EXAMPLES/matroid/haws.oxleybasis.txt.l10.lat"

2007-10-03  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* triangulation/test-triangulation.cpp: Compute facets using 2 *
	dualizeCone, rather than computeDetAndFacetsOfSimplicialCone, to
	also handle general subdivisions

	* dual.cpp (computeDetAndFacetsOfSimplicialCone): Add assertions
	that we indeed have a full-dimensional simplicial cone.

2007-09-30  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* triangulation/RegularTriangulation.cpp: Use mpq_ instead of dd_
	functions

2007-07-13  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* count.cpp: For all operations except the computation of
	multivariate generating function, refuse to handle unbounded
	polyhedra (where the computed results would be meaningless).

	* count.cpp: New option "--multivariate-generating-function".

	* genFunction/maple.cpp (GeneratingFunctionWritingConeConsumer):
	Read off the dimension of the
	cone from the lattice points, not the vertex.  (Workaround for
	broken ProjectUp2, which currently does not handle the vertex.)

	* cone_consumer.cpp (CompositeConeConsumer): Implemented.
	(compose): Implement corresponding overload.

	* ReadPolyhedron.cpp: When equations are present, fill the
	"projecting_up_transducer" slot of the Polyhedron.

2007-07-12  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* Polyhedron.h (Polyhedron): New slot, *projecting_up_transducer

	* ProjectUp.cpp, ProjectUp.h (ProjectUp2): Add assertions.
	(ProjectingUpConeTransducer): New class.

	* barvinok/barvinok.cpp,
	barvinok/barvinok.h (DelegatingSingleConeParameters): New class.

	* genFunction/piped.cpp,
	genFunction/piped.h (PointsInParallelepipedComputingConeTransducer):
	New class.

	* genFunction/maple.cpp,
	genFunction/maple.h (GeneratingFunctionWritingConeConsumer): New
	class.

	* Makefile.am: New files ProjectUp.h, .cpp

	* Grobner.cpp, ehrhart.cpp, maximize.cpp, minimize.cpp:
	Fix #include list

	* ProjectUp.cpp, ProjectUp.h, ReadingFile.cpp,
	ReadingFile.h (ProjectUp, ProjectUp2): Move from ReadingFile.h,
	.cpp to new files ProjectUp.h, .cpp

	* vertices/cdd.h, ReadingFile.cpp: Clean #include list

	* ReadPolyhedron.cpp: Use changed interface of
	computeVertexConesWith4ti2.

	* VertexConesWith4ti2.cpp, VertexConesWith4ti2.h:
	Report whether unbounded.

	* Polyhedron.h (Polyhedron): New slot "unbounded".

	* CheckEmpty.cpp: Clean #include list

2007-07-11  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* VertexConesWith4ti2.cpp (computeVertexConesWith4ti2): Handle
	unbounded polyhedra properly
	(don't mistake rays for vertices).

	* latte2ext.cpp, latte2ine.cpp: Use changed interface of
	ReadLatteStyleMatrix.

	* ReadLatteStyle.cpp (add_nonnegativity): Don't use set_copy to
	copy equality-ness between sets of different ground-set
	cardinalities.  (Fixes BUG, where sporadically inequalities were
	turned into equalities.)

	* ReadPolyhedron.cpp: New options
	--dilation=DILATION-FACTOR (equivalent to old option "dil
	DILATION-FACTOR") and --interior (equivalent to "+").

	* count.cpp: New option --count-lattice-points corresponding to
	the default.  Show more help on --help.

	* dual.cpp, dual.h (show_standard_dualization_option): New.

	* normalize/normalize.cpp: Use it here.

	* triangulation/triangulate.cpp,
	triangulation/triangulate.h (show_standard_triangulation_options):
	New.

2007-07-01  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/ReadPolyhedron.cpp, code/latte/ReadPolyhedron.h:
	Rewrite the reading of input files and the redundancy check.

	The "equ" command-line option is now ignored.

	New command-line option --redundancy-check={none,cddlib,full-cddlib}.
	"full-cddlib" uses cddlib to compute an irredundant system of linear
	equations and inequalities describing the polyhedron.  This
	corresponds to the traditional behavior; it can be expensive.
	"cddlib" (the new default) uses cddlib to compute the implicit linearities only.
	"none" does nothing, the input description of the polytope should be
	irredundant.

	* code/latte/ReadLatteStyle.cpp, code/latte/ReadLatteStyle.h
	(ReadLatteStyleMatrix): Extend interface to accept a
	"nonnegativity" flag.
	(ReadLatteStyleVrep): Move to ReadPolyhedron.h, .cpp

	* code/latte/count.cpp: Don't remove the file storing the
	non-redundant representation (we no longer create one).

	* code/latte/latte_cddlib.cpp, code/latte/latte_cddlib.h 
	(cddlib_matrix_to_equations_and_inequalities): New.

	* code/latte/preprocess.cpp: Don't #include "ReadingFile.h".

	If polyhedron is not bounded, exit with code 1.

	* code/latte/triangulation/test-triangulation.cpp:
	Use dualizeCones instead of dualizeBackCones

	* code/test-suite/test.pl.in:
	Fix test result of corrected example "4x4Table11".

2007-06-30  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* EXAMPLES/yoshida/4x4Table11: Add missing "linearity" keyword

2007-06-28  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/triangulation/BoundaryTriangulation.cpp:
	Use dualizeCone instead of dualizeBackCones.

	* code/latte/count.cpp: Use changed interface of dualizeCones.
	Use dualizeCones instead of dualizeBackCones.

	In the all-primal algorithm, if only the facets of vertex cones are
	known [happens when computed with 4ti2], first compute the rays.

	* code/latte/VertexConesWith4ti2.cpp: Don't compute the rays.
	Get sign of the facets right.

	* code/latte/ExponentialApprox.cpp:
	Use dualizeCone instead of dualizeBackCones.

	* code/latte/barvinok/dec.cpp:
	Use dualizeCones instead of dualizeBackCones.

	* code/latte/barvinok/barvinok.cpp:
	Use dualizeCone instead of dualizeBackCones.

	* code/latte/dual.cpp, code/latte/dual.h (dualizeBackCones):
	Removed; use dualizeCones everywhere.
	(dualizeCones): Change interface (no longer return the list).

2007-06-27  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/ReadPolyhedron.cpp, code/latte/ReadPolyhedron.h:
	New option --redundancy-check=...

	* code/latte/VertexConesWith4ti2.cpp (computeVertexConesWith4ti2):
	Fix memory leaks.

	* code/latte/VertexConesWith4ti2.cpp: Special-case simplicial
	vertex cones (for speed).

	* code/latte/Makefile.am (VertexConesWith4ti2.h, .cpp): New files.

	* code/latte/count.cpp: Old-style "lrs" command line option is now
	handled by ReadPolyhedron.cpp

	* code/latte/ReadPolyhedron.cpp, code/latte/ReadPolyhedron.h:
	Handle new command-line option --compute-vertex-cones={cdd,lrs,4ti2}.

	* code/latte/VertexConesWith4ti2.cpp, code/latte/VertexConesWith4ti2.h:
	New files

2007-04-10  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/print.cpp, code/latte/print.h (readListConeFromFile):
	New overload.

	* code/latte/ReadPolyhedron.cpp:
	Support listCone format in conjunction with --subcones

2007-04-09  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/triangulation/BoundaryTriangulation.cpp (compute_triangulation_of_boundary):
	Use 4ti2 instead of cddlib for
	computing the facet triangulations.

2007-04-01  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/Makefile.am (triangulate-boundary): New program.

	* code/latte/ReadPolyhedron.cpp, code/latte/ReadPolyhedron.h (ReadPolyhedron):
	Support intermediate input specifications:
	--input-primal-homog-cone=CONE.ext
	--input-dual-homog-cone=CONE.ext
	--subcones=FILENAME
	--input-primal-homog-cones=CONES
	--input-dual-homog-cones=CONES

	* code/latte/count.cpp: Implement --help switch.

	* code/latte/cone_consumer.cpp (ListConeReadingConeProducer):
	Handle file-open error.

2007-03-30  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp: Constness fix

2007-03-29  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/Polyhedron.h, code/latte/ReadLatteStyle.cpp,
	code/latte/ReadSubcones.cpp, code/latte/ehrhart.cpp,
	code/latte/latte_4ti2_zsolve.cpp, code/latte/latte_system.cpp,
	code/latte/normalize/ReductionTest.cpp,
	code/latte/normalize/normalize.cpp,
	code/latte/triangulation/BoundaryTriangulation.cpp,
	code/latte/triangulation/triangulate.cpp: 
	Fix compiler warnings.

	* configure.ac: Fix CPLEX flags.

	* code/latte/print.cpp (printListConeToFile): Beautify error message.

	* code/latte/ReadPolyhedron.cpp:
	Complain if no input filename was given.

	* code/latte/Makefile.am, code/latte/polyhedron-to-cones.cpp:
	New file polyhedron-to-cones.cpp

	* code/latte/normalize/Makefile.am:
	Build the check-representation program again.

	* code/latte/normalize/check-representation.cpp:
	Use the code moved into ReductionTest.

	* code/latte/normalize/ReductionTest.cpp,
	code/latte/normalize/ReductionTest.h,
	code/latte/normalize/ReductionTestWithCPLEX.cpp,
	code/latte/normalize/ReductionTestWithCPLEX.h (ReductionTest::GetDimension):
	New.

	* code/latte/ReadSubcones.cpp (IncrementalVectorFileWriter):
	Flush the stream.

	* code/latte/Makefile.am:
	Move normalize-related programs to sub-Makefile

	* configure.ac: New Makefile, code/latte/normalize/Makefile

	* code/latte/ReadLatteStyle.cpp,
	code/latte/ReadLatteStyle.h (ReadLatteStyleMatrix): Add
	"homogenize" argument.

	* code/latte/normalize/normalize.cpp: Use ReductionTest.

	* code/latte/normalize/Makefile.am,
	code/latte/normalize/ReductionTest.cpp,
	code/latte/normalize/ReductionTest.h,
	code/latte/normalize/ReductionTestWithCPLEX.cpp,
	code/latte/normalize/ReductionTestWithCPLEX.h: 
	New files

	* code/latte/normalize/normalize.cpp:
	Use IncrementalVectorFileWriter for writing the .hil file

	* code/latte/ReadSubcones.cpp, code/latte/ReadSubcones.h (IncrementalVectorFileWriter):
	New class, factored out from SubconePrintingConeConsumer.
	(SubconePrintingConeConsumer): Use it here.

	* code/latte/latte_4ti2_zsolve.h:
	Undefine some macros created by the zsolve headers.

2007-03-28  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/triangulation/BoundaryTriangulation.cpp,
	code/latte/triangulation/BoundaryTriangulation.h
	(compute_triangulation_of_boundary,
	complete_boundary_triangulation_of_cone_with_subspace_avoiding_facets): 
	New.
	(boundary_triangulation_of_cone_with_subspace_avoiding_facets):
	Implement in terms of these functions.

	* code/latte/Makefile.am: New files ReadPolyhedron.h, .cpp

	* code/latte/count.cpp: Move input handling to ReadPolyhedron.h, .cpp

	* code/latte/ReadPolyhedron.cpp, code/latte/ReadPolyhedron.h:
	New file, move input handling here from count.cpp

	* code/latte/ehrhart.cpp, code/latte/maximize.cpp, code/latte/minimize.cpp:
	Change calls to readLatteProblem, CDDstylereadLatteProblem, whose
	interfaces changed slightly.

	* code/latte/ReadingFile.cpp, code/latte/ReadingFile.h,
	code/latte/Grobner.cpp, code/latte/Grobner.h,
	code/latte/CheckEmpty.cpp, code/latte/CheckEmpty.h,
	code/latte/genFunction/maple.cpp, code/latte/genFunction/maple.h,
	code/latte/vertices/cdd.cpp, code/latte/vertices/cdd.h: Constness
	fixes.

2007-03-27  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/triangulation/BoundaryTriangulation.cpp:
	Check combinations of basis vectors

	* code/latte/triangulation/BoundaryTriangulation.cpp:
	Compute avoidance lattice.

2007-03-26  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/triangulation/BoundaryTriangulation.cpp: Fix last change.

2007-03-22  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* configure.ac: New configuration options, --with-cplex-sharedlib,
	--with-cplex-include.

	* code/latte/Makefile.am:
	Build check-representation only if CPLEX is available.

	* code/latte/normalize/check-representation.cpp: Finish.

2007-03-06  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/count.cpp:
	Don't override triangulation method if explicitly specified.

2007-03-04  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/count.cpp:
	Compute the tight inequalities of cones, rather than computing facets
	from rays.

	* code/latte/barvinok/barvinok.cpp, code/latte/barvinok/barvinok.h (barvinokStep):
	Export.

	* code/latte/ExponentialApprox.cpp, code/latte/ExponentialApprox.h:
	Decomposition according to worst-case bounds

	* code/latte/count.cpp: --approx implies --exp and (--irr or --all).

	* code/latte/Makefile.am: New files, heap.cpp, heap.h

	* code/latte/cone.cpp (copyCone): Copy the dual_determinant properly.

2007-03-03  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/count.cpp: --approximate implies --exponential.

	* code/latte/heap.h, code/latte/heap.cpp:
	Make compile in C++, remove GYWOPT-isms.

	* code/latte/heap.h, code/latte/heap.cpp: Taken from GYWOPT.

	* distro/Makefile.am: Quoting fixes.

	* code/latte/triangulation/triangulate.h (TriangulatingConeTransducer):
	New.

	* code/latte/triangulation/triangulate.cpp (parse_standard_triangulation_option):
	New option --triangulation-bias.

	(TriangulatingConeTransducer): New.

	* code/latte/triangulation/RegularTriangulationWith4ti2.cpp
	(random_regular_triangulation_with_4ti2): Use biased_random_height
	here if a bias is given.

	* code/latte/triangulation/RegularTriangulation.cpp,
	code/latte/triangulation/RegularTriangulation.h (biased_random_height):
	New.

	* code/latte/normalize/normalize.cpp: Restructure using
	producer/consumer pattern.  Subcone files.  ZSolve time limits.

	* code/latte/Makefile.am: New experimental sources.

	* code/latte/barvinok/barvinok.cpp, code/latte/barvinok/barvinok.h (BarvinokParameters):
	New slot, triangulation_bias.

	* code/latte/latte_gmp.cpp, code/latte/latte_gmp.h (convert_vec_ZZ_to_mpz_vector):
	New.

	* code/latte/latte_cddlib.cpp (cddlib_matrix_to_cone): Don't
	reverse the order of the rays.

	* code/latte/ReadSubcones.cpp, code/latte/ReadSubcones.h: New.

	* code/latte/cone_consumer.cpp, code/latte/cone_consumer.h:
	Add ConeProducer, ConeTransducer classes.

2007-02-27  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/cone_consumer.cpp, code/latte/cone_consumer.h (PrintingConeConsumer):
	Also count the cones.

	* code/latte/normalize/normalize.cpp: Uniquify results.
	Nothing to be done for unimodular cones.
	New options --no-triang-file, --quiet

	* code/latte/print.cpp, code/latte/print.h:
	Replace some vec_ZZ by "const vec_ZZ &", to avoid needless copying.

2007-02-26  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp: Don't keep all cones in memory.

	* code/latte/barvinok/barvinok.h (TriangulationType):
	Remove SubspaceAvoidingRecursiveTriangulation.
	(Single_Cone_Parameters): Inherit from ConeConsumer.

	* code/latte/triangulation/BoundaryTriangulation.cpp,
	code/latte/triangulation/BoundaryTriangulation.h,
	code/latte/triangulation/RegularTriangulationWith4ti2.cpp,
	code/latte/triangulation/RegularTriangulationWith4ti2.h,
	code/latte/triangulation/RegularTriangulationWithCdd.cpp,
	code/latte/triangulation/RegularTriangulationWithCdd.h,
	code/latte/triangulation/RegularTriangulationWithCddlib.cpp,
	code/latte/triangulation/RegularTriangulationWithCddlib.h,
	code/latte/triangulation/TriangulationWithTOPCOM.cpp,
	code/latte/triangulation/TriangulationWithTOPCOM.h,
	code/latte/triangulation/triangulate.cpp,
	code/latte/triangulation/triangulate.h (triangulateCone): 
	New version that sends subcones to a ConeConsumer,
	rather than collecting them.

	Change all backends.

	* code/latte/print.cpp, code/latte/print.h (readListConeFromFile):
	New CPS version.

	* code/latte/Makefile.am: Removed RecursiveTriangulation.h, .cpp.
	Added cone_consumer.h, cone_consumer.cpp.

	* code/latte/cone_consumer.cpp, code/latte/cone_consumer.h: New files.

	* code/latte/triangulation/RecursiveTriangulation.cpp,
	code/latte/triangulation/RecursiveTriangulation.h: Removed.

2007-02-25  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp: Recursively subdivide if too
	many facets

	* code/latte/normalize/normalize.cpp: Some beautification

	* code/latte/normalize/normalize.cpp: Make 4ti2 dualization default.
	More stats.

	* configure.ac, code/test-suite/test.pl.in: Install test.pl

	* code/latte/count.cpp, code/latte/normalize/normalize.cpp:
	Handle --dualization={4ti2,cdd}

	* code/latte/dual.cpp, code/latte/dual.h 
	(dualization_type_from_name, parse_standard_dualization_option):
	New.

	* code/latte/Makefile.am: New files DualizationWith4ti2.h, .cpp

	* code/latte/DualizationWith4ti2.cpp, code/latte/DualizationWith4ti2.h:
	New files.

	* code/latte/normalize/normalize.cpp, code/latte/barvinok/dec.cpp,
	code/latte/count.cpp,
	code/latte/triangulation/RecursiveTriangulation.cpp: Change all
	callers of dualizeCone, dualizeCones.

	* code/latte/dual.cpp, code/latte/dual.h (dualizeCone):
	Change interface to accept BarvinokParameters. Pick
	dualization method accordingly.  Handle simplicial cones directly,
	using computeDetAndFacetsOfSimplicialCone.
	(dualizeCones): Likewise, also keep track of dualize_time.

	* code/latte/barvinok/barvinok.cpp, code/latte/barvinok/barvinok.h:
	New parameter, dualization.

2007-02-23  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/normalize/normalize.cpp:
	Don't forget to handle the triangulation options.

	* code/latte/normalize/normalize.cpp: Fix memory leaks.

2007-02-21  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* doc/examplebrion.eps, doc/manual.tex, doc/secrets.tex:
	Manual sources, from Raymond.

	* code/latte/triangulation/test-triangulation.cpp:
	Vertex is now initialized in readConeFromFile.

	* code/latte/print.cpp (readConeFromFile): Initialize the vertex.

	* code/latte/triangulation/test-triangulation.cpp:
	Move read_cone function into print.cpp

	* code/latte/latte_4ti2_zsolve.cpp (convert_ZZ_to_int):
	Don't lose the sign.
	(facets_to_4ti2_zsolve_LinearSystem): Use shorthand.

	* code/latte/print.cpp, code/latte/print.h (readConeFromFile,
	readListConeFromFile): New.

2007-02-19  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/latte_4ti2_zsolve.cpp, code/latte/latte_4ti2_zsolve.h:
	New.

	* code/latte/dual.cpp (dualizeCone): If facets and rays are
	already computed, just swap.

	* code/latte/count.cpp: Use parse_standard_triangulation_option.

	* code/latte/latte2ext.cpp: New.

	* code/latte/barvinok/barvinok.cpp, code/latte/barvinok/barvinok.h
	(BarvinokParameters): New parameters triangulation_max_height,
	nonsimplicial_subdivision.

	* code/latte/triangulation/RegularTriangulationWithCddlib.cpp
	(random_regular_triangulation_with_cddlib): Use the
	triangulation_max_height parameter.

	(triangulate_cone_with_4ti2): Handle the nonsimplicial_subdivision
	parameter.

	* code/latte/triangulation/RegularTriangulationWith4ti2.cpp
	(random_regular_triangulation_with_4ti2): Use the
	triangulation_max_height parameter.

	(triangulate_cone_with_4ti2): Handle lower-dimensional cones.

	* code/latte/triangulation/RegularTriangulation.cpp (random_height):
	Use the data parameter.

	* code/latte/triangulation/triangulate.cpp,
	code/latte/triangulation/triangulate.h (parse_standard_triangulation_option):
	New.

	* m4/4ti2-check.m4: Check for the 4ti2 zsolve library, too.

2007-02-18  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Version 1.2-mk-0.8

2007-02-17  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* configure.ac: Check for 4ti2.

	* m4/4ti2-check.m4: New.

	* code/latte/Makefile.am: Put object files in a directory
	hierarchy parallel to the source directory.

	* code/latte/count.cpp: Don't warn if
	SubspaceAvoidingBoundaryTriangulation is specified.

	* code/latte/latte_4ti2.cpp, code/latte/latte_4ti2.h: New.

	* code/latte/latte_cddlib.cpp,
	code/latte/latte_cddlib.h (cddlib_matrix_to_cone): New.

	* code/latte/barvinok/barvinok.h: New triangulation method,
	RegularTriangulationWith4ti2.

	* code/latte/triangulation/triangulate.cpp: New triangulation
	method "4ti2".

	* code/latte/triangulation/test-triangulation.cpp: Allow reading
	CDD .ext files as input.  Triangulation method can be specified
	with --cddlib.

	* code/latte/triangulation/RegularTriangulationWith4ti2.cpp,
	code/latte/triangulation/RegularTriangulationWith4ti2.h: New.

	* code/latte/triangulation/RegularTriangulation.cpp,
	code/latte/triangulation/RegularTriangulation.h: New, move some
	functions here from RegularTriangulationWithCddlib.h, .cpp

	* code/latte/triangulation/RegularTriangulationWithCddlib.cpp,
	code/latte/triangulation/RegularTriangulationWithCddlib.h: Move
	some functions to RegularTriangulation.h, .cpp

	* code/latte/vertices/cdd.cpp (createCddExtFile2): Check input file.

2007-01-12  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/triangulation/BoundaryTriangulation.cpp: Choose
	interior ray using generalized Dyer-Kannan method, rather than
	randomly.

2006-12-21  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/count.cpp: Allow to override triangulation method.

	* code/latte/triangulation/RecursiveTriangulation.cpp (check_rays):
	Fix output of the bad cone.

	* code/latte/triangulation/triangulate.cpp (triangulation_type_from_name):
	Handle --triangulation=boundary.

	* code/latte/triangulation/RegularTriangulationWithCddlib.cpp,
	code/latte/triangulation/RegularTriangulationWithCddlib.h (triangulate_cone_with_cddlib):
	Generalize to handle lower-dimensional input cones.

	Export some helper functions.

2006-12-20  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/triangulation/triangulate.cpp (triangulation_type_from_name):
	Handle "--triangulation=delone" (can also be spelt "delaunay").
	(triangulateCone): Handle DeloneTriangulationWithCddlib.

	* code/latte/triangulation/RegularTriangulationWithCddlib.cpp,
	code/latte/triangulation/RegularTriangulationWithCddlib.h 
	(random_regular_triangulation_with_cddlib):
	New, renamed from triangulate_cone_with_cddlib.
	(refined_delone_triangulation_with_cddlib): New.
	(triangulate_cone_with_cddlib): Generalized, made static.

	* code/latte/barvinok/barvinok.h (DeloneTriangulationWithCddlib):
	New triangulation type.

2006-12-12  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/triangulation/RegularTriangulationWithCddlib.cpp
	(triangulate_cone_with_cddlib): If the chosen heights were not
	generic, don't restart the whole computation but recurse on the
	non-simplicial subcones.

2006-12-09  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/Makefile.am: New files
	RegularTriangulationWithCddlib.h, .cpp

	* code/latte/count.cpp: Support command-line options
	--triangulation=cdd (the default) and --triangulation=cddlib.  Fix
	a memory leak.

	* code/latte/triangulation/triangulate.cpp,
	code/latte/triangulation/triangulate.h (triangulation_type_from_name):
	New.
	(triangulateCone): Handle RegularTriangulationWithCddlib.

	* code/latte/barvinok/barvinok.h (RegularTriangulationWithCddlib):
	New triangulation type.

	* code/latte/latte_cddlib.cpp, code/latte/latte_cddlib.h (rays_to_cddlib_matrix):
	Changed interface.

	* code/latte/preprocess.cpp: Fix memory leak.

	* code/latte/triangulation/RegularTriangulationWithCddlib.cpp,
	code/latte/triangulation/RegularTriangulationWithCddlib.h: New
	files.

2006-12-08  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/count.cpp: Fix typo.  Use
	SubspaceAvoidingBoundaryTriangulation instead of
	SubspaceAvoidingRecursiveTriangulation.

	* code/latte/Makefile.am (BoundaryTriangulation.h,
	BoundaryTriangulation.cpp): New experimental files.

	* code/latte/ReadLatteStyle.cpp (check_stream): Fix stream status
	check.
	(ReadLatteStyleMatrix): Check after reading the dimensions.
	(check_cddlib_error, convert_mpq_to_ZZ): Moved to other files.

	* code/latte/latte_cddlib.cpp,
	code/latte/latte_cddlib.h (check_cddlib_error,
	rays_to_cddlib_matrix, cone_to_cddlib_polyhedron): New.

	* code/latte/latte_gmp.cpp, code/latte/latte_gmp.h (convert_ZZ_to_mpq, convert_mpq_to_ZZ):
	New.

	* code/latte/barvinok/barvinok.h,
	code/latte/triangulation/triangulate.cpp (SubspaceAvoidingBoundaryTriangulation):
	New triangulation type.

	* code/latte/triangulation/BoundaryTriangulation.cpp,
	code/latte/triangulation/BoundaryTriangulation.h: New files.

2006-12-07  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* Makefile.am: Build the new latte2ine program.

	* latte2ine.cpp: New program.

	* count.cpp: Enable "homog --all-primal" (it still fails, though).
	In "--avoid-singularities" mode, don't enforce subspace-avoiding
	triangulation if we do all-primal decomposition.

	* triangulation/triangulate.h: Doc fix.

	* triangulation/triangulate.cpp (triangulateCone):
	If a simplicial cone is given, just return a copy.
	Fixes TOPCOM triangulation for some instances (example2, example3,
	hickerson-14, knapsackbaby2.equ); see test-suite run from 2006-12-02.

2006-12-06  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* barvinok/barvinok.cpp, barvinok/dec.cpp, count.cpp:
	decompose_time no longer includes triangulate_time.

	* code/latte/latte_gmp.cpp (convert_mpz_to_ZZ): Allocate the
	memory with new[], rather than letting GMP use its allocator
	function.  Fixes segfault when TOPCOM is used; it installs a
	custom allocator!

	* code/latte/Grobner.cpp, code/latte/cone.cpp, code/latte/cone.h,
	code/latte/preprocess.cpp, code/latte/ramon.cpp,
	code/latte/ramon.h (addVector, subVector, negativeVector):
	Removed.
	(freeListVector): Moved from ramon.h,.cpp to cone.h,.cpp

	* code/latte/Grobner.cpp, code/latte/ReadingFile.cpp,
	code/latte/convert.cpp, code/latte/count.cpp,
	code/latte/preprocess.cpp, code/latte/ramon.cpp,
	code/latte/ramon.h, code/latte/vertices/cdd.cpp (copyVector):
	Removed.

	* code/latte/Grobner.cpp, code/latte/ReadingFile.cpp,
	code/latte/convert.cpp, code/latte/count.cpp,
	code/latte/preprocess.cpp, code/latte/vertices/cdd.cpp: Fix
	several memory leaks.

2006-12-05  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/ReadingFile.cpp: Fix memory leak.

	* code/latte/RudyResNTL.cpp, code/latte/RudyResNTL.h,
	code/latte/barvinok/barvinok.cpp, code/latte/count.cpp,
	code/latte/dual.cpp,
	code/latte/triangulation/TriangulationWithTOPCOM.h,
	code/latte/triangulation/triangulate.h,
	code/latte/vertices/cdd.cpp: Fix memory leaks.

	* code/latte/cone.cpp, code/latte/cone.h (copyListVector, copyCone):
	New.

2006-12-04  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/triangulation/RecursiveTriangulation.cpp,
	code/latte/triangulation/RecursiveTriangulation.h,
	code/latte/triangulation/triangulate.cpp (triangulate_cone_recursively_with_subspace_avoiding_facets):
	Change interface.

	* code/latte/CheckEmpty.cpp, code/latte/ExponentialSubst.cpp,
	code/latte/ReadingFile.cpp, code/latte/barvinok/dec.cpp,
	code/latte/count.cpp, code/latte/ehrhart.cpp,
	code/latte/maximize.cpp, code/latte/minimize.cpp: Remove use of
	ConeDecom.h

	* code/latte/dual.cpp, code/latte/dual.h (dualizeCone):
	New, factored out from dualizeCones.

	* code/latte/triangulation/TriangulationWithTOPCOM.cpp:
	Fix conditionalization.

	* code/latte/Makefile.am, code/latte/barvinok/ConeDecom.cpp,
	code/latte/barvinok/ConeDecom.h, code/latte/barvinok/barvinok.cpp,
	code/latte/barvinok/barvinok.h: Merged ConeDecom.cpp, ConeDecom.h
	into barvinok.cpp, barvinok.h

2006-11-30  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* m4/cddlib-check.m4: Fix last change.

	* code/latte/adjacency/ComputeAdjacency.c,
	code/latte/adjacency/ComputeAdjacency.cpp,
	code/latte/adjacency/Makefile.am: Use latte_cddlib.h, so linkage
	configuration works.

	* code/latte/barvinok/barvinok.cpp (BarvinokParameters::print_statistics):
	Print irrationalize_time too.

2006-11-30  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	The new command-line option --triangulation=topcom allows to use
	TOPCOM for computing triangulations, rather than cddlib.
	
	* code/latte/count.cpp: New command-line option --triangulation=topcom.

	* code/latte/Makefile.am: Build TOPCOM-dependent objects if TOPCOM
	lib or binaries are available.

	* m4/topcom-check.m4: Also check for some TOPCOM binaries.

	* code/latte/triangulation/TriangulationWithTOPCOM.cpp:
	Use TOPCOM binaries if library is not available.

	* code/latte/latte_system.cpp (temporary_directory_name):
	Create directory if needed.

	* code/latte/barvinok/barvinok.h (PlacingTriangulationWithTOPCOM):
	New TriangulationType.

	* code/latte/triangulation/triangulate.cpp (triangulateCone):
	Handle PlacingTriangulationWithTOPCOM if TOPCOM library or
	binaries are available.

	* code/latte/triangulation/TriangulationWithTOPCOM.cpp,
	code/latte/triangulation/TriangulationWithTOPCOM.h (all_triangulations_of_cone_with_TOPCOM):
	New.

2006-11-29  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* m4/topcom-check.m4: Use CHECKREG library from TOPCOM.

	* m4/gmp-check.m4: Indicate whether GMP was built with --enable-cxx.

	* code/latte/latte_cddlib.h: Use extern "C" only if cddlib was
	built with a C compiler.

	* configure.ac: Complain if GMP was built without --enable-cxx.
	Check whether cddlib was built with a C or C++ compiler.
	Reported by Sven Verdoolaege.

	* code/latte/adjacency/ComputeAdjacency.cpp, code/latte/adjacency/Makefile.am:
	Use the C++ compiler to build the ComputeAdjacency program, so we can
	use a cddlib built with a C++ compiler.
	Reported by Sven Verdoolaege.

2006-11-28  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/triangulation/TriangulationWithTOPCOM.cpp,
	code/latte/triangulation/TriangulationWithTOPCOM.h: New files.

	* code/latte/Makefile.am: New files RegularTriangulationWithCdd.h,
	.cpp, TriangulationWithTOPCOM.h, .cpp, latte_ntl_integer.h

	* code/latte/ExponentialSubst.cpp, code/latte/ExponentialSubst.h,
	code/latte/ResSingle.cpp, code/latte/Residue.cpp,
	code/latte/RudyResNTL.cpp, code/latte/barvinok/dec.cpp,
	code/latte/count.cpp: Include latte_ntl_integer.h

	* code/latte/latte_ntl.h, code/latte/latte_ntl_integer.h:
	Move typedef "Integer" into a separate header file.

2006-11-27  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* configure.ac, m4/topcom-check.m4: Check for TOPCOM.

	* code/latte/count.cpp: New command-line option
	"--avoid-singularities".

	* code/latte/cone.cpp, code/latte/cone.h (lengthListVector):
	Moved here from ramon.h, ramon.cpp
	(appendListCones): New.

	* code/latte/ramon.cpp, code/latte/ramon.h (lengthListVector):
	Moved to cone.h, cone.cpp

	* code/latte/latte_random.h: Add documentation.

	* code/latte/barvinok/ConeDecom.cpp, code/latte/barvinok/ConeDecom.h:
	Use new infrastructure in triangulation.h

	* code/latte/barvinok/Triangulation.cpp (Triangulation_Load_Save):
	Accept NULL filename if not loading/saving.

	* code/latte/barvinok/barvinok.h (BarvinokParameters): Move
	Cone_Index slot here from subclass Single_Cone_Parameters.  New
	SubspaceAvoidingRecursiveTriangulation.

	* code/latte/barvinok/barvinok.cpp (BarvinokParameters):
	Initialize all slots in the constructor to default values.

	* code/latte/Makefile.am: Use new files.

	* code/latte/triangulation/RecursiveTriangulation.cpp,
	code/latte/triangulation/RecursiveTriangulation.h,
	code/latte/triangulation/RegularTriangulationWithCdd.cpp,
	code/latte/triangulation/RegularTriangulationWithCdd.h,
	code/latte/triangulation/test-triangulation.cpp,
	code/latte/triangulation/triangulate.cpp,
	code/latte/triangulation/triangulate.h: New files.

2006-11-24  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/TrivialSubst.cpp, code/latte/TrivialSubst.h: New files.

	* code/latte/barvinok/barvinok.cpp (barvinok_DFS): Allow the
	decomposition method to fail; perform ``emergency enumeration'' in
	this case.

	* code/latte/barvinok/dec.cpp (readListCone): Removed.
	(decomposeCones): New overload.

	* code/latte/barvinok/barvinok.cpp,
	code/latte/barvinok/barvinok.h (BarvinokParameters): New slots to
	specify triangulation and short-vector method.

	* code/latte/barvinok/SubspaceAvoidingDecomposition.cpp,
	code/latte/barvinok/SubspaceAvoidingDecomposition.h,
	code/latte/Makefile.am: New experimental files.

	* code/latte/latte_system.cpp (HOST_NAME_MAX): Define if unknown.

	* code/latte/count.cpp: Use new decomposeCones flavor.
	Prepare TrivialMonomialSubstitution.

	* code/latte/barvinok/dec.h (readListCone): Removed.
	(decomposeCones): New overload.

	* code/latte/barvinok/barvinok.cpp:
	Keep track of maximum depth of the decomposition.

2006-11-23  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/count.cpp: Merge functionality of ehrhart into count,
	using commmand-line options --ehrhart-series,
	--simplified-ehrhart-series, --ehrhart-taylor=N.

	* code/latte/ReadLatteStyle.cpp,
	code/latte/ReadLatteStyle.h (ReadLatteStyleMatrix): Export.
	(WriteLatteStyleMatrix): New.

2006-11-22  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/Makefile.am, code/latte/adjacency/Makefile.am:
	Remove use of := assignment, which Automake 1.10 does not like.

	* code/latte/latte_system.cpp: Fix includes.

2006-11-21  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* configure.ac: Make the Maple and script path available in config.h

	* code/latte/Makefile.am: Install the Maple scripts.

	* code/latte/ResSingle.cpp, code/latte/Residue.cpp, code/latte/RudyResNTL.cpp:
	Use the configured Maple path, and also use the full paths of the
	installed Maple scripts.  Fixes "ehrhart simplify".

	* code/latte/count.cpp: Fix output of negative Ehrhart coefficients.
	Thanks to Sven Verdoolaege.

2006-11-12  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/aggregation/aggregation.cpp: New.
	
2006-11-05  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/count.cpp: Initialize Poly->numOfVars.

	* code/latte/print.cpp, code/latte/print.h: Some const-ification.

	* code/latte/latte_system.cpp,
	code/latte/latte_system.h (create_temporary_directory,
	temporary_directory_name, remove_temporary_directory,
	temporary_file_name): New.

2006-10-12  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* count.cpp: Support "homog vrep".

	* vertices/cdd.cpp, vertices/cdd.h (createCddExtFile2, computeVertexConesFromVrep):
	Const fixes.
	(computeVertexConesFromVrep): Produce, not consume numOfVars.
	(readCddExtFile): Produce numOfVars.

	* ReadingFile.cpp, ReadingFile.h (IntVector, IntCone, IntCone2):
	Unused, removed.

	* ReadLatteStyle.cpp, ReadLatteStyle.h, Polyhedron.h,
	latte_cddlib.cpp, latte_cddlib.h: New files. 

	* cone.cpp, cone.h, ramon.cpp, ramon.h (appendVectorToListVector):
	Move from ramon.[ch] to cone.[ch].

2006-10-09  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Version 1.2-mk-0.7.1
	
	* Makefile.am (cvstag): New target.

2006-10-04  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/rational.cpp (constructRay): Speed up.

	* code/latte/barvinok/Triangulation.h (Triangulation): Unused, removed.

	* code/latte/barvinok/barvinok.cpp (barvinokStep):
	Fix copying of vertex, fixes segmentation fault.

2006-10-04  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/rational.cpp (constructRay): Speed up.

	* code/latte/barvinok/Triangulation.cpp (writeCDDextFileRudy):
	Don't request computation of input_adjacency (unused).
	(Triangulation): Unused, removed.

	* code/latte/barvinok/barvinok.cpp (barvinokStep): Fix copying of
	vertex, fixes segmentation fault.

2006-10-03  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Version 1.2-mk-0.7

2006-10-02  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/Makefile.am, code/latte/ExponentialEhrhart.cpp,
	code/latte/ExponentialEhrhart.h, code/latte/count.cpp: New code
	for computing Ehrthart polynomials of integral polytopes
	(count --ehrhart-polynomial).

	* code/latte/ExponentialSubst.cpp,
	code/latte/ExponentialSubst.h (compute_sums_of_scalar_powers,
	compute_sums_of_scalar_powers_mpz): New, factored out from
	computeExponentialResidue_Single.
	(computeExponentialResidue_Single): Use it here.

	* code/latte/count.cpp, code/latte/ExponentialApprox.cpp,
	code/latte/IntegralHull.cpp, code/latte/Irrational.cpp,
	code/latte/ResSingle.cpp, code/latte/RudyResNTL.cpp,
	code/latte/barvinok/ConeDecom.cpp,
	code/latte/barvinok/ConeDecom.h, code/latte/barvinok/barvinok.cpp,
	code/latte/barvinok/barvinok.h, code/latte/barvinok/dec.cpp,
	code/latte/barvinok/dec.h, code/latte/dual.cpp,
	code/latte/ehrhart.cpp, code/latte/genFunction/piped.cpp,
	code/latte/maximize.cpp, code/latte/minimize.cpp,
	code/latte/print.cpp, code/latte/vertices/cdd.cpp: Adapt to change
	of vertex representation.

	* code/latte/cone.h (Vertex): New class.
	(listCone): Change representation of the vertex.

	* code/latte/myheader.h: Removed.

2006-10-01  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Some performance improvements, in particular for the all-primal
	method. 
	
	* code/latte/dual.cpp (dualizeCones): Fix memory leak, improve
	performance of rational vectors.

	* code/latte/rational.h (rationalVector::set_entry): Extend interface.

	* code/latte/Irrational.cpp (simplifyConeStabilityCube): New.
	(computeConeStabilityCube): Use it here to return simpler rational
	numbers, using powers of two.
	(irrationalizeCone): Use powers of two.
	(isConeIrrational): Use InnerProductModulo.

	* code/latte/latte_ntl.cpp, code/latte/latte_ntl.h (InnerProductModulo):
	New.

	* code/latte/Makefile.am: New file latte_ntl.cpp.

2006-09-22  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/rational.cpp: New constructor for initializing from
	an integer vector and a common denominator.
	(constructRay): Re-implement.
	(canonicalizeRationalVector): Access data directly to avoid
	repeated compute_integer_scale calls.

2006-09-16  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Version 1.2-mk-0.6
	
2006-09-16  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Add copyright and license notices to all source files.  Files
	without any author notices are marked "Copyright 2002-2004 Jesus
	A. De Loera, David Haws, Raymond Hemmecke, Peter Huggins, Jeremy
	Tauzer, Ruriko Yoshida" (the original LattE team).

	* code/latte/count.cpp: New command-line switches --polynomial,
	--dual, reflecting current default behavior.

2006-09-15  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/ReadingFile.cpp (CheckRed): Handle errors of redcheck_gmp.

	* code/latte/CheckEmpty.cpp (CheckEmpty): Handle errors of CDD+.

2006-09-14  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/genFunction/piped.cpp (PointsInParallelepipedGenerator::GeneratePoint):
	Repair computation of points; fixes polynomial substitution.

2006-09-13  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Performance improvements.
	
	* code/latte/ExponentialSubst.cpp: Remove unused var.

	* code/latte/Irrational.cpp, code/latte/ResSingle.cpp,
	code/latte/RudyResNTL.cpp, code/latte/binarySearchIP.cpp,
	code/latte/count.cpp, code/latte/dual.cpp, code/latte/ehrhart.cpp,
	code/latte/maximize.cpp, code/latte/genFunction/maple.h,
	code/latte/minimize.cpp, code/latte/print.cpp,
	code/latte/rational.cpp, code/latte/rational.h,
	code/latte/vertices/cdd.cpp, code/latte/genFunction/piped.cpp,
	code/latte/genFunction/piped.h: Change the interface to rational
	vectors, so the result of scaleRationalVectorToInteger can be
	cached.

	* code/latte/rational.cpp, code/latte/rational.h: Remove some
	unused functions.

	* code/latte/convert.cpp (transformArrayBigVectorToListVector):
	Save some copying.

	* code/latte/genFunction/piped.h,
	code/latte/genFunction/piped.cpp: Avoid computing with large
	numbers.  Precompute more data.
	(pointsInParallelepipedOfUnimodularCone):  Removed.  The general
	function is faster.
	
2006-09-04  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/genFunction/piped.cpp, code/latte/barvinok/dec.cpp:
	Remove unused variables.

	* code/latte/PolyTree.h (PolyTree_Node): Add virtual destructor to
	fix warning from GCC.

	* code/latte/Residue.cpp: Remove unused variable.

	* code/latte/count.cpp: Change calls to computeVertexConesFromVrep.
	Fix uninitialized-variable problem in "vrep" mode, which caused
	segfaults in SPARC/64-bit compiles.

	* code/latte/ehrhart.cpp, code/latte/maximize.cpp,
	code/latte/minimize.cpp, code/latte/ramon.cpp: Change calls to
	computeVertexConesFromVrep.

	* code/latte/vertices/cdd.cpp, code/latte/vertices/cdd.h
	(computeVertexConesFromVrep): Change interface to remove unused
	argument.

2006-09-03  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/count.cpp (main): Don't segfault when invoked without
	arguments.

	* code/latte/Irrational.cpp (computeConeStabilityCube_simplicial):
	Fix computation of center (always round down!).  Fixes test cases
	aardallenstra.equ, tru_cube_latte, tru_simplex_latte with "--irr
	--exp --maxdet=500" (Assertion failed, not integer equivalent with
	center).

2006-08-28  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/genFunction/NTL_to_LiDIA.cpp
	(convert_vec_ZZ_to_bigint_array): Remove implementation
	restriction; arbitrarily large numbers can now be copied.

	* code/latte/barvinok/barvinok.cpp,
	code/latte/barvinok/ConeDecom.cpp, code/latte/barvinok/Cone.cpp,
	code/latte/ResSingle.cpp, code/latte/RudyResNTL.cpp: Remove
	g++-isms.

2006-07-16  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/genFunction/piped.cpp,
	code/latte/genFunction/piped.h: Remove arbitrary limitation of the
	Smith normal form elements to machine integers.

	* code/latte/latte_random.cpp,
	code/latte/latte_random.h (uniform_random_number): Overload to
	handle NTL integers.
	(seed_random_generator): Also seed the NTL random generator.

2006-07-15  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/banner.cpp (latte_banner):
	Show web address of LattE macchiato.

2006-07-13  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/genFunction/piped.cpp (get_integer_comb): Fix a bug
	caused by integer overflow for `count vrep --exp --maxdet=1000
	random-simplex/random-simplex-dim4-digits2-9.vrep'.  

	* code/latte/count.cpp: Don't delete the input file in vrep mode.

2006-07-12  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* m4/gmp-check.m4: Use "-lgmpxx -lgmp"; the Solaris linker needs
	this order!

2006-07-06  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Version 1.2-mk-0.5

	* configure.ac: New release.

	* code/latte/count.cpp: Make the "--all-primal vrep" case work.

	* m4/lidia-check.m4: Fix for LiDIA 2.2.0.

	* code/latte/genFunction/NTL_to_LiDIA.cpp,
	code/latte/genFunction/matrix_ops.cpp: Fix LiDIA includes.

	* code/latte/dual.cpp (dualizeCones): Don't delete the facets of
	the first cone.

2006-07-04  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Version 1.2-mk-0.4
	
	* code/latte/Irrational.cpp, code/latte/Makefile.am,
	code/latte/barvinok/barvinok.cpp, code/latte/count.cpp: Include
	the irrationalization code in the distribution.

	* configure.ac: Try to determine "fast" compiler flags.

2006-07-03  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Revive the "vrep" code.
	
	* code/latte/adjacency/Makefile.am, code/latte/Makefile.am:
	New subdir "adjacency".

	* configure.ac: Check for cddlib, so we can build the
	ComputeAdjacency binary.  Compute and define
	COMPUTEADJACENCY_PATH.

	* m4/define_dir.m4: New file.

2006-07-02  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Implement the irrational all-primal method, where
	triangulation is also done in primal space.
	
	* code/latte/count.cpp: Measure time for irrationalization.

	* code/latte/Irrational.cpp (computeConeStabilityCube_general):
	Implement.
	(estimate_barvinok_depth): New, factored out from
	irrationalizeCone; implement for non-simplicial case.
	(irrationalizeCone): Use it here.

	* code/latte/vertices/cdd.cpp, code/latte/vertices/cdd.h
	(ReadLpsFile, LP): Extend interface.

	* code/latte/barvinok/barvinok.cpp,
	code/latte/barvinok/barvinok.h: New timer.

	* code/latte/Irrational.h (computeConeStabilityCube): Change
	interface, split implementation into two functions.

	* code/latte/Irrational.cpp (irrationalizeCone): Estimates are
	based on maximum entry of rays, not facets.
	(computeConeStabilityCube): Change interface, split implementation
	into two functions.

	* code/latte/cone.h (listVector::listVector): New optional
	argument for rest.

	* code/latte/count.cpp: Handle new option --irrational-all-primal
	(--all-primal).

	* code/latte/dual.cpp, code/latte/dual.h
	(computeTightInequalitiesOfCones): New.

	* code/latte/barvinok/barvinok.cpp, code/latte/barvinok/barvinok.h:
	New decomposition type, IrrationalAllPrimalDecomposition.

	* code/latte/vertices/cdd.cpp (computeVertexCones,
	computeVertexConesViaLrs): Remove unnecessary call to
	createListOfInequalities.

2006-07-01  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/count.cpp: Use upgrade constructors to upgrade
	BarvinokParameters to one of its subclasses.  Measure time for
	subtasks using the new Timer class; take time for child processes
	properly into account.

	* code/latte/barvinok/ConeDecom.cpp (barvinokDecomposition_Single):
	Take the triangulation time.

	* code/latte/barvinok/barvinok.cpp, code/latte/barvinok/barvinok.h
	(BarvinokParameters): Move slot Flags here from subclass
	Single_Cone_Parameters.  New slots for timers.  New method
	print_statistics.
	(Single_Cone_Parameters): Create upgrade constructor.

	* code/latte/barvinok/dec.cpp, code/latte/barvinok/dec.h
	(Generic_Vector_Single_Cone_Parameters,
	Standard_Single_Cone_Parameters): Create upgrade constructors.
	(decomposeAndComputeResidue): New function, factored out from
	decomposeCones_Single.
	(decomposeCones_Single): Reimplement using
	decomposeAndComputeResidue.

	* code/latte/timing.cpp, code/latte/timing.h (getcputime): Unused,
	removed.
	(Timer): New class.

	* code/latte/ExponentialApprox.h, code/latte/ExponentialSubst.h
	(Exponential_Single_Cone_Parameters):
	(Write_Exponential_Sample_Formula_Single_Cone_Parameters): Create
	upgrade constructors.

	* code/latte/Irrational.cpp, code/latte/Irrational.h
	(computeConeStabilityCube): New.
	(irrationalizeCone): Use it here.  Implement the irrationalization
	from math.CO/0603308v2.

2006-06-30  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/barvinok/Triangulation.cpp (Triangulation_Load_Save):
	Fix cdd invocation in the load/save case.

	* code/latte/count.cpp:
	Don't forget to initialize the Flags in the exponential case.

2006-06-28  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Version 1.2-mk-0.3
	
	* code/latte/cone.h (listCone): New slot
	lattice_points_scalar_products.

	* code/latte/ExponentialSubst.cpp,
	code/latte/ExponentialSubst.h (computeExponentialResidue_Single):
	Compute scalar products of points in paralellelepiped with the
	generic vector directly, using computeLatticePointsScalarProducts;
	this is faster than first computing all the points.

	* code/latte/genFunction/piped.cpp,
	code/latte/genFunction/piped.h (PointsInParallelepipedGenerator::compute_multiplier):
	New.
	(PointsInParallelepipedGenerator::translate_lattice_point): New.
	(PointsScalarProductsGenerator): New class.
	(computeLatticePointsScalarProducts): New.

2006-06-27  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/genFunction/piped.cpp,
	code/latte/genFunction/piped.h (PointsInParallelepipedGenerator):
	Precompute some more data.

	* code/latte/ExponentialSubst.cpp (computeExponentialResidue_Single):
	Reimplement for speed.

2006-06-25  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/genFunction/piped.cpp (translate_lattice_point):
	Reimplement for speed.

	* m4/ntl-check.m4: Enable out-of-sourcedir compiles.

	* code/latte/count.cpp: Catch NotIrrationalException.

	* code/latte/Irrational.cpp, code/latte/Irrational.h
	(irrationalizeCone): Fix code and put in assertions for
	irrationality and integer equivalence.

	* code/latte/convert.cpp, code/latte/convert.h (createFacetMatrix2):
	New function.

	* code/latte/genFunction/piped.cpp (PointsInParallelepipedGenerator): 
	Special-case unimodular cones (for speed).  In the non-unimodular
	case, avoid matrix inversion.
	(computePointsInParallelepiped): Always use
	pointsInParallelepiped; we will make it faster than
	pointsInParallelepipedOfUnimodularCone. 

2006-06-24  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/barvinok/barvinok.cpp (barvinok_DFS): Fix counting
	of current simplicial cones.  Use checkConeIrrational.

2006-06-23  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/Irrational.cpp (irrationalizeCone): Check that
	irrationalization is OK.

	* code/latte/Irrational.cpp, code/latte/Irrational.h 
	(isConeIrrational, checkConeIrrational): New.
	(assertConesIntegerEquivalent):  New.

2006-04-03  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/ReadingFile.cpp (CheckRed): Don't put FILENAME.latte
	files into the directory of the example; put them into the current
	directory.  This enables parallel testing, if the current
	directory is unique.

	* EXAMPLES/*: Add missing "linearity" keyword in many examples.

2006-04-02  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/barvinok/barvinok.cpp:
	Fix conditional inclusion of irrational code.

2006-04-01  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/Residue.cpp (Residue_Single_Cone):
	Handle non-unimodular cones.

	* CheckEmpty.cpp, banner.cpp, dual.cpp, vertices/cdd.cpp:
	Remove excess whitespace.

	* count.cpp: Write out the total time.

	* barvinok/dec.cpp (decomposeCones_Single): Write the
	numOfLatticePoints file also in the "homog" case.

	* CheckEmpty.cpp, Grobner.cpp, IntegralHull.cpp, Makefile.am,
	ReadingFile.cpp, ResSingle.cpp, Residue.cpp, RudyResNTL.cpp,
	binarySearchIP.cpp, cone.cpp, count.cpp, dual.cpp, ehrhart.cpp,
	latte_system.cpp, latte_system.h, maximize.cpp, minimize.cpp,
	barvinok/Triangulation.cpp, genFunction/maple.cpp,
	genFunction/piped.cpp, print.cpp, ramon.cpp, rational.cpp,
	tmpIP.cpp, vertices/cdd.cpp: Handle the exit status of all
	subprocesses.  When an error occurs, exit with a nonzero exit
	status.

2006-03-31  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* barvinok/barvinok.cpp, barvinok/barvinok.h (Single_Cone_Parameters):
	New slot Total_Simplicial_Cones.

2006-03-30  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* count.cpp: New command-line argument --random-seed=N.

	* latte_random.cpp, latte_random.h (seed_random_generator): New.

	* genFunction/piped.cpp (pointsInParallelepiped):
	Fix delete/delete[] issue.

	* vertices/cdd.cpp: flush stdout to show progress

	* barvinok/barvinok.cpp: Conditionalize irrationalization.

	* ExponentialSubst.h (scalar_power): Export.

	* Makefile.am, latte_random.cpp, latte_random.h:
	New files, latte_random.h, .cpp

	* genFunction/piped.cpp (get_multipliers_from_snf):
	Check implementation restriction.

	* genFunction/NTL_to_LiDIA.cpp (convert_bigint_matrix_to_mat_ZZ):
	Don't convert via longs.
	(convert_vec_ZZ_to_bigint_array): Abort when numbers are too large.

2006-03-29  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* barvinok/barvinok.cpp, barvinok/barvinok.h (barvinok_DFS):
	Special-case max_determinant == 0 to mean "no decomposition".  In
	dual decomposition, observe the dual determinant rather than the
	primal determinant.

	* count.cpp: Enable option "nodecom" in all modes; can also be spelt
	"--no-decomposition".

	* Makefile.am: Conditionalize on HAVE_EXPERIMENTS rather than
	MAINTAINER_MODE.

	* simple-main.cpp: Removed (currently broken)

	* genFunction/piped.cpp, genFunction/piped.h
	(PointsInParallelepipedGenerator): New class.
	(pointsInParallelepiped): Use PointsInParallelepipedGenerator.
	(movePoint): Unused, removed.

	* genFunction/IntCombEnum.cpp: Fix gcc warning

	* Grobner.cpp, ReadingFile.cpp, ramon.cpp, ehrhart.cpp,
	maximize.cpp, minimize.cpp: Don't make cout unbuffered.

2006-03-20  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/Makefile.am: Fix for non-LiDIA build.
	
	* m4/lidia-check.m4: Fix HAVE_LIDIA conditional.

	* code/latte/genFunction/piped.cpp: Fix #includes.

	* code/latte/genFunction/NTL_to_LiDIA.h,
	code/latte/genFunction/NTL_to_LiDIA.cpp
	(print_debug_vector, print_debug_matrix): Move mat_ZZ versions to
	print.h, print.cpp.
	(convert_listVector_to_mat_ZZ): Move to convert.h, convert.cpp.

	* code/latte/Residue.cpp (Residue, Residue_Single_Cone): This code
	silently assumes unimodular cones; put in an assertion.

2006-03-19  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/count.cpp: Write file "numOfLatticePoints" in --exp
	mode too.

2006-03-19  Susan Margulies <smargulies@ucdavis.edu>

	* code/latte/genFunction/piped.cpp,
	code/latte/genFunction/IntCombEnum.cpp,
	code/latte/genFunction/matrix_ops.cpp,
	code/latte/genFunction/matrix_ops.h: Fixed up enumeration code.

2006-03-18  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/genFunction/matrix_ops.cpp: Fix conditionalization.

	* code/latte/genFunction/matrix_ops.h: Fix #include

	* code/latte/cone.h (listVector): Add constructors.

	* code/latte/ramon.cpp, code/latte/ramon.h (appendVectorToListVector):
	Change interface.
	(transformListVectorToArrayVector, transformArrayVectorToListVector,
	readListVectorMLP): Unused, removed.

2006-03-18  Susan Margulies <smargulies@ucdavis.edu>

	* code/latte/genFunction/piped.cpp, code/latte/genFunction/piped.h
	(pointsInParallelepiped): Changed interface.

	* code/latte/ehrhart.cpp, code/latte/maximize.cpp,
	code/latte/minimize.cpp: Change all callers of pointsInParallelepiped.

	* code/latte/ramon.cpp, code/latte/ramon.h (isEqual,
	isVectorInListVector): New.

2006-03-18  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/dual.cpp (computeDetAndFacetsOfSimplicialCone):
	Facet divisors are always positive.

2006-03-17  Susan Margulies <smargulies@ucdavis.edu>

	* code/latte/genFunction/IntCombEnum.cpp: Fixed enumeration code
	to include origin, and optimized code.

2006-03-16  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/Irrational.cpp: Put in warning about implementation flaw.

2006-03-13  Susan Margulies <smargulies@ucdavis.edu>

	* code/latte/Makefile.am, code/latte/genFunction/IntCombEnum.cpp,
	code/latte/genFunction/IntCombEnum.h,
	code/latte/genFunction/NTL_to_LiDIA.cpp,
	code/latte/genFunction/NTL_to_LiDIA.h,
	code/latte/genFunction/matrix_ops.cpp,
	code/latte/genFunction/matrix_ops.h,
	code/latte/genFunction/piped.cpp: Added files and functions
	related to non-unimodular lattice point enumeration.

2006-03-13  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/dual.h, code/latte/dual.cpp
	(computeDetAndFacetsOfSimplicialCone): Cancel gcds of the facet
	vectors, and also fill the new face_divisors slot.
	(dualizeBackCones): Now dualizing is an involution, even for our
	datastructure, so don't cancel gcds here; no scaling tricks
	needed.

	* code/latte/convert.cpp, code/latte/convert.h
	(createFacetMatrix): The stored facet vectors are no longer scaled
	by the full determinant, so do the scaling here for creating the
	matrix.

	* code/latte/cone.h (listCone): New slot facet_divisors.

	* code/latte/Irrational.cpp (irrationalizeCone):
	computeDetAndFacetsOfSimplicialCone only if not computed yet.

2006-03-10  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* Makefile.am, acinclude.m4, autogen.sh:
	Remove acinclude.m4 in favor of ACLOCAL_AMFLAGS = -I m4

2006-03-09  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* simple-main.cpp: In the --exp case, don't forget to set the
	decomposition type.

	* count.cpp: Support --exp.  Signal that "homog --exp" is not implemented.

	* code/latte/ResSingle.cpp (ResidueFunction_Single_Cone): 
	* code/latte/RudyResNTL.cpp (ResidueFunction): These functions
	assume that the vertex of each cone is 0, thus the irrational
	decomposition does not currently work in the homogenized Barvinok
	algorithm.  They also assume that the cones are unimodular.  Put
	in an assert() for that.

2006-03-09  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Fix some memory problems.
	
	* code/latte/rational.cpp:
	Use abort() instead of exit(0) to indicate memory allocation error.

	* code/latte/convert.cpp (transformArrayBigVectorToListVector):
	Fix memory leak shown by valgrind.

	* code/latte/cone.cpp, code/latte/cone.h (freeCone): New.
	(freeListCone): Use it here.

	* code/latte/Residue.cpp (Residue_Single_Cone):
	Use freeCone() to delete all data of the cone.

	* code/latte/PolyTree.cpp:
	Fix delete/delete[] problem shown by valgrind.

	* code/latte/barvinok/barvinok.cpp (barvinok_Single):
	Don't computeDetAndFacetsOfSimplicialCone in the
	IrrationalPrimalDecomposition case, where it is already computed.

2006-03-09  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Implement irrational primal decompositions.
	
	* code/latte/count.cpp: Change calls to decomposeCones_Single,
	decomposeCones.  New command-line options --irr, --maxdet=N.

	* code/latte/Irrational.cpp (irrationalizeCone): Implement.

	* code/latte/ExponentialSubst.cpp:
	(Exponential_Single_Cone_Parameters::ConsumeCone): No need to
	dualizeBack() anymore.

	* code/latte/ExponentialApprox.cpp:
	(Write_Exponential_Sample_Formula_Single_Cone_Parameters::ConsumeCone):
	No need to dualizeBack() anymore.

	* code/latte/Grobner.cpp, code/latte/ehrhart.cpp,
	code/latte/maximize.cpp, code/latte/minimize.cpp,
	code/latte/simple-main.cpp: Change calls to decomposeCones_Single,
	decomposeCones.

	* code/latte/barvinok/dec.cpp, code/latte/barvinok/dec.h
	(decomposeCones, decomposeCones_Single): Change interface.

	* code/latte/barvinok/barvinok.cpp (barvinokSingle):
	In IrrationalPrimalDecomposition, polarize back and
	irrationalize cones after triangulation.
	(barvinok_DFS): In DualDecomposition, polarize back cones after
	Barvinok decomposition; pass the polarized-back cone to ConsumeCone().

	* code/latte/barvinok/barvinok.h
	(BarvinokParameters::DecompositionType): New typedef.

	* code/latte/print.cpp (printConeToFile): Also print dual determinant.

	* code/latte/rational.cpp, code/latte/rational.h
	(createRationalVector): Create a vector of length numOfVars, not
	numOfVars+1.
	(addRationalVector, scaleRationalVectorToInteger,
	canonicalizeRationalVector): New.

2006-03-08  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Add infrastructure for irrational primal decompositions.
	
	* code/latte/barvinok/barvinok.h (BarvinokParameters): New slot
	"decomposition".

	* code/latte/barvinok/dec.h, code/latte/barvinok/dec.cpp
	(decomposeCones_Single): Change interface.

	* code/latte/barvinok/dec.cpp 
	(Standard_Single_Cone_Parameters::ConsumeCone): Don't dualize back
	in the primal case.
	* code/latte/ExponentialSubst.cpp
	(Exponential_Single_Cone_Parameters::ConsumeCone): Don't dualize
	back in the primal case.
	* code/latte/ExponentialApprox.cpp
	(Write_Exponential_Sample_Formula_Single_Cone_Parameters::ConsumeCone):
	Don't dualize back in the primal case.

	* code/latte/simple-main.cpp:
	New switch --irr, irrational decomposition.

	* code/latte/Irrational.cpp, code/latte/Irrational.h: New files.

2006-03-04  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Compute and store the data of the polar cones during the Barvinok
	decomposition.
	
	* code/latte/genFunction/piped.cpp
	(computePointsInParallelepiped): The stored determinant is now
	signed, so discriminate on its absolute value.

	* code/latte/barvinok/barvinok.cpp (barvinok_Single):
	Call computeDetAndFacetsOfSimplicialCone for the
	to-be-decomposed cone.
	(barvinokStep): Pass precomputed dual to ComputeOmega; call
	computeDetAndFacetsOfSimplicialCone for the subcones.

	* code/latte/dual.cpp, code/latte/dual.h (computeDetAndFacetsOfSimplicialCone):
	New.
	(dualizeBackCones): Use it here.

	* code/latte/barvinok/Cone.cpp, code/latte/barvinok/Cone.h (ComputeOmega):
	Change interface to make use of precomputed dual (-transpose(inv(B))).

	* code/latte/convert.cpp, code/latte/convert.h (createFacetMatrix):
	New.

2006-03-04  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	More code clean up.
	
	* code/latte/myheader.h (listVector, rationalVector, listCone):
	Moved to cone.h, rational.h

	* code/latte/rational.h (rationalVector): Moved here from myheader.h

	* code/latte/cone.h (listVector, listCone): Move here from myheader.h

	* code/latte/Makefile.am: Build experimental stuff only in
	"maintainer mode".

	* code/latte/Residue.cpp, code/latte/Residue.h (Residue_Single_Cone):
	Change interface slightly.

	* code/latte/ExponentialSubst.cpp, code/latte/ExponentialSubst.h:
	Use Generic_Vector_Single_Cone_Parameters to simplify the code.

	* code/latte/ResSingle.cpp: Rename the Random_Lambda slot to
	generic_vector.

	* code/latte/flags.h: Moved class definitions elsewhere,
	now only contains flags again.

	* code/latte/barvinok/barvinok.h (BarvinokParameters, Single_Cone_Parameters):
	Move here from flags.h

	* code/latte/barvinok/dec.cpp, code/latte/barvinok/dec.h (Collecting_Single_Cone_Parameters):
	Move here from flags.h
	(Standard_Single_Cone_Parameters): Move here from flags.h
	(NotGenericException): Move here from ExponentialSubst.h
	(guess_generic_vector): Move here from ExponentialSubst.h

	(Generic_Vector_Single_Cone_Parameters): New class.
	(barvinokDecomposition_List): New function.

2006-03-03  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/ExponentialSubst.cpp, code/latte/ExponentialSubst.h
	(computeExponentialResidueWeights): New, factored out from
	computeExponentialResidue_Single.

	* code/latte/dual.h: Add preprocessor magic.

	* code/latte/Grobner.cpp, code/latte/Makefile.am,
	code/latte/Residue.cpp, code/latte/Residue.h,
	code/latte/count.cpp, code/latte/ehrhart.cpp,
	code/latte/maximize.cpp, code/latte/minimize.cpp,
	code/latte/print.cpp, code/latte/print.h,
	code/latte/printsingle.cpp, code/latte/barvinok/dec.cpp,
	code/latte/simple-main.cpp: 
	Move residue calculations from print.cpp, print.h, printsingle.cpp to
	Residue.cpp, Residue.h.

2006-03-02  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/barvinok/barvinok.cpp (PtrCone): Removed.
	(barvinok): Removed.
	(barvinok_Single, barvinok_DFS): Restructured to get rid of use of
	PtrCone and Cone in favor of listCone.  Avoid some repeated determinant
	computations.  Avoid generating cones with determinant 0.

	* code/latte/barvinok/Cone.cpp, code/latte/barvinok/Cone.h (Cone):
	Removed.

	* code/latte/myheader.h (GIVETIME, listRationalVector, inputFile):
	Unused, removed.

	* code/latte/convert.cpp, code/latte/convert.h: "const" fix.

2006-03-02  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Version 1.2-mk-0.2
	
	* code/latte/dual.cpp (dualizeBackCones): Special case
	unimodular cones for speed. 

2006-03-02  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Fixes to get it running on Solaris.
	
	* configure.ac: Check for cddr+_gmp in preference of cddr+.
	Check for <sstream>.

	* code/latte/Makefile.am: Handle GMP_CFLAGS, GMP_LIBS.

	* m4/ntl-check.m4: Don't require that the NTL namespace is configured.

	* code/latte/ReadingFile.cpp (CheckRed): Change shell redirection
	operator so it works with Solaris /bin/sh.
	* code/latte/vertices/cdd.cpp (computeVertexConesFromVrep):
	Likewise.

2006-03-01  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/todd/todd-expansion.cpp (taylor_reciprocal): Fix
	warning shown by -Wall.

2006-03-01  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	This set of changes cleans up several interfaces (notably
	barvinok.h and ConeDecom.h are now simple and useful) and
	adds a memory-save mode for the exponential substitution.
	
	* simple-main.cpp: Use the "memory save" version of the polynomial
	and exponential substitutions.

	* ExponentialSubst.cpp, ExponentialSubst.h (Exponential_Single_Cone_Parameters):
	New class.
	(decomposeAndComputeExponentialResidue): New function.

	* flags.h (BarvinokParameters): New slots File_Name,
	Number_of_Variables.
	(Single_Cone_Parameters): Remove slot Cone.

	* barvinok/dec.cpp (decomposeCones, decomposeCones_Single): Change
	call to barvinokDecomposition_Single.

	* barvinok/dec.h, barvinok/dec.cpp (createConeDecMatrix): Move to
	convert.h.

	* barvinok/ConeDecom.cpp, barvinok/ConeDecom.h
	(barvinokDecomposition_Single): Simplify the interface, overload
	for listCone input data.

	(transformArrayBigVectorToListVector): Move to convert.h.

	* barvinok/barvinok.cpp, barvinok/barvinok.h (barvinok_DFS, barvinok_Single):
	Simplify/unify the interface.

	* ramon.cpp, ramon.h (freeListVector): New.

	* rational.cpp, rational.h (copyRationalVector): New.

	* dual.cpp (transformArrayBigVectorToListVector2, createConeDecMatrix2):
	Unused, removed.

	* cone.cpp, cone.h (freeListCone): New.

	* convert.cpp, convert.h: New files.

	* ResSingle.cpp: Fix references to members in
	Single_Cone_Parameters (ZZ instead of ZZ*).

	* barvinok/dec.cpp
	(Collecting_Single_Cone_Parameters::ConsumeCone): New, implement
	the traditional LattE behavior of collecting all decomposed cones.

	(decomposeCones): Use Collecting_Single_Cone_Parameters together with
	barvinokDecomposition_Single instead of barvinokDecomposition.

	Simplify some references to members in Single_Cone_Parameters (ZZ
	instead of ZZ*); the indirection is no longer necessary now that we
	don't convert between "Barvinok_Parameters" and
	"Single_Cone_Parameters" any more.

	* barvinok/barvinok.cpp (barvinok_DFS): Respect
	Parameters->max_determinant.

	* barvinok/ConeDecom.cpp, barvinok/ConeDecom.h
	(transformRudyListConeIntoRamonListCone): Removed.
	(barvinokDecomposition): Removed; we now use
	barvinokDecomposition_Single.

	* dual.cpp (transformRudyListConeIntoRamonListCone2): Unused, removed.

	* RudyResNTL.h, flags.h (Single_Cone_Parameters,
	Standard_Single_Cone_Parameters): Moved from RudyResNTL.h to
	flags.h (temporary location).
	* flags.h (Collecting_Single_Cone_Parameters): New class.

	* genFunction/piped.cpp: Fix last change.

2006-02-28  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/count.cpp, code/latte/simple-main.cpp:
	Avoid CheckEmpty call for CDD-style input format (does not work), warn.

	* code/latte/genFunction/piped.cpp, code/latte/genFunction/piped.h
	(computePointsInParallelepiped): New function.
	(computePointsInParallelepipeds): Use it here.

	* code/latte/barvinok/ConeDecom.cpp,
	code/latte/barvinok/ConeDecom.h (barvinokDecomposition_Single):
	Simplify arglist by moving Node_Controller into
	Single_Cone_Parameters.

	* code/latte/RudyResNTL.h, code/latte/ResSingle.cpp
	(ResidueFunction_Single_Cone): Simplify arglist by moving
	Node_Controller into Single_Cone_Parameters.

	* code/latte/RudyResNTL.h (Single_Cone_Parameters)
	(Standard_Single_Cone_Parameters): Use subclassing and virtual
	method ConsumeCone to refactor the code.

	* code/latte/barvinok/barvinok.cpp (barvinok_Single)
	(barvinok_DFS): Factor out residue calculation from DFS Barvinok.
	* code/latte/barvinok/dec.cpp (ConsumeCone): Residue calculation
	in DFS Barvinok is now performed by the virtual method
	Single_Cone_Parameters::ConsumeCone.

	* configure.ac: Bump version number to 1.2-mk-0.2.

2006-02-26  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/Makefile.am, code/latte/Array.h,
	code/latte/ResSingle.cpp, code/latte/RudyResNTL.cpp,
	code/latte/print.cpp, code/latte/printsingle.cpp: 
	Remove BigArray in favor of std::vector.

	* code/latte/ExponentialSubst.cpp, code/latte/Makefile.am,
	code/latte/todd/todd.cpp, code/latte/todd/todd.h,
	code/latte/todd/todd.maple, code/latte/todd/todd.sed,
	code/latte/todd/test-todd.cpp: Remove Maple Todd code.

	* code/latte/latte_gmp.cpp, code/latte/latte_gmp.h:
	New files, replacing gmp-interface.h and .cpp

	* code/latte/gmp-interface.cpp, code/latte/gmp-interface.h:
	Removed, replaced by latte_gmp.h and .cpp

	* code/latte/todd/todd-expansion.cpp, code/latte/todd/todd-expansion.h:
	New files, compute evaluation of Todd polynomial by Tayloring.

	* code/latte/CheckEmpty.cpp, code/latte/ConeInfo.cpp,
	code/latte/ConeInfo.h, code/latte/ExponentialSubst.cpp,
	code/latte/Grobner.cpp, code/latte/Grobner.h,
	code/latte/IntegralHull.cpp, code/latte/IntegralHull.h,
	code/latte/Makefile.am, code/latte/ReadingFile.cpp,
	code/latte/ReadingFile.h, code/latte/barvinok/Cone.h,
	code/latte/barvinok/dec.cpp, code/latte/barvinok/dec.h,
	code/latte/binarySearchIP.cpp, code/latte/binarySearchIP.h,
	code/latte/count.cpp, code/latte/dual.cpp, code/latte/ehrhart.cpp,
	code/latte/genFunction/maple.cpp, code/latte/genFunction/maple.h,
	code/latte/genFunction/piped.cpp, code/latte/genFunction/piped.h,
	code/latte/maximize.cpp, code/latte/minimize.cpp,
	code/latte/myheader.h, code/latte/preprocess.cpp,
	code/latte/preprocess.h, code/latte/print.cpp, code/latte/print.h,
	code/latte/ramon.cpp, code/latte/ramon.h, code/latte/rational.cpp,
	code/latte/rational.h, code/latte/simple-main.cpp,
	code/latte/todd/todd.cpp, code/latte/todd/todd.h,
	code/latte/todd/todd.maple, code/latte/vertices/cdd.cpp,
	code/latte/vertices/cdd.h: Replace vector by vec_ZZ to get rid of
	type clash with STL.

2006-02-24  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/ConeInfo.cpp, code/latte/IntegralHull.cpp,
	code/latte/RudyResNTL.cpp, code/latte/barvinok/Triangulation.cpp,
	code/latte/barvinok/dec.cpp, code/latte/print.cpp: Don't seed the
	random generator in the middle of the algorithms.

2006-02-23  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* ExponentialSubst.cpp, ExponentialSubst.h
	(computeExponentialResidue_Single, computeExponentialResidue): New
	functions.

	* ExponentialSubst.cpp, ExponentialSubst.h: New files.

	* gmp-interface.cpp, gmp-interface.h: New files.

	* simple-main.cpp: New command-line args, --exp, --maxdet.

	* flags.h (struct BarvinokParameters): New.

	* myheader.h: Add typedef ZZ Integer.

	* Makefile.am: Link against LiDIA and gmpxx.

	* code/latte/ReadingFile.cpp (Mail): Removed.

	* code/latte/ConeDeterminant.cpp, code/latte/ConeDeterminant.h,
	code/latte/KnapSackEst.cpp, code/latte/hnf.cpp,
	code/latte/preproc.cpp, code/latte/rand.cpp: Removed unused source
	files and test programs.

2006-02-22  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/dual.cpp (scaled_inverse): Fix to always get the
	right sign. 

	* code/latte/barvinok/barvinok.cpp (barvinok): New optional arg,
	"max_determinant"; allows stopping decomposition before
	unimodularity is reached.
	* code/latte/barvinok/dec.cpp (decomposeCones): Likewise.
	* code/latte/barvinok/ConeDecom.cpp (barvinokDecomposition): 
	Likewise.

	* code/latte/dual.cpp (scaled_inverse): New.
	(dualizeBackCones): Handle the non-unimodular case.

	* code/latte/barvinok/barvinok.cpp (barvinok): Store the
	determinants in the result list.
	(barvinok_DFS): Likewise.
	(transformRudyListConeIntoRamonListCone_Single): Copy the
	determinant. 

	* code/latte/barvinok/ConeDecom.cpp
	(transformRudyListConeIntoRamonListCone): Copy the determinant.

	* code/latte/myheader.h (PtrCone): New slot "determinant".
	(listCone): New slot "determinant"; removed unused slot.

	* code/latte/cone.cpp (createListCone): Initialize it here to 0.

	* code/latte/genFunction/piped.cpp (computePointsInParallelepipeds): 
	New function, factored out from all the main programs.
	
	* latte.el: New file, Emacs customizations for work on LattE.

	* code/latte/Makefile.am: Build test program simple-count from
	simple-main.cpp; this is where the new experiments will take
	place.

	* code/latte/todd/gmp_pow.cpp, code/latte/todd/gmp_pow.h,
	code/latte/todd/test-todd.cpp, code/latte/todd/todd.h,
	code/latte/todd/todd.maple, code/latte/todd/todd.sed:  New files.

2006-02-21  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* acinclude.m4, configure.ac: Check for LiDIA.

	* m4/gmp-check.m4, m4/Makefile.am, m4/latte-misc.m4,
	m4/lidia-check.m4, m4/ntl-check.m4: More autoconf scripts stolen
	from LinBox.

2006-02-20  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* m4/lidia-check.m4: autoconf macro checking for LiDIA, stolen
	from LinBox

	* configure.ac: Signal error/warning when CDD or LRS binaries are
	not found at configure time.

2006-02-19  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/banner.cpp, code/latte/banner.h,
	code/latte/Makefile.am, code/latte/count.cpp,
	code/latte/ehrhart.cpp, code/latte/maximize.cpp,
	code/latte/minimize.cpp, configure.ac: Bump version number.  Show
	actual version in banners.

	* code/latte/IntegralHull.cpp, code/latte/tmpIP.cpp,
	code/latte/vertices/cdd.cpp, configure.ac: Check for LRS binary in
	configure, use this path rather than "./lrs1".

2006-02-18  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Autoconfiscate.
	Minor fixes to get it compiled with modern C++ compilers.

2006-02-15  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/simple-main.cpp: Simplified version of the main program
	for use in the approximate counting project.

2006-02-14  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Imported LattE 1.2

2005-01-26  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/barvinok/barvinok.cpp: Avoid some redundant
	determinant computations.

2005-01-21  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	* code/latte/PolyTree.cpp: Remove some g++-isms.

2005-01-20  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>

	Renamed barvinok/cone.cpp and cone.h to Cone.cpp and Cone.h to
	remove filename clash.

	First adjustments to make it compile.

	Imported LattE release v 1.1
