lemon/lp_skeleton.cc
author deba
Thu, 15 Feb 2007 14:22:08 +0000
changeset 2363 2aabce558574
parent 2326 af8c695372be
child 2364 3a5e67bd42d2
permissions -rw-r--r--
Changes on the LP interface

_FixId => LpId
- handling of not common ids // soplex
LpGlpk row and col erase bug fix
- calling lpx_std_basis before simplex
LpSoplex
- added getter functions
- better m4 file
- integration to the tests
- better handling of unsolved lps
alpar@1254
     1
/* -*- C++ -*-
alpar@1254
     2
 *
alpar@1956
     3
 * This file is a part of LEMON, a generic C++ optimization library
alpar@1956
     4
 *
alpar@1956
     5
 * Copyright (C) 2003-2006
alpar@1956
     6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
alpar@1359
     7
 * (Egervary Research Group on Combinatorial Optimization, EGRES).
alpar@1254
     8
 *
alpar@1254
     9
 * Permission to use, modify and distribute this software is granted
alpar@1254
    10
 * provided that this copyright notice appears in all copies. For
alpar@1254
    11
 * precise terms see the accompanying LICENSE file.
alpar@1254
    12
 *
alpar@1254
    13
 * This software is provided "AS IS" with no warranty of any kind,
alpar@1254
    14
 * express or implied, and with no claim as to its suitability for any
alpar@1254
    15
 * purpose.
alpar@1254
    16
 *
alpar@1254
    17
 */
alpar@1254
    18
alpar@1313
    19
#include <lemon/lp_skeleton.h>
alpar@1254
    20
alpar@1254
    21
///\file
alpar@1254
    22
///\brief A skeleton file to implement LP solver interfaces
alpar@1254
    23
