Scippy

SoPlex

Sequential object-oriented simPlex

spxsteepexpr.h
Go to the documentation of this file.
1/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2/* */
3/* This file is part of the class library */
4/* SoPlex --- the Sequential object-oriented simPlex. */
5/* */
6/* Copyright (c) 1996-2024 Zuse Institute Berlin (ZIB) */
7/* */
8/* Licensed under the Apache License, Version 2.0 (the "License"); */
9/* you may not use this file except in compliance with the License. */
10/* You may obtain a copy of the License at */
11/* */
12/* http://www.apache.org/licenses/LICENSE-2.0 */
13/* */
14/* Unless required by applicable law or agreed to in writing, software */
15/* distributed under the License is distributed on an "AS IS" BASIS, */
16/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
17/* See the License for the specific language governing permissions and */
18/* limitations under the License. */
19/* */
20/* You should have received a copy of the Apache-2.0 license */
21/* along with SoPlex; see the file LICENSE. If not email to soplex@zib.de. */
22/* */
23/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
24
25
26/**@file spxsteepexpr.h
27 * @brief Steepest edge pricer with exact initialization of weights.
28 */
29#ifndef _SPXSTEEPEXPR_H_
30#define _SPXSTEEPEXPR_H_
31
32
33#include <assert.h>
34
35#include "soplex/spxdefines.h"
36#include "soplex/spxsteeppr.h"
37
38namespace soplex
39{
40
41/**@brief Steepest edge pricer.
42 @ingroup Algo
43
44 Class SPxSteepExPR implements a steepest edge pricer to be used with
45 SoPlex. Exact initialization of weights is used.
46
47 See SPxPricer for a class documentation.
48*/
49template <class R>
50class SPxSteepExPR : public SPxSteepPR<R>
51{
52
53public:
54
55 //-------------------------------------
56 /**@name Construction / destruction */
57 ///@{
58 ///
60 : SPxSteepPR<R>("SteepEx", SPxSteepPR<R>::EXACT)
61 {
62 assert(this->isConsistent());
63 }
64 /// copy constructor
66 : SPxSteepPR<R>(old)
67 {
68 assert(this->isConsistent());
69 }
70 /// assignment operator
72 {
73 if(this != &rhs)
74 {
76
77 assert(this->isConsistent());
78 }
79
80 return *this;
81 }
82 /// destructor
83 virtual ~SPxSteepExPR()
84 {}
85 /// clone function for polymorphism
86 inline virtual SPxSteepPR<R>* clone() const
87 {
88 return new SPxSteepExPR(*this);
89 }
90 ///@}
91};
92
93} // namespace soplex
94
95#include "spxsteeppr.hpp"
96
97#endif // _SPXSTEEPPR_H_
Steepest edge pricer.
Definition: spxsteepexpr.h:51
virtual ~SPxSteepExPR()
destructor
Definition: spxsteepexpr.h:83
SPxSteepExPR(const SPxSteepExPR &old)
copy constructor
Definition: spxsteepexpr.h:65
SPxSteepExPR & operator=(const SPxSteepExPR &rhs)
assignment operator
Definition: spxsteepexpr.h:71
virtual SPxSteepPR< R > * clone() const
clone function for polymorphism
Definition: spxsteepexpr.h:86
Steepest edge pricer.
Definition: spxsteeppr.h:52
@ EXACT
starting with exactly computed values
Definition: spxsteeppr.h:65
SPxSteepPR & operator=(const SPxSteepPR &rhs)
assignment operator
Definition: spxsteeppr.h:152
virtual bool isConsistent() const
Everything should be within this namespace.
Debugging, floating point type and parameter definitions.
Steepest edge pricer.