0
9
0
1 | 1 |
/* -*- mode: C++; indent-tabs-mode: nil; -*- |
2 | 2 |
* |
3 | 3 |
* This file is a part of LEMON, a generic C++ optimization library. |
4 | 4 |
* |
5 | 5 |
* Copyright (C) 2003-2009 |
6 | 6 |
* Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport |
7 | 7 |
* (Egervary Research Group on Combinatorial Optimization, EGRES). |
8 | 8 |
* |
9 | 9 |
* Permission to use, modify and distribute this software is granted |
10 | 10 |
* provided that this copyright notice appears in all copies. For |
11 | 11 |
* precise terms see the accompanying LICENSE file. |
12 | 12 |
* |
13 | 13 |
* This software is provided "AS IS" with no warranty of any kind, |
14 | 14 |
* express or implied, and with no claim as to its suitability for any |
15 | 15 |
* purpose. |
16 | 16 |
* |
17 | 17 |
*/ |
18 | 18 |
|
19 |
#ifndef LEMON_BITS_PRED_MAP_PATH_H |
|
20 |
#define LEMON_BITS_PRED_MAP_PATH_H |
|
19 |
#ifndef LEMON_BITS_PATH_DUMP_H |
|
20 |
#define LEMON_BITS_PATH_DUMP_H |
|
21 | 21 |
|
22 | 22 |
#include <lemon/core.h> |
23 | 23 |
#include <lemon/concept_check.h> |
24 | 24 |
|
25 | 25 |
namespace lemon { |
26 | 26 |
|
27 | 27 |
template <typename _Digraph, typename _PredMap> |
28 | 28 |
class PredMapPath { |
29 | 29 |
public: |
30 | 30 |
typedef True RevPathTag; |
31 | 31 |
|
32 | 32 |
typedef _Digraph Digraph; |
33 | 33 |
typedef typename Digraph::Arc Arc; |
34 | 34 |
typedef _PredMap PredMap; |
35 | 35 |
|
36 | 36 |
PredMapPath(const Digraph& _digraph, const PredMap& _predMap, |
37 | 37 |
typename Digraph::Node _target) |
38 | 38 |
: digraph(_digraph), predMap(_predMap), target(_target) {} |
39 | 39 |
|
40 | 40 |
int length() const { |
41 | 41 |
int len = 0; |
42 | 42 |
typename Digraph::Node node = target; |
43 | 43 |
typename Digraph::Arc arc; |
44 | 44 |
while ((arc = predMap[node]) != INVALID) { |
1 | 1 |
/* -*- mode: C++; indent-tabs-mode: nil; -*- |
2 | 2 |
* |
3 | 3 |
* This file is a part of LEMON, a generic C++ optimization library. |
4 | 4 |
* |
5 | 5 |
* Copyright (C) 2003-2009 |
6 | 6 |
* Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport |
7 | 7 |
* (Egervary Research Group on Combinatorial Optimization, EGRES). |
8 | 8 |
* |
9 | 9 |
* Permission to use, modify and distribute this software is granted |
10 | 10 |
* provided that this copyright notice appears in all copies. For |
11 | 11 |
* precise terms see the accompanying LICENSE file. |
12 | 12 |
* |
13 | 13 |
* This software is provided "AS IS" with no warranty of any kind, |
14 | 14 |
* express or implied, and with no claim as to its suitability for any |
15 | 15 |
* purpose. |
16 | 16 |
* |
17 | 17 |
*/ |
18 | 18 |
|
19 |
#ifndef LEMON_WINDOWS_H |
|
20 |
#define LEMON_WINDOWS_H |
|
19 |
#ifndef LEMON_BITS_WINDOWS_H |
|
20 |
#define LEMON_BITS_WINDOWS_H |
|
21 | 21 |
|
22 | 22 |
#include <string> |
23 | 23 |
|
24 | 24 |
namespace lemon { |
25 | 25 |
namespace bits { |
26 | 26 |
void getWinProcTimes(double &rtime, |
27 | 27 |
double &utime, double &stime, |
28 | 28 |
double &cutime, double &cstime); |
29 | 29 |
std::string getWinFormattedDate(); |
30 | 30 |
int getWinRndSeed(); |
31 | 31 |
} |
32 | 32 |
} |
33 | 33 |
|
34 | 34 |
#endif |
1 | 1 |
/* -*- mode: C++; indent-tabs-mode: nil; -*- |
2 | 2 |
* |
3 | 3 |
* This file is a part of LEMON, a generic C++ optimization library. |
4 | 4 |
* |
5 | 5 |
* Copyright (C) 2003-2009 |
6 | 6 |
* Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport |
7 | 7 |
* (Egervary Research Group on Combinatorial Optimization, EGRES). |
8 | 8 |
* |
9 | 9 |
* Permission to use, modify and distribute this software is granted |
10 | 10 |
* provided that this copyright notice appears in all copies. For |
11 | 11 |
* precise terms see the accompanying LICENSE file. |
12 | 12 |
* |
13 | 13 |
* This software is provided "AS IS" with no warranty of any kind, |
14 | 14 |
* express or implied, and with no claim as to its suitability for any |
15 | 15 |
* purpose. |
16 | 16 |
* |
17 | 17 |
*/ |
18 | 18 |
|
19 |
#ifndef LEMON_CONCEPT_DIGRAPH_H |
|
20 |
#define LEMON_CONCEPT_DIGRAPH_H |
|
19 |
#ifndef LEMON_CONCEPTS_DIGRAPH_H |
|
20 |
#define LEMON_CONCEPTS_DIGRAPH_H |
|
21 | 21 |
|
22 | 22 |
///\ingroup graph_concepts |
23 | 23 |
///\file |
24 | 24 |
///\brief The concept of directed graphs. |
25 | 25 |
|
26 | 26 |
#include <lemon/core.h> |
27 | 27 |
#include <lemon/concepts/maps.h> |
28 | 28 |
#include <lemon/concept_check.h> |
29 | 29 |
#include <lemon/concepts/graph_components.h> |
30 | 30 |
|
31 | 31 |
namespace lemon { |
32 | 32 |
namespace concepts { |
33 | 33 |
|
34 | 34 |
/// \ingroup graph_concepts |
35 | 35 |
/// |
36 | 36 |
/// \brief Class describing the concept of directed graphs. |
37 | 37 |
/// |
38 | 38 |
/// This class describes the \ref concept "concept" of the |
39 | 39 |
/// immutable directed digraphs. |
40 | 40 |
/// |
41 | 41 |
/// Note that actual digraph implementation like @ref ListDigraph or |
42 | 42 |
/// @ref SmartDigraph may have several additional functionality. |
43 | 43 |
/// |
44 | 44 |
/// \sa concept |
... | ... |
@@ -463,25 +463,25 @@ |
463 | 463 |
///Assignment operator |
464 | 464 |
template <typename CMap> |
465 | 465 |
ArcMap& operator=(const CMap&) { |
466 | 466 |
checkConcept<ReadMap<Arc, T>, CMap>(); |
467 | 467 |
return *this; |
468 | 468 |
} |
469 | 469 |
}; |
470 | 470 |
|
471 | 471 |
template <typename _Digraph> |
472 | 472 |
struct Constraints { |
473 | 473 |
void constraints() { |
474 | 474 |
checkConcept<IterableDigraphComponent<>, _Digraph>(); |
475 | 475 |
checkConcept<IDableDigraphComponent<>, _Digraph>(); |
476 | 476 |
checkConcept<MappableDigraphComponent<>, _Digraph>(); |
477 | 477 |
} |
478 | 478 |
}; |
479 | 479 |
|
480 | 480 |
}; |
481 | 481 |
|
482 | 482 |
} //namespace concepts |
483 | 483 |
} //namespace lemon |
484 | 484 |
|
485 | 485 |
|
486 | 486 |
|
487 |
#endif |
|
487 |
#endif |
1 | 1 |
/* -*- mode: C++; indent-tabs-mode: nil; -*- |
2 | 2 |
* |
3 | 3 |
* This file is a part of LEMON, a generic C++ optimization library. |
4 | 4 |
* |
5 | 5 |
* Copyright (C) 2003-2009 |
6 | 6 |
* Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport |
7 | 7 |
* (Egervary Research Group on Combinatorial Optimization, EGRES). |
8 | 8 |
* |
9 | 9 |
* Permission to use, modify and distribute this software is granted |
10 | 10 |
* provided that this copyright notice appears in all copies. For |
11 | 11 |
* precise terms see the accompanying LICENSE file. |
12 | 12 |
* |
13 | 13 |
* This software is provided "AS IS" with no warranty of any kind, |
14 | 14 |
* express or implied, and with no claim as to its suitability for any |
15 | 15 |
* purpose. |
16 | 16 |
* |
17 | 17 |
*/ |
18 | 18 |
|
19 | 19 |
///\ingroup graph_concepts |
20 | 20 |
///\file |
21 | 21 |
///\brief The concept of Undirected Graphs. |
22 | 22 |
|
23 |
#ifndef LEMON_CONCEPT_GRAPH_H |
|
24 |
#define LEMON_CONCEPT_GRAPH_H |
|
23 |
#ifndef LEMON_CONCEPTS_GRAPH_H |
|
24 |
#define LEMON_CONCEPTS_GRAPH_H |
|
25 | 25 |
|
26 | 26 |
#include <lemon/concepts/graph_components.h> |
27 |
#include <lemon/concepts/graph.h> |
|
28 | 27 |
#include <lemon/core.h> |
29 | 28 |
|
30 | 29 |
namespace lemon { |
31 | 30 |
namespace concepts { |
32 | 31 |
|
33 | 32 |
/// \ingroup graph_concepts |
34 | 33 |
/// |
35 | 34 |
/// \brief Class describing the concept of Undirected Graphs. |
36 | 35 |
/// |
37 | 36 |
/// This class describes the common interface of all Undirected |
38 | 37 |
/// Graphs. |
39 | 38 |
/// |
40 | 39 |
/// As all concept describing classes it provides only interface |
41 | 40 |
/// without any sensible implementation. So any algorithm for |
42 | 41 |
/// undirected graph should compile with this class, but it will not |
43 | 42 |
/// run properly, of course. |
44 | 43 |
/// |
45 | 44 |
/// The LEMON undirected graphs also fulfill the concept of |
46 | 45 |
/// directed graphs (\ref lemon::concepts::Digraph "Digraph |
47 | 46 |
/// Concept"). Each edges can be seen as two opposite |
48 | 47 |
/// directed arc and consequently the undirected graph can be |
49 | 48 |
/// seen as the direceted graph of these directed arcs. The |
50 | 49 |
/// Graph has the Edge inner class for the edges and |
51 | 50 |
/// the Arc type for the directed arcs. The Arc type is |
1 | 1 |
/* -*- mode: C++; indent-tabs-mode: nil; -*- |
2 | 2 |
* |
3 | 3 |
* This file is a part of LEMON, a generic C++ optimization library. |
4 | 4 |
* |
5 | 5 |
* Copyright (C) 2003-2009 |
6 | 6 |
* Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport |
7 | 7 |
* (Egervary Research Group on Combinatorial Optimization, EGRES). |
8 | 8 |
* |
9 | 9 |
* Permission to use, modify and distribute this software is granted |
10 | 10 |
* provided that this copyright notice appears in all copies. For |
11 | 11 |
* precise terms see the accompanying LICENSE file. |
12 | 12 |
* |
13 | 13 |
* This software is provided "AS IS" with no warranty of any kind, |
14 | 14 |
* express or implied, and with no claim as to its suitability for any |
15 | 15 |
* purpose. |
16 | 16 |
* |
17 | 17 |
*/ |
18 | 18 |
|
19 | 19 |
///\ingroup graph_concepts |
20 | 20 |
///\file |
21 | 21 |
///\brief The concept of graph components. |
22 | 22 |
|
23 | 23 |
|
24 |
#ifndef LEMON_CONCEPT_GRAPH_COMPONENTS_H |
|
25 |
#define LEMON_CONCEPT_GRAPH_COMPONENTS_H |
|
24 |
#ifndef LEMON_CONCEPTS_GRAPH_COMPONENTS_H |
|
25 |
#define LEMON_CONCEPTS_GRAPH_COMPONENTS_H |
|
26 | 26 |
|
27 | 27 |
#include <lemon/core.h> |
28 | 28 |
#include <lemon/concepts/maps.h> |
29 | 29 |
|
30 | 30 |
#include <lemon/bits/alteration_notifier.h> |
31 | 31 |
|
32 | 32 |
namespace lemon { |
33 | 33 |
namespace concepts { |
34 | 34 |
|
35 | 35 |
/// \brief Skeleton class for graph Node and Arc types |
36 | 36 |
/// |
37 | 37 |
/// This class describes the interface of Node and Arc (and Edge |
38 | 38 |
/// in undirected graphs) subtypes of graph types. |
39 | 39 |
/// |
40 | 40 |
/// \note This class is a template class so that we can use it to |
41 | 41 |
/// create graph skeleton classes. The reason for this is than Node |
42 | 42 |
/// and Arc types should \em not derive from the same base class. |
43 | 43 |
/// For Node you should instantiate it with character 'n' and for Arc |
44 | 44 |
/// with 'a'. |
45 | 45 |
|
46 | 46 |
#ifndef DOXYGEN |
47 | 47 |
template <char _selector = '0'> |
48 | 48 |
#endif |
49 | 49 |
class GraphItem { |
1 | 1 |
/* -*- mode: C++; indent-tabs-mode: nil; -*- |
2 | 2 |
* |
3 | 3 |
* This file is a part of LEMON, a generic C++ optimization library. |
4 | 4 |
* |
5 | 5 |
* Copyright (C) 2003-2009 |
6 | 6 |
* Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport |
7 | 7 |
* (Egervary Research Group on Combinatorial Optimization, EGRES). |
8 | 8 |
* |
9 | 9 |
* Permission to use, modify and distribute this software is granted |
10 | 10 |
* provided that this copyright notice appears in all copies. For |
11 | 11 |
* precise terms see the accompanying LICENSE file. |
12 | 12 |
* |
13 | 13 |
* This software is provided "AS IS" with no warranty of any kind, |
14 | 14 |
* express or implied, and with no claim as to its suitability for any |
15 | 15 |
* purpose. |
16 | 16 |
* |
17 | 17 |
*/ |
18 | 18 |
|
19 | 19 |
///\ingroup concept |
20 | 20 |
///\file |
21 | 21 |
///\brief The concept of heaps. |
22 | 22 |
|
23 |
#ifndef LEMON_CONCEPT_HEAP_H |
|
24 |
#define LEMON_CONCEPT_HEAP_H |
|
23 |
#ifndef LEMON_CONCEPTS_HEAP_H |
|
24 |
#define LEMON_CONCEPTS_HEAP_H |
|
25 | 25 |
|
26 | 26 |
#include <lemon/core.h> |
27 | 27 |
#include <lemon/concept_check.h> |
28 | 28 |
|
29 | 29 |
namespace lemon { |
30 | 30 |
|
31 | 31 |
namespace concepts { |
32 | 32 |
|
33 | 33 |
/// \addtogroup concept |
34 | 34 |
/// @{ |
35 | 35 |
|
36 | 36 |
/// \brief The heap concept. |
37 | 37 |
/// |
38 | 38 |
/// Concept class describing the main interface of heaps. |
39 | 39 |
template <typename Priority, typename ItemIntMap> |
40 | 40 |
class Heap { |
41 | 41 |
public: |
42 | 42 |
|
43 | 43 |
/// Type of the items stored in the heap. |
44 | 44 |
typedef typename ItemIntMap::Key Item; |
45 | 45 |
|
46 | 46 |
/// Type of the priorities. |
47 | 47 |
typedef Priority Prio; |
48 | 48 |
|
... | ... |
@@ -222,25 +222,25 @@ |
222 | 222 |
heap.set(own_item, own_prio); |
223 | 223 |
heap.decrease(own_item, own_prio); |
224 | 224 |
heap.increase(own_item, own_prio); |
225 | 225 |
|
226 | 226 |
heap.erase(item); |
227 | 227 |
heap.erase(own_item); |
228 | 228 |
heap.clear(); |
229 | 229 |
|
230 | 230 |
own_state = heap.state(own_item); |
231 | 231 |
heap.state(own_item, own_state); |
232 | 232 |
|
233 | 233 |
own_state = _Heap::PRE_HEAP; |
234 | 234 |
own_state = _Heap::IN_HEAP; |
235 | 235 |
own_state = _Heap::POST_HEAP; |
236 | 236 |
} |
237 | 237 |
|
238 | 238 |
_Heap& heap; |
239 | 239 |
ItemIntMap& map; |
240 | 240 |
}; |
241 | 241 |
}; |
242 | 242 |
|
243 | 243 |
/// @} |
244 | 244 |
} // namespace lemon |
245 | 245 |
} |
246 |
#endif |
|
246 |
#endif |
1 | 1 |
/* -*- mode: C++; indent-tabs-mode: nil; -*- |
2 | 2 |
* |
3 | 3 |
* This file is a part of LEMON, a generic C++ optimization library. |
4 | 4 |
* |
5 | 5 |
* Copyright (C) 2003-2009 |
6 | 6 |
* Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport |
7 | 7 |
* (Egervary Research Group on Combinatorial Optimization, EGRES). |
8 | 8 |
* |
9 | 9 |
* Permission to use, modify and distribute this software is granted |
10 | 10 |
* provided that this copyright notice appears in all copies. For |
11 | 11 |
* precise terms see the accompanying LICENSE file. |
12 | 12 |
* |
13 | 13 |
* This software is provided "AS IS" with no warranty of any kind, |
14 | 14 |
* express or implied, and with no claim as to its suitability for any |
15 | 15 |
* purpose. |
16 | 16 |
* |
17 | 17 |
*/ |
18 | 18 |
|
19 |
#ifndef LEMON_CONCEPT_MAPS_H |
|
20 |
#define LEMON_CONCEPT_MAPS_H |
|
19 |
#ifndef LEMON_CONCEPTS_MAPS_H |
|
20 |
#define LEMON_CONCEPTS_MAPS_H |
|
21 | 21 |
|
22 | 22 |
#include <lemon/core.h> |
23 | 23 |
#include <lemon/concept_check.h> |
24 | 24 |
|
25 | 25 |
///\ingroup map_concepts |
26 | 26 |
///\file |
27 | 27 |
///\brief The concept of maps. |
28 | 28 |
|
29 | 29 |
namespace lemon { |
30 | 30 |
|
31 | 31 |
namespace concepts { |
32 | 32 |
|
33 | 33 |
/// \addtogroup map_concepts |
34 | 34 |
/// @{ |
35 | 35 |
|
36 | 36 |
/// Readable map concept |
37 | 37 |
|
38 | 38 |
/// Readable map concept. |
39 | 39 |
/// |
40 | 40 |
template<typename K, typename T> |
41 | 41 |
class ReadMap |
42 | 42 |
{ |
43 | 43 |
public: |
44 | 44 |
/// The key type of the map. |
... | ... |
@@ -192,25 +192,25 @@ |
192 | 192 |
m[own_key] = own_val; |
193 | 193 |
m[own_key] = own_ref; |
194 | 194 |
m[own_key] = own_cref; |
195 | 195 |
m[key] = m[own_key]; |
196 | 196 |
m[own_key] = m[key]; |
197 | 197 |
} |
198 | 198 |
const Key& key; |
199 | 199 |
Value& val; |
200 | 200 |
Reference ref; |
201 | 201 |
ConstReference cref; |
202 | 202 |
const typename _ReferenceMap::Key& own_key; |
203 | 203 |
typename _ReferenceMap::Value& own_val; |
204 | 204 |
typename _ReferenceMap::Reference own_ref; |
205 | 205 |
typename _ReferenceMap::ConstReference own_cref; |
206 | 206 |
_ReferenceMap& m; |
207 | 207 |
}; |
208 | 208 |
}; |
209 | 209 |
|
210 | 210 |
// @} |
211 | 211 |
|
212 | 212 |
} //namespace concepts |
213 | 213 |
|
214 | 214 |
} //namespace lemon |
215 | 215 |
|
216 |
#endif |
|
216 |
#endif |
1 | 1 |
/* -*- mode: C++; indent-tabs-mode: nil; -*- |
2 | 2 |
* |
3 | 3 |
* This file is a part of LEMON, a generic C++ optimization library. |
4 | 4 |
* |
5 | 5 |
* Copyright (C) 2003-2009 |
6 | 6 |
* Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport |
7 | 7 |
* (Egervary Research Group on Combinatorial Optimization, EGRES). |
8 | 8 |
* |
9 | 9 |
* Permission to use, modify and distribute this software is granted |
10 | 10 |
* provided that this copyright notice appears in all copies. For |
11 | 11 |
* precise terms see the accompanying LICENSE file. |
12 | 12 |
* |
13 | 13 |
* This software is provided "AS IS" with no warranty of any kind, |
14 | 14 |
* express or implied, and with no claim as to its suitability for any |
15 | 15 |
* purpose. |
16 | 16 |
* |
17 | 17 |
*/ |
18 | 18 |
|
19 | 19 |
///\ingroup concept |
20 | 20 |
///\file |
21 | 21 |
///\brief Classes for representing paths in digraphs. |
22 | 22 |
/// |
23 | 23 |
|
24 |
#ifndef LEMON_CONCEPT_PATH_H |
|
25 |
#define LEMON_CONCEPT_PATH_H |
|
24 |
#ifndef LEMON_CONCEPTS_PATH_H |
|
25 |
#define LEMON_CONCEPTS_PATH_H |
|
26 | 26 |
|
27 | 27 |
#include <lemon/core.h> |
28 | 28 |
#include <lemon/concept_check.h> |
29 | 29 |
|
30 | 30 |
namespace lemon { |
31 | 31 |
namespace concepts { |
32 | 32 |
|
33 | 33 |
/// \addtogroup concept |
34 | 34 |
/// @{ |
35 | 35 |
|
36 | 36 |
/// \brief A skeleton structure for representing directed paths in |
37 | 37 |
/// a digraph. |
38 | 38 |
/// |
39 | 39 |
/// A skeleton structure for representing directed paths in a |
40 | 40 |
/// digraph. |
41 | 41 |
/// \tparam _Digraph The digraph type in which the path is. |
42 | 42 |
/// |
43 | 43 |
/// In a sense, the path can be treated as a list of arcs. The |
44 | 44 |
/// lemon path type stores just this list. As a consequence it |
45 | 45 |
/// cannot enumerate the nodes in the path and the zero length |
46 | 46 |
/// paths cannot store the source. |
47 | 47 |
/// |
48 | 48 |
template <typename _Digraph> |
49 | 49 |
class Path { |
... | ... |
@@ -284,25 +284,25 @@ |
284 | 284 |
bool operator==(const RevArcIt&) const {return true;} |
285 | 285 |
/// Comparison operator |
286 | 286 |
bool operator!=(const RevArcIt&) const {return true;} |
287 | 287 |
/// Comparison operator |
288 | 288 |
bool operator<(const RevArcIt&) const {return false;} |
289 | 289 |
|
290 | 290 |
}; |
291 | 291 |
|
292 | 292 |
template <typename _Path> |
293 | 293 |
struct Constraints { |
294 | 294 |
void constraints() { |
295 | 295 |
function_requires<_path_bits:: |
296 | 296 |
PathDumperConstraints<Digraph, _Path> >(); |
297 | 297 |
} |
298 | 298 |
}; |
299 | 299 |
|
300 | 300 |
}; |
301 | 301 |
|
302 | 302 |
|
303 | 303 |
///@} |
304 | 304 |
} |
305 | 305 |
|
306 | 306 |
} // namespace lemon |
307 | 307 |
|
308 |
#endif |
|
308 |
#endif |
1 | 1 |
/* -*- mode: C++; indent-tabs-mode: nil; -*- |
2 | 2 |
* |
3 | 3 |
* This file is a part of LEMON, a generic C++ optimization library. |
4 | 4 |
* |
5 | 5 |
* Copyright (C) 2003-2008 |
6 | 6 |
* Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport |
7 | 7 |
* (Egervary Research Group on Combinatorial Optimization, EGRES). |
8 | 8 |
* |
9 | 9 |
* Permission to use, modify and distribute this software is granted |
10 | 10 |
* provided that this copyright notice appears in all copies. For |
11 | 11 |
* precise terms see the accompanying LICENSE file. |
12 | 12 |
* |
13 | 13 |
* This software is provided "AS IS" with no warranty of any kind, |
14 | 14 |
* express or implied, and with no claim as to its suitability for any |
15 | 15 |
* purpose. |
16 | 16 |
* |
17 | 17 |
*/ |
18 | 18 |
|
19 |
#ifndef LEMON_LP_SKELETON |
|
20 |
#define LEMON_LP_SKELETON |
|
19 |
#ifndef LEMON_LP_SKELETON_H |
|
20 |
#define LEMON_LP_SKELETON_H |
|
21 | 21 |
|
22 | 22 |
#include <lemon/lp_base.h> |
23 | 23 |
|
24 | 24 |
///\file |
25 | 25 |
///\brief A skeleton file to implement LP solver interfaces |
26 | 26 |
namespace lemon { |
27 | 27 |
|
28 | 28 |
///A skeleton class to implement LP solver interfaces |
29 | 29 |
class SkeletonSolverBase : public virtual LpBase { |
30 | 30 |
int col_num,row_num; |
31 | 31 |
|
32 | 32 |
protected: |
33 | 33 |
|
34 | 34 |
SkeletonSolverBase() |
35 | 35 |
: col_num(-1), row_num(-1) {} |
36 | 36 |
|
37 | 37 |
/// \e |
38 | 38 |
virtual int _addCol(); |
39 | 39 |
/// \e |
40 | 40 |
virtual int _addRow(); |
41 | 41 |
/// \e |
42 | 42 |
virtual void _eraseCol(int i); |
43 | 43 |
/// \e |
44 | 44 |
virtual void _eraseRow(int i); |
... | ... |
@@ -205,25 +205,25 @@ |
205 | 205 |
///\e |
206 | 206 |
|
207 | 207 |
///\bug Wrong interface |
208 | 208 |
/// |
209 | 209 |
virtual Value _getSolValue() const; |
210 | 210 |
|
211 | 211 |
///\e |
212 | 212 |
|
213 | 213 |
///\bug Wrong interface |
214 | 214 |
/// |
215 | 215 |
virtual ProblemType _getType() const; |
216 | 216 |
|
217 | 217 |
///\e |
218 | 218 |
virtual MipSkeleton* _newSolver() const; |
219 | 219 |
|
220 | 220 |
///\e |
221 | 221 |
virtual MipSkeleton* _cloneSolver() const; |
222 | 222 |
///\e |
223 | 223 |
virtual const char* _solverName() const; |
224 | 224 |
|
225 | 225 |
}; |
226 | 226 |
|
227 | 227 |
} //namespace lemon |
228 | 228 |
|
229 |
#endif |
|
229 |
#endif |
0 comments (0 inline)