2 * src/lemon/maps.h - Part of LEMON, a generic C++ optimization library
4 * Copyright (C) 2005 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
5 * (Egervary Combinatorial Optimization Research Group, EGRES).
7 * Permission to use, modify and distribute this software is granted
8 * provided that this copyright notice appears in all copies. For
9 * precise terms see the accompanying LICENSE file.
11 * This software is provided "AS IS" with no warranty of any kind,
12 * express or implied, and with no claim as to its suitability for any
17 #ifndef LEMON_LP_BASE_H
18 #define LEMON_LP_BASE_H
21 ///\brief The interface of the LP solver interface.
31 static const Value INF;
34 //MATRIX MANIPULATING FUNCTIONS
37 virtual int _addCol() = 0;
39 virtual int _addRow() = 0;
41 /// \warning Arrays are indexed from 1 (datum at index 0 is ignored)
42 virtual void _setRowCoeffs(int i,
45 Value const * values ) = 0;
47 /// \warning Arrays are indexed from 1 (datum at index 0 is ignored)
48 virtual void _setColCoeffs(int i,
51 Value const * values ) = 0;
54 /// The lower bound of a variable (column) have to be given by an
55 /// extended number of type Value, i.e. a finite number of type
57 virtual void _setColLowerBound(int i, Value value) = 0;
59 /// The upper bound of a variable (column) have to be given by an
60 /// extended number of type Value, i.e. a finite number of type
62 virtual void _setColUpperBound(int i, Value value) = 0;
64 /// The lower bound of a linear expression (row) have to be given by an
65 /// extended number of type Value, i.e. a finite number of type
67 virtual void _setRowLowerBound(int i, Value value) = 0;
69 /// The upper bound of a linear expression (row) have to be given by an
70 /// extended number of type Value, i.e. a finite number of type
72 virtual void _setRowUpperBound(int i, Value value) = 0;
75 virtual void _setObjCoeff(int i, Value obj_coef) = 0;
80 #endif //LEMON_LP_BASE_H