1.1 --- a/src/lemon/lp_skeleton.h Sat May 21 21:04:57 2005 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,134 +0,0 @@
1.4 -/* -*- C++ -*-
1.5 - * src/lemon/lp_skeleton.h
1.6 - * - Part of LEMON, a generic C++ optimization library
1.7 - *
1.8 - * Copyright (C) 2005 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
1.9 - * (Egervary Research Group on Combinatorial Optimization, EGRES).
1.10 - *
1.11 - * Permission to use, modify and distribute this software is granted
1.12 - * provided that this copyright notice appears in all copies. For
1.13 - * precise terms see the accompanying LICENSE file.
1.14 - *
1.15 - * This software is provided "AS IS" with no warranty of any kind,
1.16 - * express or implied, and with no claim as to its suitability for any
1.17 - * purpose.
1.18 - *
1.19 - */
1.20 -
1.21 -#ifndef LEMON_LP_SKELETON
1.22 -#define LEMON_LP_SKELETON
1.23 -
1.24 -#include <lemon/lp_base.h>
1.25 -
1.26 -///\file
1.27 -///\brief A skeleton file to implement LP solver interfaces
1.28 -namespace lemon {
1.29 -
1.30 - ///A skeleton class to implement LP solver interfaces
1.31 - class LpSkeleton :public LpSolverBase {
1.32 - int col_num,row_num;
1.33 -
1.34 - protected:
1.35 - ///\e
1.36 - virtual LpSolverBase &_newLp();
1.37 - ///\e
1.38 - virtual LpSolverBase &_copyLp();
1.39 - /// \e
1.40 - virtual int _addCol();
1.41 - /// \e
1.42 - virtual int _addRow();
1.43 - /// \e
1.44 - virtual void _eraseCol(int i);
1.45 - /// \e
1.46 - virtual void _eraseRow(int i);
1.47 - /// \e
1.48 -
1.49 - /// \warning Arrays are indexed from 1 (datum at index 0 is ignored)
1.50 - ///
1.51 - virtual void _setRowCoeffs(int i,
1.52 - int length,
1.53 - int const * indices,
1.54 - Value const * values );
1.55 - /// \e
1.56 -
1.57 - /// \warning Arrays are indexed from 1 (datum at index 0 is ignored)
1.58 - ///
1.59 - virtual void _setColCoeffs(int i,
1.60 - int length,
1.61 - int const * indices,
1.62 - Value const * values );
1.63 -
1.64 - /// Set one element of the coefficient matrix
1.65 - virtual void _setCoeff(int row, int col, Value value);
1.66 -
1.67 - /// The lower bound of a variable (column) have to be given by an
1.68 - /// extended number of type Value, i.e. a finite number of type
1.69 - /// Value or -\ref INF.
1.70 - virtual void _setColLowerBound(int i, Value value);
1.71 - /// \e
1.72 -
1.73 - /// The upper bound of a variable (column) have to be given by an
1.74 - /// extended number of type Value, i.e. a finite number of type
1.75 - /// Value or \ref INF.
1.76 - virtual void _setColUpperBound(int i, Value value);
1.77 - /// \e
1.78 -
1.79 -// /// The lower bound of a linear expression (row) have to be given by an
1.80 -// /// extended number of type Value, i.e. a finite number of type
1.81 -// /// Value or -\ref INF.
1.82 -// virtual void _setRowLowerBound(int i, Value value);
1.83 -// /// \e
1.84 -
1.85 -// /// The upper bound of a linear expression (row) have to be given by an
1.86 -// /// extended number of type Value, i.e. a finite number of type
1.87 -// /// Value or \ref INF.
1.88 -// virtual void _setRowUpperBound(int i, Value value);
1.89 -
1.90 - /// The lower and upper bound of a linear expression (row) have to be
1.91 - /// given by an
1.92 - /// extended number of type Value, i.e. a finite number of type
1.93 - /// Value or +/-\ref INF.
1.94 - virtual void _setRowBounds(int i, Value lb, Value ub);
1.95 - /// \e
1.96 -
1.97 -
1.98 - /// \e
1.99 - virtual void _clearObj();
1.100 - /// \e
1.101 - virtual void _setObjCoeff(int i, Value obj_coef);
1.102 -
1.103 - ///\e
1.104 -
1.105 - ///\bug Wrong interface
1.106 - ///
1.107 - virtual SolveExitStatus _solve();
1.108 -
1.109 - ///\e
1.110 -
1.111 - ///\bug Wrong interface
1.112 - ///
1.113 - virtual Value _getPrimal(int i);
1.114 - ///\e
1.115 -
1.116 - ///\bug Wrong interface
1.117 - ///
1.118 - virtual Value _getPrimalValue();
1.119 - ///\e
1.120 -
1.121 - ///\bug Wrong interface
1.122 - ///
1.123 - virtual SolutionStatus _getPrimalStatus();
1.124 -
1.125 - ///\e
1.126 - virtual void _setMax();
1.127 - ///\e
1.128 - virtual void _setMin();
1.129 -
1.130 -
1.131 - public:
1.132 - LpSkeleton() : LpSolverBase(), col_num(0), row_num(0) {}
1.133 - };
1.134 -
1.135 -} //namespace lemon
1.136 -
1.137 -#endif // LEMON_LP_SKELETON