diff -r 76ec7bd57026 -r 08d495d48089 lemon/lp_soplex.h --- a/lemon/lp_soplex.h Mon Jan 12 12:25:55 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -/* -*- mode: C++; indent-tabs-mode: nil; -*- - * - * This file is a part of LEMON, a generic C++ optimization library. - * - * Copyright (C) 2003-2008 - * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport - * (Egervary Research Group on Combinatorial Optimization, EGRES). - * - * Permission to use, modify and distribute this software is granted - * provided that this copyright notice appears in all copies. For - * precise terms see the accompanying LICENSE file. - * - * This software is provided "AS IS" with no warranty of any kind, - * express or implied, and with no claim as to its suitability for any - * purpose. - * - */ - -#ifndef LEMON_LP_SOPLEX_H -#define LEMON_LP_SOPLEX_H - -///\file -///\brief Header of the LEMON-SOPLEX lp solver interface. - -#include -#include - -#include - -// Forward declaration -namespace soplex { - class SoPlex; -} - -namespace lemon { - - /// \ingroup lp_group - /// - /// \brief Interface for the SOPLEX solver - /// - /// This class implements an interface for the SoPlex LP solver. - /// The SoPlex library is an object oriented lp solver library - /// developed at the Konrad-Zuse-Zentrum für Informationstechnik - /// Berlin (ZIB). You can find detailed information about it at the - /// http://soplex.zib.de address. - class LpSoplex : public LpSolver { - private: - - soplex::SoPlex* soplex; - - std::vector _col_names; - std::map _col_names_ref; - - std::vector _row_names; - std::map _row_names_ref; - - private: - - // these values cannot be retrieved element by element - mutable std::vector _primal_values; - mutable std::vector _dual_values; - - mutable std::vector _primal_ray; - mutable std::vector _dual_ray; - - void _clear_temporals(); - - public: - - /// \e - LpSoplex(); - /// \e - LpSoplex(const LpSoplex&); - /// \e - ~LpSoplex(); - - protected: - - virtual LpSoplex* _newSolver() const; - virtual LpSoplex* _cloneSolver() const; - - virtual const char* _solverName() const; - - virtual int _addCol(); - virtual int _addRow(); - - virtual void _eraseCol(int i); - virtual void _eraseRow(int i); - - virtual void _eraseColId(int i); - virtual void _eraseRowId(int i); - - virtual void _getColName(int col, std::string& name) const; - virtual void _setColName(int col, const std::string& name); - virtual int _colByName(const std::string& name) const; - - virtual void _getRowName(int row, std::string& name) const; - virtual void _setRowName(int row, const std::string& name); - virtual int _rowByName(const std::string& name) const; - - virtual void _setRowCoeffs(int i, ExprIterator b, ExprIterator e); - virtual void _getRowCoeffs(int i, InsertIterator b) const; - - virtual void _setColCoeffs(int i, ExprIterator b, ExprIterator e); - virtual void _getColCoeffs(int i, InsertIterator b) const; - - virtual void _setCoeff(int row, int col, Value value); - virtual Value _getCoeff(int row, int col) const; - - virtual void _setColLowerBound(int i, Value value); - virtual Value _getColLowerBound(int i) const; - virtual void _setColUpperBound(int i, Value value); - virtual Value _getColUpperBound(int i) const; - - virtual void _setRowLowerBound(int i, Value value); - virtual Value _getRowLowerBound(int i) const; - virtual void _setRowUpperBound(int i, Value value); - virtual Value _getRowUpperBound(int i) const; - - virtual void _setObjCoeffs(ExprIterator b, ExprIterator e); - virtual void _getObjCoeffs(InsertIterator b) const; - - virtual void _setObjCoeff(int i, Value obj_coef); - virtual Value _getObjCoeff(int i) const; - - virtual void _setSense(Sense sense); - virtual Sense _getSense() const; - - virtual SolveExitStatus _solve(); - virtual Value _getPrimal(int i) const; - virtual Value _getDual(int i) const; - - virtual Value _getPrimalValue() const; - - virtual Value _getPrimalRay(int i) const; - virtual Value _getDualRay(int i) const; - - virtual VarStatus _getColStatus(int i) const; - virtual VarStatus _getRowStatus(int i) const; - - virtual ProblemType _getPrimalType() const; - virtual ProblemType _getDualType() const; - - virtual void _clear(); - - }; - -} //END OF NAMESPACE LEMON - -#endif //LEMON_LP_SOPLEX_H -