lemon/lp_skeleton.cc
author deba
Tue, 17 Oct 2006 10:50:57 +0000
changeset 2247 269a0dcee70b
parent 1895 5b01801efbc0
child 2312 07e46cbb7d85
permissions -rw-r--r--
Update the Path concept
Concept check for paths

DirPath renamed to Path
The interface updated to the new lemon interface
Make difference between the empty path and the path from one node
Builder interface have not been changed
// I wanted but there was not accordance about it

UPath is removed
It was a buggy implementation, it could not iterate on the
nodes in the right order
Right way to use undirected paths => path of edges in undirected graphs

The tests have been modified to the current implementation
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
  
alpar@1362
    61
  void LpSkeleton::_setRowCoeffs(int, 
alpar@1362
    62
				 int,
alpar@1362
    63
				 int  const *, 
alpar@1362
    64
				 Value  const *)
alpar@1254
    65
  {
alpar@1254
    66
  }
alpar@1254
    67
  
alpar@1362
    68
  void LpSkeleton::_setColCoeffs(int, 
alpar@1362
    69
				 int,
alpar@1362
    70
				 int  const *, 
alpar@1362
    71
				 Value  const *)
alpar@1254
    72
  {
alpar@1254
    73
  }
athos@1431
    74
athos@1431
    75
  void LpSkeleton::_setCoeff(int, int, Value )
athos@1431
    76
  {
athos@1431
    77
  }
athos@1431
    78
athos@1431
    79
alpar@1362
    80
  void LpSkeleton::_setColLowerBound(int, Value)
alpar@1254
    81
  {
alpar@1254
    82
  }
alpar@1254
    83
  
alpar@1362
    84
  void LpSkeleton::_setColUpperBound(int, Value)
alpar@1254
    85
  {
alpar@1254
    86
  }
alpar@1254
    87
  
athos@1405
    88
//   void LpSkeleton::_setRowLowerBound(int, Value)
athos@1405
    89
//   {
athos@1405
    90
//   }
alpar@1254
    91
  
athos@1405
    92
//   void LpSkeleton::_setRowUpperBound(int, Value)
athos@1405
    93
//   {
athos@1405
    94
//   }
athos@1389
    95
alpar@1390
    96
  void LpSkeleton::_setRowBounds(int, Value, Value)
athos@1389
    97
  {
athos@1389
    98
  }
alpar@1254
    99
  
alpar@1362
   100
  void LpSkeleton::_setObjCoeff(int, Value)
alpar@1254
   101
  {
alpar@1254
   102
  }
alpar@1263
   103
alpar@1313
   104
  void LpSkeleton::_setMax()
alpar@1312
   105
  {
alpar@1312
   106
  }
alpar@1390
   107
alpar@1313
   108
  void LpSkeleton::_setMin()
alpar@1312
   109
  {
alpar@1312
   110
  }
alpar@1312
   111
alpar@1390
   112
  void LpSkeleton::_clearObj()
alpar@1390
   113
  {
alpar@1390
   114
  }
alpar@1390
   115
  
alpar@1313
   116
  LpSkeleton::SolveExitStatus LpSkeleton::_solve()
alpar@1263
   117
  {
alpar@1293
   118
    return SOLVED;
alpar@1263
   119
  }
alpar@1263
   120
alpar@1362
   121
  LpSkeleton::Value LpSkeleton::_getPrimal(int)
alpar@1263
   122
  {
alpar@1263
   123
    return 0;
alpar@1263
   124
  }
alpar@1254
   125
  
klao@1796
   126
  LpSkeleton::Value LpSkeleton::_getDual(int)
klao@1796
   127
  {
klao@1796
   128
    return 0;
klao@1796
   129
  }
klao@1796
   130
  
alpar@1313
   131
  LpSkeleton::Value LpSkeleton::_getPrimalValue()
alpar@1312
   132
  {
alpar@1312
   133
    return 0;
alpar@1312
   134
  }
alpar@1312
   135
  
alpar@1313
   136
  LpSkeleton::SolutionStatus LpSkeleton::_getPrimalStatus()
alpar@1294
   137
  {
athos@1460
   138
    return UNDEFINED;
athos@1460
   139
  }
athos@1460
   140
athos@1460
   141
  LpSkeleton::SolutionStatus LpSkeleton::_getDualStatus()
athos@1460
   142
  {
athos@1460
   143
    return UNDEFINED;
athos@1460
   144
  }
athos@1460
   145
athos@1460
   146
  LpSkeleton::ProblemTypes LpSkeleton::_getProblemType()
athos@1460
   147
  {
athos@1460
   148
    return UNKNOWN;
alpar@1294
   149
  }
alpar@1843
   150
alpar@1855
   151
  bool LpSkeleton::_isBasicCol(int)
alpar@1843
   152
  {
alpar@1843
   153
    return true;
alpar@1843
   154
  }
alpar@1843
   155
alpar@1254
   156
} //namespace lemon
alpar@1254
   157