lemon/lp_base.cc
author kpeter
Mon, 18 Feb 2008 03:32:06 +0000
changeset 2575 e866e288cba6
parent 2391 14a343be7a5a
permissions -rw-r--r--
Major improvements in NetworkSimplex.

Main changes:
- Use -potenital[] instead of potential[] to conform to the usual
terminology.
- Use function parameter instead of #define commands to select pivot rule.
- Use much faster implementation for the candidate list pivot rule.
It is about 5-20 times faster now.
- Add a new pivot rule called "Limited Search" that is a modified
version of "Block Search". It is about 25 percent faster on rather
sparse graphs.
- By default "Limited Search" is used for sparse graphs and
"Block Search" is used otherwise. This combined method is the most
efficient on every input class.
- Change the name of private members to start with "_".
- Change the name of function parameters not to start with "_".
- Remove unnecessary documentation for private members.
- Many doc improvements.
     1 /* -*- C++ -*-
     2  *
     3  * This file is a part of LEMON, a generic C++ optimization library
     4  *
     5  * Copyright (C) 2003-2008
     6  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
     7  * (Egervary Research Group on Combinatorial Optimization, EGRES).
     8  *
     9  * Permission to use, modify and distribute this software is granted
    10  * provided that this copyright notice appears in all copies. For
    11  * precise terms see the accompanying LICENSE file.
    12  *
    13  * This software is provided "AS IS" with no warranty of any kind,
    14  * express or implied, and with no claim as to its suitability for any
    15  * purpose.
    16  *
    17  */
    18 
    19 ///\file
    20 ///\brief The implementation of the LP solver interface.
    21 
    22 #include <lemon/lp_base.h>
    23 namespace lemon {
    24   
    25   const LpSolverBase::Value
    26   LpSolverBase::INF = std::numeric_limits<Value>::infinity();
    27   const LpSolverBase::Value
    28   LpSolverBase::NaN = std::numeric_limits<Value>::quiet_NaN();
    29 
    30 //   const LpSolverBase::Constr::Value
    31 //   LpSolverBase::Constr::INF = std::numeric_limits<Value>::infinity();
    32 //   const LpSolverBase::Constr::Value
    33 //   LpSolverBase::Constr::NaN = std::numeric_limits<Value>::quiet_NaN();
    34   
    35 } //namespace lemon