alpar@1254: /* -*- C++ -*-
alpar@1254:  * src/lemon/lp_solver_skeleton.h
alpar@1254:  * - Part of LEMON, a generic C++ optimization library
alpar@1254:  *
alpar@1254:  * Copyright (C) 2005 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
alpar@1254:  * (Egervary Combinatorial Optimization Research Group, EGRES).
alpar@1254:  *
alpar@1254:  * Permission to use, modify and distribute this software is granted
alpar@1254:  * provided that this copyright notice appears in all copies. For
alpar@1254:  * precise terms see the accompanying LICENSE file.
alpar@1254:  *
alpar@1254:  * This software is provided "AS IS" with no warranty of any kind,
alpar@1254:  * express or implied, and with no claim as to its suitability for any
alpar@1254:  * purpose.
alpar@1254:  *
alpar@1254:  */
alpar@1254: 
alpar@1254: #ifndef LEMON_LP_SOLVER_SKELETON
alpar@1254: #define LEMON_LP_SOLVER_SKELETON
alpar@1254: 
alpar@1254: #include"lp_base.h"
alpar@1254: 
alpar@1254: ///\file
alpar@1254: ///\brief A skeleton file to implement LP solver interfaces
alpar@1254: namespace lemon {
alpar@1254:   
alpar@1254:   ///A skeleton class to implement LP solver interfaces
alpar@1254:   class LpSolverSkeleton :public LpSolverBase {
alpar@1254: 
alpar@1254:   protected:
alpar@1254:     virtual int _addCol();
alpar@1254:     virtual int _addRow();
alpar@1254:     virtual void _setRowCoeffs(int i, 
alpar@1254: 			       int length,
alpar@1254:                                int  const * indices, 
alpar@1254:                                Value  const * values );
alpar@1254:     virtual void _setColCoeffs(int i, 
alpar@1254: 			       int length,
alpar@1254:                                int  const * indices, 
alpar@1254:                                Value  const * values);
alpar@1254:     virtual void _setColLowerBound(int i, Value value);
alpar@1254:     virtual void _setColUpperBound(int i, Value value);
alpar@1254:     virtual void _setRowLowerBound(int i, Value value);
alpar@1254:     virtual void _setRowUpperBound(int i, Value value);
alpar@1254:     virtual void _setObjCoeff(int i, Value obj_coef);
alpar@1263:     virtual SolutionType _solve();
alpar@1263:     virtual Value _getSolution(int i);
alpar@1263: 
alpar@1254:   };  
alpar@1254: 
alpar@1254: } //namespace lemon
alpar@1254: 
alpar@1254: #endif // LEMON_LP_SOLVER_SKELETON