1.1 --- a/src/lemon/lp_solver_skeleton.h Thu Apr 07 06:31:03 2005 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,115 +0,0 @@
1.4 -/* -*- C++ -*-
1.5 - * src/lemon/lp_solver_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 Combinatorial Optimization Research Group, 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_SOLVER_SKELETON
1.22 -#define LEMON_LP_SOLVER_SKELETON
1.23 -
1.24 -#include"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 LpSolverSkeleton :public LpSolverBase {
1.32 - int col_num,row_num;
1.33 -
1.34 - protected:
1.35 - /// \e
1.36 - virtual int _addCol();
1.37 - /// \e
1.38 - virtual int _addRow();
1.39 - /// \e
1.40 -
1.41 - /// \warning Arrays are indexed from 1 (datum at index 0 is ignored)
1.42 - ///
1.43 - virtual void _setRowCoeffs(int i,
1.44 - int length,
1.45 - int const * indices,
1.46 - Value const * values );
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 _setColCoeffs(int i,
1.52 - int length,
1.53 - int const * indices,
1.54 - Value const * values );
1.55 -
1.56 - /// \e
1.57 -
1.58 - /// The lower bound of a variable (column) have to be given by an
1.59 - /// extended number of type Value, i.e. a finite number of type
1.60 - /// Value or -\ref INF.
1.61 - virtual void _setColLowerBound(int i, Value value);
1.62 - /// \e
1.63 -
1.64 - /// The upper bound of a variable (column) have to be given by an
1.65 - /// extended number of type Value, i.e. a finite number of type
1.66 - /// Value or \ref INF.
1.67 - virtual void _setColUpperBound(int i, Value value);
1.68 - /// \e
1.69 -
1.70 - /// The lower bound of a linear expression (row) have to be given by an
1.71 - /// extended number of type Value, i.e. a finite number of type
1.72 - /// Value or -\ref INF.
1.73 - virtual void _setRowLowerBound(int i, Value value);
1.74 - /// \e
1.75 -
1.76 - /// The upper bound of a linear expression (row) have to be given by an
1.77 - /// extended number of type Value, i.e. a finite number of type
1.78 - /// Value or \ref INF.
1.79 - virtual void _setRowUpperBound(int i, Value value);
1.80 -
1.81 - /// \e
1.82 - virtual void _setObjCoeff(int i, Value obj_coef);
1.83 -
1.84 - ///\e
1.85 -
1.86 - ///\bug Wrong interface
1.87 - ///
1.88 - virtual SolveExitStatus _solve();
1.89 -
1.90 - ///\e
1.91 -
1.92 - ///\bug Wrong interface
1.93 - ///
1.94 - virtual Value _getPrimal(int i);
1.95 - ///\e
1.96 -
1.97 - ///\bug Wrong interface
1.98 - ///
1.99 - virtual Value _getPrimalValue();
1.100 - ///\e
1.101 -
1.102 - ///\bug Wrong interface
1.103 - ///
1.104 - virtual SolutionStatus _getPrimalStatus();
1.105 -
1.106 - ///\e
1.107 - virtual void _setMax();
1.108 - ///\e
1.109 - virtual void _setMin();
1.110 -
1.111 -
1.112 - public:
1.113 - LpSolverSkeleton() : LpSolverBase(), col_num(0), row_num(0) {}
1.114 - };
1.115 -
1.116 -} //namespace lemon
1.117 -
1.118 -#endif // LEMON_LP_SOLVER_SKELETON