Clp 1.16.9
Loading...
Searching...
No Matches
ClpSimplexNonlinear.hpp
Go to the documentation of this file.
1/* $Id: ClpSimplexNonlinear.hpp 2025 2014-03-19 12:49:55Z forrest $ */
2// Copyright (C) 2004, International Business Machines
3// Corporation and others. All Rights Reserved.
4// This code is licensed under the terms of the Eclipse Public License (EPL).
5/*
6 Authors
7
8 John Forrest
9
10 */
11#ifndef ClpSimplexNonlinear_H
12#define ClpSimplexNonlinear_H
13
14class ClpNonlinearInfo;
16class ClpConstraint;
17
18#include "ClpSimplexPrimal.hpp"
19
29
30public:
31
39 int primal();
44 int primalSLP(int numberPasses, double deltaTolerance,
45 int otherOptions=0);
47 int primalDualCuts(char * rowsIn, int startUp, int algorithm);
53 int primalSLP(int numberConstraints, ClpConstraint ** constraints,
54 int numberPasses, double deltaTolerance);
55
61 void directionVector (CoinIndexedVector * longArray,
62 CoinIndexedVector * spare1, CoinIndexedVector * spare2,
63 int mode,
64 double & normFlagged, double & normUnflagged,
65 int & numberNonBasic);
67 int whileIterating (int & pivotMode);
80 int pivotColumn(CoinIndexedVector * longArray,
81 CoinIndexedVector * rowArray,
82 CoinIndexedVector * columnArray,
83 CoinIndexedVector * spare,
84 int & pivotMode,
85 double & solutionError,
86 double * array1);
96 void statusOfProblemInPrimal(int & lastCleaned, int type,
98 bool doFactorization,
99 double & bestObjectiveWhenFlagged);
114
115};
116#endif
117
Constraint Abstract Base Class.
Quadratic Objective Class.
This solves non-linear LPs using the primal simplex method.
void statusOfProblemInPrimal(int &lastCleaned, int type, ClpSimplexProgress *progress, bool doFactorization, double &bestObjectiveWhenFlagged)
Refactorizes if necessary Checks if finished.
int primalDualCuts(char *rowsIn, int startUp, int algorithm)
May use a cut approach for solving any LP.
int primalSLP(int numberPasses, double deltaTolerance, int otherOptions=0)
Primal algorithm for quadratic Using a semi-trust region approach as for pooling problem This is in b...
int pivotColumn(CoinIndexedVector *longArray, CoinIndexedVector *rowArray, CoinIndexedVector *columnArray, CoinIndexedVector *spare, int &pivotMode, double &solutionError, double *array1)
longArray has direction pivotMode - 0 - use all dual infeasible variables 1 - largest dj while >= 10 ...
int primal()
Primal algorithms for reduced gradient At present we have two algorithms:
int whileIterating(int &pivotMode)
Main part.
int pivotNonlinearResult()
Do last half of an iteration.
void directionVector(CoinIndexedVector *longArray, CoinIndexedVector *spare1, CoinIndexedVector *spare2, int mode, double &normFlagged, double &normUnflagged, int &numberNonBasic)
Creates direction vector.
int primalSLP(int numberConstraints, ClpConstraint **constraints, int numberPasses, double deltaTolerance)
Primal algorithm for nonlinear constraints Using a semi-trust region approach as for pooling problem ...
This solves LPs using the primal simplex method.
For saving extra information to see if looping.
Definition: ClpSolve.hpp:261
int algorithm() const
Current (or last) algorithm.
Definition: ClpSimplex.hpp:647
CoinIndexedVector * rowArray(int index) const
Useful row length arrays (0,1,2,3,4,5)
Definition: ClpSimplex.hpp:727
CoinIndexedVector * columnArray(int index) const
Useful column length arrays (0,1,2,3,4,5)
Definition: ClpSimplex.hpp:731
ClpSimplexProgress * progress()
For dealing with all issues of cycling etc.