namespace lemon {
alpar@1254
    24
  
alpar@1364
    25
  LpSolverBase &LpSkeleton::_newLp()
alpar@1364
    26
  {
alpar@1368
    27
    LpSolverBase *tmp=0;
alpar@1368
    28
    return *tmp;
alpar@1364
    29
  }
alpar@1364
    30
  
alpar@1364
    31
  LpSolverBase &LpSkeleton::_copyLp()
alpar@1364
    32
  {
alpar@1368
    33
    LpSolverBase *tmp=0;
alpar@1368
    34
    return *tmp;
alpar@1364
    35
  }
alpar@1364
    36
alpar@1313
    37
  int LpSkeleton::_addCol()
alpar@1254
    38
  {
alpar@1273
    39
    return ++col_num;
alpar@1254
    40
  }
alpar@1254
    41
  
alpar@1313
    42
  int LpSkeleton::_addRow() 
alpar@1254
    43
  {
alpar@1273
    44
    return ++row_num;
alpar@1254
    45
  }
alpar@1254
    46
  
athos@1432
    47
  void LpSkeleton::_eraseCol(int ) {
athos@1432
    48
  }
athos@1432
    49
  
athos@1432
    50
  void LpSkeleton::_eraseRow(int) {
athos@1432
    51
  }
athos@1432
    52
alpar@1895
    53
  void LpSkeleton::_getColName(int, std::string &) {
alpar@1895
    54
  }
alpar@1895
    55
  
alpar@1895
    56
  
alpar@1895
    57
  void LpSkeleton::_setColName(int, const std::string &) {
alpar@1895
    58
  }
alpar@1895
    59
  
alpar@1895
    60
  
deba@2312
    61
  void LpSkeleton::_setRowCoeffs(int, LpRowIterator, LpRowIterator) {
alpar@1254
    62
  }
alpar@1254
    63
  
deba@2312
    64
  void LpSkeleton::_setColCoeffs(int, LpColIterator, LpColIterator) {
alpar@1254
    65
  }
athos@1431
    66
athos@1431
    67
  void LpSkeleton::_setCoeff(int, int, Value )
athos@1431
    68
  {
athos@1431
    69
  }
athos@1431
    70
athos@2324
    71
  LpSkeleton::Value LpSkeleton::_getCoeff(int, int)
athos@2324
    72
  {
athos@2324
    73
    return 0;
athos@2324
    74
  }
athos@2324
    75
athos@1431
    76
alpar@1362
    77
  void LpSkeleton::_setColLowerBound(int, Value)
alpar@1254
    78
  {
alpar@1254
    79
  }
alpar@1254
    80
  
athos@2328
    81
  LpSkeleton::Value LpSkeleton::_getColLowerBound(int)
athos@2328
    82
  {
athos@2328
    83
    return 0;
athos@2328
    84
  }
athos@2328
    85
  
alpar@1362
    86
  void LpSkeleton::_setColUpperBound(int, Value)
alpar@1254
    87
  {
alpar@1254
    88
  }
athos@2328
    89
athos@2328
    90
  LpSkeleton::Value LpSkeleton::_getColUpperBound(int)
athos@2328
    91
  {
athos@2328
    92
    return 0;
athos@2328
    93
  }
alpar@1254
    94
  
athos@1405
    95
//   void LpSkeleton::_setRowLowerBound(int, Value)
athos@1405
    96
//   {
athos@1405
    97
//   }
alpar@1254
    98
  
athos@1405
    99
//   void LpSkeleton::_setRowUpperBound(int, Value)
athos@1405
   100
//   {
athos@1405
   101
//   }
athos@1389
   102
alpar@1390
   103
  void LpSkeleton::_setRowBounds(int, Value, Value)
athos@1389
   104
  {
athos@1389
   105
  }
athos@2328
   106
athos@2328
   107
  void LpSkeleton::_getRowBounds(int, Value&, Value&)
athos@2328
   108
  {
athos@2328
   109
  }
alpar@1254
   110
  
alpar@1362
   111
  void LpSkeleton::_setObjCoeff(int, Value)
alpar@1254
   112
  {
alpar@1254
   113
  }
alpar@1263
   114
alpar@2326
   115
  LpSkeleton::Value LpSkeleton::_getObjCoeff(int){
athos@2324
   116
    return 0;
athos@2324
   117
  }
athos@2324
   118
alpar@1313
   119
  void LpSkeleton::_setMax()
alpar@1312
   120
  {
alpar@1312
   121
  }
alpar@1390
   122
alpar@1313
   123
  void LpSkeleton::_setMin()
alpar@1312
   124
  {
alpar@1312
   125
  }
alpar@1312
   126
athos@2324
   127
  bool LpSkeleton::_isMax()
athos@2324
   128
  {
athos@2324
   129
    return true;
athos@2324
   130
  }
athos@2324
   131
athos@2324
   132
alpar@1390
   133
  void LpSkeleton::_clearObj()
alpar@1390
   134
  {
alpar@1390
   135
  }
alpar@1390
   136
  
alpar@1313
   137
  LpSkeleton::SolveExitStatus LpSkeleton::_solve()
alpar@1263
   138
  {
alpar@1293
   139
    return SOLVED;
alpar@1263
   140
  }
alpar@1263
   141
alpar@1362
   142
  LpSkeleton::Value LpSkeleton::_getPrimal(int)
alpar@1263
   143
  {
alpar@1263
   144
    return 0;
alpar@1263
   145
  }
alpar@1254
   146
  
klao@1796
   147
  LpSkeleton::Value LpSkeleton::_getDual(int)
klao@1796
   148
  {
klao@1796
   149
    return 0;
klao@1796
   150
  }
klao@1796
   151
  
alpar@1313
   152
  LpSkeleton::Value LpSkeleton::_getPrimalValue()
alpar@1312
   153
  {
alpar@1312
   154
    return 0;
alpar@1312
   155
  }
alpar@1312
   156
  
alpar@1313
   157
  LpSkeleton::SolutionStatus LpSkeleton::_getPrimalStatus()
alpar@1294
   158
  {
athos@1460
   159
    return UNDEFINED;
athos@1460
   160
  }
athos@1460
   161
athos@1460
   162
  LpSkeleton::SolutionStatus LpSkeleton::_getDualStatus()
athos@1460
   163
  {
athos@1460
   164
    return UNDEFINED;
athos@1460
   165
  }
athos@1460
   166
athos@1460
   167
  LpSkeleton::ProblemTypes LpSkeleton::_getProblemType()
athos@1460
   168
  {
athos@1460
   169
    return UNKNOWN;
alpar@1294
   170
  }
alpar@1843
   171
alpar@1855
   172
  bool LpSkeleton::_isBasicCol(int)
alpar@1843
   173
  {
alpar@1843
   174
    return true;
alpar@1843
   175
  }
alpar@1843
   176
alpar@1254
   177
} //namespace lemon
alpar@1254
   178