Clp 1.17.5
Loading...
Searching...
No Matches
AbcDualRowDantzig.hpp
Go to the documentation of this file.
1/* $Id: AbcDualRowDantzig.hpp 2385 2019-01-06 19:43:06Z unxusr $ */
2// Copyright (C) 2002, International Business Machines
3// Corporation and others, Copyright (C) 2012, FasterCoin. All Rights Reserved.
4// This code is licensed under the terms of the Eclipse Public License (EPL).
5
6#ifndef AbcDualRowDantzig_H
7#define AbcDualRowDantzig_H
8
9#include "AbcDualRowPivot.hpp"
10
11//#############################################################################
12
20
21public:
23
24
26 virtual int pivotRow();
27
30 virtual double updateWeights(CoinIndexedVector &input, CoinIndexedVector &updatedColumn);
31 virtual double updateWeights1(CoinIndexedVector &input, CoinIndexedVector &updateColumn);
32 virtual void updateWeightsOnly(CoinIndexedVector & /*input*/) {};
34 virtual void updateWeights2(CoinIndexedVector &input, CoinIndexedVector & /*updateColumn*/) { input.clear(); };
39 virtual void updatePrimalSolution(CoinIndexedVector &input,
40 double theta);
51 virtual void saveWeights(AbcSimplex *model, int mode);
55
57
58
60
63
66
69
71 virtual AbcDualRowPivot *clone(bool copyData = true) const;
72
74
75 //---------------------------------------------------------------------------
76
77private:
80 CoinIndexedVector *infeasible_;
82};
83
84#endif
85
86/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
87*/
Dual Row Pivot Dantzig Algorithm Class.
CoinIndexedVector * infeasible_
virtual double updateWeights(CoinIndexedVector &input, CoinIndexedVector &updatedColumn)
Updates weights and returns pivot alpha.
AbcDualRowDantzig & operator=(const AbcDualRowDantzig &rhs)
Assignment operator.
virtual ~AbcDualRowDantzig()
Destructor.
virtual void saveWeights(AbcSimplex *model, int mode)
Saves any weights round factorization as pivot rows may change Will be empty unless steepest edge (wi...
virtual void updateWeightsOnly(CoinIndexedVector &)
AbcDualRowDantzig(const AbcDualRowDantzig &)
Copy constructor.
virtual AbcDualRowPivot * clone(bool copyData=true) const
Clone.
virtual void updateWeights2(CoinIndexedVector &input, CoinIndexedVector &)
Actually updates weights.
virtual double updateWeights1(CoinIndexedVector &input, CoinIndexedVector &updateColumn)
Does most of work for weights and returns pivot alpha.
virtual void recomputeInfeasibilities()
Recompute infeasibilities.
AbcDualRowDantzig()
Default Constructor.
virtual void updatePrimalSolution(CoinIndexedVector &input, double theta)
Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Computes ch...
virtual int pivotRow()
Returns pivot row, -1 if none.
Dual Row Pivot Abstract Base Class.
AbcSimplex * model()
Returns model.