From 4403274117e9248a7c458e7705d8d9444a36df66 Mon Sep 17 00:00:00 2001 From: Clemens Zeidler Date: Mon, 20 Sep 2010 04:23:27 +0000 Subject: [PATCH] Some clean up (not complete). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38736 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/libs/linprog/LinearSpec.h | 174 +++++++++++++++--------------- headers/libs/linprog/ResultType.h | 18 +++- 2 files changed, 104 insertions(+), 88 deletions(-) diff --git a/headers/libs/linprog/LinearSpec.h b/headers/libs/linprog/LinearSpec.h index 73c0fdc6fd..1151d90444 100644 --- a/headers/libs/linprog/LinearSpec.h +++ b/headers/libs/linprog/LinearSpec.h @@ -1,28 +1,29 @@ /* * Copyright 2007-2008, Christof Lutteroth, lutteroth@cs.auckland.ac.nz * Copyright 2007-2008, James Kim, jkim202@ec.auckland.ac.nz + * Copyright 2010, Clemens Zeidler, haiku@clemens-zeidler.de * Distributed under the terms of the MIT License. */ - #ifndef LINEAR_SPEC_H #define LINEAR_SPEC_H -#include "Variable.h" -#include "Constraint.h" -#include "Summand.h" -#include "PenaltyFunction.h" -#include "OperatorType.h" -#include "ResultType.h" -#include "OptimizationType.h" - -#include "lp_lib.h" - -#include -#include -#include -#include #include +#include +#include +#include +#include + +#include "Constraint.h" + +#include "OperatorType.h" +#include "OptimizationType.h" +#include "PenaltyFunction.h" +#include "ResultType.h" +#include "Summand.h" +#include "Variable.h" + +#include "lp_lib.h" namespace LinearProgramming { @@ -31,92 +32,95 @@ class ObjFunctionSummand; class PenaltyFunction; class Variable; -/** + +/*! * Specification of a linear programming problem. */ class LinearSpec { - public: - LinearSpec(); - virtual ~LinearSpec(); + LinearSpec(); + virtual ~LinearSpec(); - Variable* AddVariable(); + Variable* AddVariable(); - Constraint* AddConstraint(BList* summands, - OperatorType op, double rightSide); - Constraint* AddConstraint(double coeff1, Variable* var1, - OperatorType op, double rightSide); - Constraint* AddConstraint(double coeff1, Variable* var1, - double coeff2, Variable* var2, - OperatorType op, double rightSide); - Constraint* AddConstraint(double coeff1, Variable* var1, - double coeff2, Variable* var2, - double coeff3, Variable* var3, - OperatorType op, double rightSide); - Constraint* AddConstraint(double coeff1, Variable* var1, - double coeff2, Variable* var2, - double coeff3, Variable* var3, - double coeff4, Variable* var4, - OperatorType op, double rightSide); + Constraint* AddConstraint(BList* summands, + OperatorType op, double rightSide); + Constraint* AddConstraint(double coeff1, Variable* var1, + OperatorType op, double rightSide); + Constraint* AddConstraint(double coeff1, Variable* var1, + double coeff2, Variable* var2, + OperatorType op, double rightSide); + Constraint* AddConstraint(double coeff1, Variable* var1, + double coeff2, Variable* var2, + double coeff3, Variable* var3, + OperatorType op, double rightSide); + Constraint* AddConstraint(double coeff1, Variable* var1, + double coeff2, Variable* var2, + double coeff3, Variable* var3, + double coeff4, Variable* var4, + OperatorType op, double rightSide); - Constraint* AddConstraint(BList* summands, - OperatorType op, double rightSide, - double penaltyNeg, double penaltyPos); - Constraint* AddConstraint(double coeff1, Variable* var1, - OperatorType op, double rightSide, - double penaltyNeg, double penaltyPos); - Constraint* AddConstraint(double coeff1, Variable* var1, - double coeff2, Variable* var2, - OperatorType op, double rightSide, - double penaltyNeg, double penaltyPos); - Constraint* AddConstraint(double coeff1, Variable* var1, - double coeff2, Variable* var2, - double coeff3, Variable* var3, - OperatorType op, double rightSide, - double penaltyNeg, double penaltyPos); - Constraint* AddConstraint(double coeff1, Variable* var1, - double coeff2, Variable* var2, - double coeff3, Variable* var3, - double coeff4, Variable* var4, - OperatorType op, double rightSide, - double penaltyNeg, double penaltyPos); + Constraint* AddConstraint(BList* summands, + OperatorType op, double rightSide, + double penaltyNeg, double penaltyPos); + Constraint* AddConstraint(double coeff1, Variable* var1, + OperatorType op, double rightSide, + double penaltyNeg, double penaltyPos); + Constraint* AddConstraint(double coeff1, Variable* var1, + double coeff2, Variable* var2, + OperatorType op, double rightSide, + double penaltyNeg, double penaltyPos); + Constraint* AddConstraint(double coeff1, Variable* var1, + double coeff2, Variable* var2, + double coeff3, Variable* var3, + OperatorType op, double rightSide, + double penaltyNeg, double penaltyPos); + Constraint* AddConstraint(double coeff1, Variable* var1, + double coeff2, Variable* var2, + double coeff3, Variable* var3, + double coeff4, Variable* var4, + OperatorType op, double rightSide, + double penaltyNeg, double penaltyPos); - PenaltyFunction* AddPenaltyFunction(Variable* var, BList* xs, BList* gs); + PenaltyFunction* AddPenaltyFunction(Variable* var, BList* xs, + BList* gs); - BList* ObjFunction(); - void SetObjFunction(BList* summands); - void UpdateObjFunction(); + BList* ObjFunction(); + void SetObjFunction(BList* summands); + void UpdateObjFunction(); - ResultType Presolve(); - void RemovePresolved(); - ResultType Solve(); - void Save(const char* fileName); + ResultType Presolve(); + void RemovePresolved(); + ResultType Solve(); + void Save(const char* fileName); - int32 CountColumns() const; - OptimizationType Optimization() const; - void SetOptimization(OptimizationType value); - BList* Variables() const; - BList* Constraints() const; - ResultType Result() const; - double ObjectiveValue() const; - double SolvingTime() const; + int32 CountColumns() const; + OptimizationType Optimization() const; + void SetOptimization(OptimizationType value); - operator BString() const; - void GetString(BString& string) const; + ResultType Result() const; + double ObjectiveValue() const; + double SolvingTime() const; + + operator BString() const; + void GetString(BString& string) const; protected: - int32 fCountColumns; + BList* Variables() const; + BList* Constraints() const; + + int32 fCountColumns; private: - lprec* fLpPresolved; - OptimizationType fOptimization; - lprec* fLP; - BList* fObjFunction; - BList fVariables; - BList fConstraints; - ResultType fResult; - double fObjectiveValue; - double fSolvingTime; + lprec* fLpPresolved; + OptimizationType fOptimization; + lprec* fLP; + BList* fObjFunction; + BList fVariables; + BList fConstraints; + ResultType fResult; + double fObjectiveValue; + double fSolvingTime; public: friend class Constraint; diff --git a/headers/libs/linprog/ResultType.h b/headers/libs/linprog/ResultType.h index bb119a6e2b..53575c7c98 100644 --- a/headers/libs/linprog/ResultType.h +++ b/headers/libs/linprog/ResultType.h @@ -14,9 +14,21 @@ namespace LinearProgramming { * The possible results of a solving attempt. */ enum ResultType { - NOMEMORY = -2, ERROR = -1, OPTIMAL = 0, SUBOPTIMAL = 1, INFEASIBLE = 2, UNBOUNDED = 3, - DEGENERATE = 4, NUMFAILURE = 5, USERABORT = 6, TIMEOUT = 7, PRESOLVED = 9, PROCFAIL = 10, - PROCBREAK = 11, FEASFOUND = 12, NOFEASFOUND = 13 + NOMEMORY = -2, + ERROR = -1, + OPTIMAL = 0, + SUBOPTIMAL = 1, + INFEASIBLE = 2, + UNBOUNDED = 3, + DEGENERATE = 4, + NUMFAILURE = 5, + USERABORT = 6, + TIMEOUT = 7, + PRESOLVED = 9, + PROCFAIL = 10, + PROCBREAK = 11, + FEASFOUND = 12, + NOFEASFOUND = 13 }; } // namespace LinearProgramming