diff --git a/headers/libs/linprog/Summand.h b/headers/libs/linprog/Summand.h index ead65faf54..1978738b19 100644 --- a/headers/libs/linprog/Summand.h +++ b/headers/libs/linprog/Summand.h @@ -3,7 +3,6 @@ * Copyright 2007-2008, James Kim, jkim202@ec.auckland.ac.nz * Distributed under the terms of the MIT License. */ - #ifndef SUMMAND_H #define SUMMAND_H @@ -17,20 +16,19 @@ class Variable; * A summand of a linear term. */ class Summand { - public: - double Coeff(); - void SetCoeff(double coeff); - Variable* Var(); - void SetVar(Variable* var); - Summand(double coeff, Variable* var); - ~Summand(); + Summand(double coeff, Variable* var); + ~Summand(); + + double Coeff(); + void SetCoeff(double coeff); + Variable* Var(); + void SetVar(Variable* var); private: - double fCoeff; - Variable* fVar; - bool fUsedInPenaltyFunction; //not set yet - + double fCoeff; + Variable* fVar; + bool fUsedInPenaltyFunction; //not set yet }; } // namespace LinearProgramming diff --git a/headers/libs/linprog/Variable.h b/headers/libs/linprog/Variable.h index 1c693bafb6..0e882f3767 100644 --- a/headers/libs/linprog/Variable.h +++ b/headers/libs/linprog/Variable.h @@ -7,7 +7,7 @@ #define VARIABLE_H #include -#include +#include #include #include @@ -60,7 +60,7 @@ protected: private: LinearSpec* fLS; - BList* fUsingSummands; + BObjectList fUsingSummands; // All Summands that link to this Variable double fValue; double fMin; diff --git a/src/libs/linprog/Jamfile b/src/libs/linprog/Jamfile index 5713382ffa..5b8f77d4e3 100644 --- a/src/libs/linprog/Jamfile +++ b/src/libs/linprog/Jamfile @@ -3,6 +3,7 @@ SubDir HAIKU_TOP src libs linprog ; SetSubDirSupportedPlatformsBeOSCompatible ; UseLibraryHeaders lp_solve linprog ; +UsePrivateHeaders shared ; SharedLibrary liblinprog.so : Constraint.cpp diff --git a/src/libs/linprog/Summand.cpp b/src/libs/linprog/Summand.cpp index 8caeb892cb..5706d515a2 100644 --- a/src/libs/linprog/Summand.cpp +++ b/src/libs/linprog/Summand.cpp @@ -62,7 +62,7 @@ Summand::SetVar(Variable* var) */ Summand::~Summand() { - fVar->fUsingSummands->RemoveItem(this); + fVar->fUsingSummands.RemoveItem(this); } @@ -74,7 +74,6 @@ Summand::Summand(double coeff, Variable* var) fCoeff = coeff; fVar = var; fUsedInPenaltyFunction = false; - fVar->fUsingSummands->AddItem(this); - + fVar->fUsingSummands.AddItem(this); } diff --git a/src/libs/linprog/Variable.cpp b/src/libs/linprog/Variable.cpp index a9291a701d..0f40d5ede7 100644 --- a/src/libs/linprog/Variable.cpp +++ b/src/libs/linprog/Variable.cpp @@ -97,11 +97,7 @@ Variable::Min() const void Variable::SetMin(double min) { - if (!fIsValid) - return; - - fMin = min; - set_bounds(fLS->fLP, this->Index(), fMin, fMax); + SetRange(min, fMax); } @@ -125,11 +121,7 @@ Variable::Max() const void Variable::SetMax(double max) { - if (!fIsValid) - return; - - fMax = max; - set_bounds(fLS->fLP, this->Index(), fMin, fMax); + SetRange(fMin, max); } @@ -325,8 +317,9 @@ Variable::Invalidate() * Constructor. */ Variable::Variable(LinearSpec* ls) - : fLS(ls), - fUsingSummands(new BList()), + : + fLS(ls), + fValue(NAN), fMin(0), fMax(DBL_MAX), @@ -353,6 +346,5 @@ Variable::Variable(LinearSpec* ls) Variable::~Variable() { Invalidate(); - delete fUsingSummands; }