--- ./code/latte/LattException.h.orig 2011-07-24 22:04:16.000000000 -0600 +++ ./code/latte/LattException.h 2012-10-05 15:49:49.241219874 -0600 @@ -11,6 +11,7 @@ #include <exception> #include <string> #include <iostream> +#include <sstream> using namespace std; @@ -54,7 +55,7 @@ public: virtual const char* what() const throw(); private: - string & printErrorMessages() const; + void printErrorMessages(ostringstream &) const; UserError userError; --- ./code/latte/barvinok/dec.h.orig 2011-07-20 08:32:51.000000000 -0600 +++ ./code/latte/barvinok/dec.h 2012-10-05 15:49:49.248219896 -0600 @@ -42,7 +42,7 @@ public: // Obsolete: listCone* decomposeCones(listCone *cones, int numOfVars, unsigned int Flags, - char *File_Name, int max_determinant, + const char *File_Name, int max_determinant, bool dualize, BarvinokParameters::DecompositionType decomposition, bool debug_triangulation = false); --- ./code/latte/barvinok/barvinok.h.orig 2011-03-07 19:43:06.000000000 -0700 +++ ./code/latte/barvinok/barvinok.h 2012-10-05 15:49:49.248219896 -0600 @@ -93,7 +93,7 @@ public: int max_determinant; // A file name that is used for constructing file names for // temporary and semi-temporary files. - char *File_Name; + const char *File_Name; // Ambient dimension. int Number_of_Variables; // Parameters that control the computation. --- ./code/latte/barvinok/Triangulation.h.orig 2011-03-07 19:43:06.000000000 -0700 +++ ./code/latte/barvinok/Triangulation.h 2012-10-05 15:49:49.249219900 -0600 @@ -28,7 +28,7 @@ using namespace std; -int Triangulation_Load_Save(const mat_ZZ &, const int &, const int &, char*, list< int >&, char *File_Name, int Cone_Index, unsigned int Flags); +int Triangulation_Load_Save(const mat_ZZ &, const int &, const int &, const char*, list< int >&, const char *File_Name, int Cone_Index, unsigned int Flags); #endif --- ./code/latte/barvinok/Triangulation.cpp.orig 2011-03-07 19:43:06.000000000 -0700 +++ ./code/latte/barvinok/Triangulation.cpp 2012-10-05 15:49:49.249219900 -0600 @@ -182,7 +182,7 @@ void readCDDicdFileRudy(int & face2, vec // NEW TRIANGULATION FUNCTION TO REUSE PREVIOUSLY CALCULATED RESULTS /* ----------------------------------------------------------------- */ -int Triangulation_Load_Save (const mat_ZZ & Mat, const int & m, const int & n, char* a, list< int >& List, char *File_Name, int Cone_Index, unsigned int Flags) +int Triangulation_Load_Save (const mat_ZZ & Mat, const int & m, const int & n, const char* a, list< int >& List, const char *File_Name, int Cone_Index, unsigned int Flags) { // cerr << "Triangulation_Load_Save: Cone_Index: " << Cone_Index << " Flags: " << Flags << endl; vec_ZZ neg; --- ./code/latte/barvinok/dec.cpp.orig 2011-07-20 08:32:51.000000000 -0600 +++ ./code/latte/barvinok/dec.cpp 2012-10-05 15:49:49.250219903 -0600 @@ -98,7 +98,7 @@ decomposeCones(listCone *cones, bool dua listCone* decomposeCones(listCone *cones, int numOfVars, unsigned int Flags, - char *File_Name, int max_determinant, + const char *File_Name, int max_determinant, bool dualize, BarvinokParameters::DecompositionType decomposition, bool debug_triangulation) --- ./code/latte/rational.cpp.orig 2011-07-11 17:56:24.000000000 -0600 +++ ./code/latte/rational.cpp 2012-10-05 15:49:49.250219903 -0600 @@ -69,7 +69,7 @@ rationalVector::rationalVector(const vec enumerator.SetLength(rational.size()); denominator.SetLength(rational.size()); - for(int i = 0; i < rational.size(); ++i) + for(size_t i = 0; i < rational.size(); ++i) { enumerator[i] = rational[i].getNumerator(); denominator[i] = rational[i].getDenominator(); @@ -170,7 +170,7 @@ RationalNTL::RationalNTL(const string &n RationalNTL::RationalNTL(const string &number) { - for (int i = 0; i < number.length(); ++i) + for (size_t i = 0; i < number.length(); ++i) if (number[i] == '/') { numerator = to_ZZ(number.substr(0, i).c_str()); @@ -546,6 +546,7 @@ vec_RationalNTL::vec_RationalNTL(const v vec_RationalNTL& vec_RationalNTL::operator=(const vec_RationalNTL& a) { vec = a.vec; + return *this; } vec_RationalNTL::~vec_RationalNTL() --- ./code/latte/valuation/valuation.cpp.orig 2011-07-30 19:02:54.000000000 -0600 +++ ./code/latte/valuation/valuation.cpp 2012-10-05 15:49:49.251219906 -0600 @@ -888,7 +888,7 @@ void Valuation::ValuationContainer::add( void Valuation::ValuationContainer::printResults(ostream & out) const { out << "\n"; - for (int i = 0; i < answers.size(); ++i) + for (size_t i = 0; i < answers.size(); ++i) { if (answers[i].valuationType == ValuationData::volumeLawrence) out << "Volume (using the cone decomposition method)" << endl; --- ./code/latte/normalize/normalize.cpp.orig 2011-03-07 19:41:13.000000000 -0700 +++ ./code/latte/normalize/normalize.cpp 2012-10-05 15:49:49.252219909 -0600 @@ -28,6 +28,7 @@ #include <set> #include <list> #include <functional> +#include <unistd.h> #include "print.h" #include "triangulation/triangulate.h" @@ -315,7 +316,7 @@ handle_cone(listCone *t, int t_count, in _4ti2_zsolve_::LinearSystem<int> *ls = facets_to_4ti2_zsolve_LinearSystem(t->facets, t->equalities, params.Number_of_Variables); cout << *ls; - fprintf(stdout, "%d %d\n\n", homs.vectors() + free.vectors(), homs.variables()); + fprintf(stdout, "%zu %zu\n\n", homs.vectors() + free.vectors(), homs.variables()); cout << homs; cout << free; abort(); @@ -323,7 +324,7 @@ handle_cone(listCone *t, int t_count, in //fprintVectorArray(output, ctx->Homs, false); //fprintVectorArray(output, ctx->Frees, false); - int i; + size_t i; bool any_new = false; for (i = 0; i<homs.vectors(); i++) { if (insert_hilbert_basis_element(homs[i])) any_new = true; --- ./code/latte/Grobner.cpp.orig 2011-07-20 08:32:51.000000000 -0600 +++ ./code/latte/Grobner.cpp 2012-10-05 15:49:49.252219909 -0600 @@ -641,7 +641,7 @@ ZZ SolveGrobner(const char * filename, c strcat(outFile, ".gro"); ofstream out(outFile); int CheckFeas = 0; - char* File = "Gro.latte"; + const char* File = "Gro.latte"; unsigned int flags = 0; int nn = 0, n = numOfVars; if(IsZero(W) == 0) nn = numOfVars; --- ./code/latte/genFunction/maple.cpp.orig 2011-07-20 08:32:51.000000000 -0600 +++ ./code/latte/genFunction/maple.cpp 2012-10-05 15:49:49.253219912 -0600 @@ -152,4 +152,5 @@ int GeneratingFunctionWritingConeConsume first_term = false; } freeCone(cone); + return 1; // means "success, please continue" } --- ./code/latte/integration/PolyRep.cpp.orig 2011-03-07 19:42:21.000000000 -0700 +++ ./code/latte/integration/PolyRep.cpp 2012-10-05 16:00:41.312306815 -0600 @@ -36,7 +36,7 @@ void _parseMonomials(_MonomialConsumer<R int *exponents = new int[varCount]; RationalNTL coefficient; - for (int i = 1; i < line.length() - 1; i++) //ignore outermost square brackets + for (size_t i = 1; i < line.length() - 1; i++) //ignore outermost square brackets { if (line[i] == '[') { @@ -170,7 +170,7 @@ void _parseLinForms(_FormSumConsumer<Rat int degree; RationalNTL coefficient; - for (int i = 1; i < line.length() - 1; i++) //ignore outermost square brackets + for (size_t i = 1; i < line.length() - 1; i++) //ignore outermost square brackets { if (line[i] == '[') { --- ./code/latte/integration/PolyTrie.cpp.orig 2011-07-11 17:54:49.000000000 -0600 +++ ./code/latte/integration/PolyTrie.cpp 2012-10-05 16:05:00.640984656 -0600 @@ -38,7 +38,7 @@ void parseMonomials(MonomialConsumer<Rat int *exponents = new int[varCount]; RationalNTL coefficient; - for (int i = 1; i < line.length() - 1; i++) //ignore outermost square brackets + for (size_t i = 1; i < line.length() - 1; i++) //ignore outermost square brackets { if (line[i] == '[') { @@ -185,7 +185,7 @@ void parseLinForms(FormSumConsumer<Ratio int degree; RationalNTL coefficient; - for (int i = 1; i < line.length() - 1; i++) //ignore outermost square brackets + for (size_t i = 1; i < line.length() - 1; i++) //ignore outermost square brackets { if (line[i] == '[') { --- ./code/latte/integration/newIntegration.cpp.orig 2011-03-07 19:42:21.000000000 -0700 +++ ./code/latte/integration/newIntegration.cpp 2012-10-05 16:03:21.528621001 -0600 @@ -13,7 +13,7 @@ NTL_CLIENT //this function deletes space from a given string void delSpace(string &line) { - for (int i = 0; i < line.length(); i++) + for (size_t i = 0; i < line.length(); i++) { while ((i < line.length()) && (line.at(i) == 32)) { --- ./code/latte/LattException.cpp.orig 2011-07-20 08:32:51.000000000 -0600 +++ ./code/latte/LattException.cpp 2012-10-05 15:49:49.253219912 -0600 @@ -6,7 +6,7 @@ */ #include "LattException.h" - +#include <sstream> LattException::~LattException() throw() {} @@ -20,17 +20,20 @@ LattException::LattException(UserError u -string & LattException::printErrorMessages() const +void LattException::printErrorMessages(ostringstream &msgs) const { - cout << "Exception message: " << exception::what(); - cout << "\nLatte message : " + msgs << "Exception message: " << exception::what(); + msgs << "\nLatte message : " << "\n error code: " << userError << "\n Optional message: " << msg.c_str() << "\n file: " << fileName.c_str() << "\n line number: " << lineNumber << endl; + cout << msgs.str(); } const char* LattException::what() const throw() { - return printErrorMessages().c_str(); + ostringstream msgs; + printErrorMessages(msgs); + return msgs.str().c_str(); } --- ./code/latte/vertices/cdd.cpp.orig 2011-07-24 22:04:16.000000000 -0600 +++ ./code/latte/vertices/cdd.cpp 2012-10-05 15:49:49.253219912 -0600 @@ -591,9 +591,6 @@ listCone* readCddExtFile(int &numOfVars) y = 0; ReadCDD(in, x, y); - leadingX, leadingY; - - if (j > 0) { //the input in in the form (leadingX/leadingY, x/y, ...), we need (1, x/y * leadingY/leadingX, ...) --- ./code/latte/IntegralHull.cpp.orig 2011-03-07 19:43:41.000000000 -0700 +++ ./code/latte/IntegralHull.cpp 2012-10-05 15:49:49.254219915 -0600 @@ -849,7 +849,7 @@ ZZ Calculate_Polytope_Width (listCone *c listVector* IntegralHull(listCone* cones,listVector* matrix, int numOfVars) { - listVector* vertices, *hyperplanes, *newVertices; + listVector* vertices = NULL, *hyperplanes, *newVertices; if (IntegralHull_Flag == 1) { --- ./code/latte/ReadingFile.cpp.orig 2011-03-07 19:43:41.000000000 -0700 +++ ./code/latte/ReadingFile.cpp 2012-10-05 15:49:49.255219918 -0600 @@ -1105,6 +1105,7 @@ int CDDstylereadLatteProblem(const char indexEquations=createVector(numOfEquations); if(f == 0) for (i=0; i<numOfEquations; i++) in >> indexEquations[i]; */ + numOfEquations = 0; cerr << "\nEquation indices: "; printVectorToFile(cerr,indexEquations,numOfEquations); --- ./code/latte/RudyResNTL.cpp.orig 2011-07-20 08:32:51.000000000 -0600 +++ ./code/latte/RudyResNTL.cpp 2012-10-05 15:49:49.255219918 -0600 @@ -1053,6 +1053,8 @@ vec_ZZ ResidueFunction(listCone* cones, } //End of for loop going from 0 to "order" } //End of if statement for OUTPUT_CONE == 0 + else + T_Node_Negative_One = NULL; if ( OUTPUT_CONE == 1) --- ./code/latte/triangulation/RegularTriangulationWithCdd.cpp.orig 2011-03-17 19:26:49.000000000 -0600 +++ ./code/latte/triangulation/RegularTriangulationWithCdd.cpp 2012-10-05 15:49:49.256219921 -0600 @@ -50,7 +50,7 @@ triangulate_cone_with_cdd(listCone *cone exit(2); } int Face = 1, Faces = 10000; - char* s1 = "latte_dec"; + const char* s1 = "latte_dec"; list< int > List; if(m != n){ Face = Triangulation_Load_Save(Mat, m, n, s1, List, Parameters->File_Name, Parameters->Cone_Index, Parameters->Flags); --- ./code/latte/buildPolytopes/BuildPolytope.cpp.orig 2011-03-07 19:43:41.000000000 -0700 +++ ./code/latte/buildPolytopes/BuildPolytope.cpp 2012-10-05 15:52:46.222796876 -0600 @@ -9,6 +9,7 @@ #include <iostream> #include <cassert> #include <ctime> +#include <unistd.h> using namespace std; @@ -61,7 +62,7 @@ void BuildPolytope::centerPolytope() //but here, it does not like it when the output and input files are the same. //Hence the ".temp" file that is made and renamed. system((string("center ") + getPolymakeFile() + ".temp " + getPolymakeFile()).c_str()); - system((string("mv " + getPolymakeFile()+".temp " + getPolymakeFile())).c_str()); + rename((string(getPolymakeFile()+".temp ")).c_str(), getPolymakeFile().c_str()); points.clear(); facets.clear(); dualFacets.clear(); @@ -76,12 +77,12 @@ void BuildPolytope::clearPoints() /** * Deletes the generated file if it has been created. */ -void BuildPolytope::deletePolymakeFile() { if (createdPolymakeFile) system((string("rm -f ") + getPolymakeFile()).c_str());} -void BuildPolytope::deletePolymakeDualFile() { if ( createdPolymakeDualFile) system((string("rm -f ") + getPolymakeDualFile()).c_str());} -void BuildPolytope::deleteLatteVRepFile(){ if (createdLatteVRepFile) system((string("rm -f ") + getLatteVRepFile()).c_str());} -void BuildPolytope::deleteLatteVRepDualFile(){ if (createdLatteVRepDualFile) system((string("rm -f ") + getLatteVRepDualFile()).c_str());} -void BuildPolytope::deleteLatteHRepFile(){ if (createdLatteHRepFile) system((string("rm -f ") + getLatteHRepFile()).c_str());} -void BuildPolytope::deleteLatteHRepDualFile(){ if (createdLatteHRepDualFile) system((string("rm -f ") + getLatteHRepDualFile()).c_str());} +void BuildPolytope::deletePolymakeFile() { if (createdPolymakeFile) unlink(getPolymakeFile().c_str());} +void BuildPolytope::deletePolymakeDualFile() { if ( createdPolymakeDualFile) unlink(getPolymakeDualFile().c_str());} +void BuildPolytope::deleteLatteVRepFile(){ if (createdLatteVRepFile) unlink(getLatteVRepFile().c_str());} +void BuildPolytope::deleteLatteVRepDualFile(){ if (createdLatteVRepDualFile) unlink(getLatteVRepDualFile().c_str());} +void BuildPolytope::deleteLatteHRepFile(){ if (createdLatteHRepFile) unlink(getLatteHRepFile().c_str());} +void BuildPolytope::deleteLatteHRepDualFile(){ if (createdLatteHRepDualFile) unlink(getLatteHRepDualFile().c_str());} /** * Builds the polymake file containing the points information. * filename: fileBaseName.polymake. @@ -128,7 +129,7 @@ void BuildPolytope::buildPolymakeDualFil file << "VERTICES" << endl; for(int i = 0; i < (int) dualVertices.size(); ++i) { - for(int k = 0; k < dualVertices[i].size(); ++k) + for(size_t k = 0; k < dualVertices[i].size(); ++k) file << dualVertices[i][k] << " "; file << endl; }//for i. @@ -504,11 +505,11 @@ int BuildPolytope::getVertexDualCount() */ void BuildPolytope::homogenizeDualVertices() { - for(int i = 0; (int) i < dualVertices.size(); ++i) + for(size_t i = 0; i < dualVertices.size(); ++i) { assert(dualVertices[i][0] > 0); - for(int j = 1; j < (int) dualVertices[i].size(); ++j) + for(size_t j = 1; j < dualVertices[i].size(); ++j) dualVertices[i][j] /= dualVertices[i][0]; dualVertices[i][0] = 1; }//for i; @@ -726,9 +727,9 @@ void BuildPolytope::makeIntegerList(vect assert(currentLCM > 0); //loop over everything again and times by the lcm. - for (int i = 0; i < (int) list.size(); ++i) + for (size_t i = 0; i < list.size(); ++i) { - for (int k = 0; k < list[i].size(); ++k) + for (size_t k = 0; k < list[i].size(); ++k) { list[i][k] = list[i][k]* mpz_class(currentLCM); }//for k --- ./code/latte/buildPolytopes/BuildGraphPolytope.cpp.orig 2011-03-07 19:43:41.000000000 -0700 +++ ./code/latte/buildPolytopes/BuildGraphPolytope.cpp 2012-10-05 15:53:34.949961196 -0600 @@ -25,9 +25,9 @@ void BuildGraphPolytope::findEdgePolytop ambientDim = edges.size(); clearPoints(); //base class. - for(int k = 0; k < edges.size(); ++k) + for(size_t k = 0; k < edges.size(); ++k) { - for(int j = 0; j < edges[k].size(); ++j) + for(size_t j = 0; j < edges[k].size(); ++j) { vector<mpq_class> oneEdge(ambientDim, 0); oneEdge[k] = 1; @@ -48,9 +48,9 @@ void BuildGraphPolytope::findSymmetricEd ambientDim = edges.size(); clearPoints(); //base class. - for(int k = 0; k < edges.size(); ++k) + for(size_t k = 0; k < edges.size(); ++k) { - for(int j = 0; j < edges[k].size(); ++j) + for(size_t j = 0; j < edges[k].size(); ++j) { vector<mpq_class> oneEdge(ambientDim, 0);//make an "ambientDim' long vector filled with zeros. oneEdge[k] = 1; --- ./code/latte/buildPolytopes/GraphMaker.cpp.orig 2011-03-07 19:43:41.000000000 -0700 +++ ./code/latte/buildPolytopes/GraphMaker.cpp 2012-10-05 15:59:29.096434823 -0600 @@ -216,8 +216,8 @@ void GraphMaker::makeKneserGraph(const i // cout << endl; // }//print points out. - for(int i = 0; i < points.size(); ++i) - for(int k = i + 1; k < points.size(); ++k) + for(size_t i = 0; i < points.size(); ++i) + for(size_t k = i + 1; k < points.size(); ++k) { match = false; for(int curElement = 0; curElement < setSize && ! match; ++curElement) --- ./code/latte/buildPolytopes/BuildRandomPolynomials.cpp.orig 2011-03-17 19:12:33.000000000 -0600 +++ ./code/latte/buildPolytopes/BuildRandomPolynomials.cpp 2012-10-05 15:58:46.376350702 -0600 @@ -43,7 +43,7 @@ string makeRandomMonomial(const int dim, //now make a string monomial. poly << "[1,["; - for(int j = 0; j < powers.size(); ++j) + for(size_t j = 0; j < powers.size(); ++j) { poly << powers[j]; if (j != powers.size()-1)