summaryrefslogtreecommitdiff
path: root/newstructure/thirdparty/linux/include/coin/CbcFixVariable.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'newstructure/thirdparty/linux/include/coin/CbcFixVariable.hpp')
-rw-r--r--newstructure/thirdparty/linux/include/coin/CbcFixVariable.hpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/newstructure/thirdparty/linux/include/coin/CbcFixVariable.hpp b/newstructure/thirdparty/linux/include/coin/CbcFixVariable.hpp
new file mode 100644
index 0000000..aa33509
--- /dev/null
+++ b/newstructure/thirdparty/linux/include/coin/CbcFixVariable.hpp
@@ -0,0 +1,67 @@
+// $Id: CbcFixVariable.hpp 1899 2013-04-09 18:12:08Z stefan $
+// Copyright (C) 2002, International Business Machines
+// Corporation and others. All Rights Reserved.
+// This code is licensed under the terms of the Eclipse Public License (EPL).
+
+// Edwin 11/10/2009-- carved out of CbcBranchActual
+
+#ifndef CbcFixVariable_H
+#define CbcFixVariable_H
+
+#include "CbcBranchBase.hpp"
+/** Class for consequent bounds.
+ When a variable is branched on it normally interacts with other variables by
+ means of equations. There are cases where we want to step outside LP and do something
+ more directly e.g. fix bounds. This class is for that.
+
+ A state of -9999 means at LB, +9999 means at UB,
+ others mean if fixed to that value.
+
+ */
+
+class CbcFixVariable : public CbcConsequence {
+
+public:
+
+ // Default Constructor
+ CbcFixVariable ();
+
+ // One useful Constructor
+ CbcFixVariable (int numberStates, const int * states, const int * numberNewLower, const int ** newLowerValue,
+ const int ** lowerColumn,
+ const int * numberNewUpper, const int ** newUpperValue,
+ const int ** upperColumn);
+
+ // Copy constructor
+ CbcFixVariable ( const CbcFixVariable & rhs);
+
+ // Assignment operator
+ CbcFixVariable & operator=( const CbcFixVariable & rhs);
+
+ /// Clone
+ virtual CbcConsequence * clone() const;
+
+ /// Destructor
+ virtual ~CbcFixVariable ();
+
+ /** Apply to an LP solver. Action depends on state
+ */
+ virtual void applyToSolver(OsiSolverInterface * solver, int state) const;
+
+protected:
+ /// Number of states
+ int numberStates_;
+ /// Values of integers for various states
+ int * states_;
+ /// Start of information for each state (setting new lower)
+ int * startLower_;
+ /// Start of information for each state (setting new upper)
+ int * startUpper_;
+ /// For each variable new bounds
+ double * newBound_;
+ /// Variable
+ int * variable_;
+};
+
+#endif
+