Initializing help system before first use

# XPRSprob

- java.lang.Object
- - com.dashoptimization.XPRSobject
  - - com.dashoptimization.XPRSprob

- All Implemented Interfaces:
    `java.lang.AutoCloseable`
  Direct Known Subclasses:
    `XpressProblem`

      public class XPRSprob
      extends XPRSobject

  Represents a problem and an optimizer instance.

- - ### Nested Class Summary

    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `XPRSprob.AbstractUserFunction` | Base class for user functions.
    `static class` | `XPRSprob.AttributeInfo` | Attribute descriptor for `getAttribInfo(String)`.
    `class` | `XPRSprob.Attributes` | Class to access attributes.
    `static class` | `XPRSprob.BasisValue` | Return value for `getBasisVal(int,int)`.
    `static class` | `XPRSprob.CannotPerformOperationException` | Exception raised when an operation is attempted for which the model cannot be in a presolved state or in a callback.
    `static class` | `XPRSprob.CannotReferenceVariablesException` | Exception raised when a constraint references `Variable` instances while it should only reference indices.
    `static class` | `XPRSprob.ControlInfo` | Control descriptor for `getControlInfo(String)`.
    `class` | `XPRSprob.Controls` | Class to access controls.
    `static class` | `XPRSprob.GeneralConstraintInfo` | Return value for `getGenCons(int, int)`.
    `static class` | `XPRSprob.GlobalInfo` | Deprecated. Deprecated since 40.01, use `MIPEntityInfo` instead.
    `static class` | `XPRSprob.IISData` | Return value for `getIISData(int)`;
    `static class` | `XPRSprob.IISStatusInfo` | Return value for `IISStatus()`.
    `static class` | `XPRSprob.InfeasInfo` | Return value for `getInfeas()` and `getScaledInfeas()`.
    `static class` | `XPRSprob.InvalidStateException` | Exception that is raised if the problem is not in the correct state.
    `class` | `XPRSprob.MapDeltaFunction` | An `R -> R` function that also provides the derivative.
    `static interface` | `XPRSprob.MapDeltaFunctor` |
    `class` | `XPRSprob.MapFunction` | An `R -> R` function.
    `static interface` | `XPRSprob.MapFunctor` |
    `static class` | `XPRSprob.MatrixInfo` | Return value for `getCols(int, int)`, `getRows(int, int)`, `getMQObj(int, int)`.
    `static class` | `XPRSprob.MatrixTriplets` | Matrix specified by a list of triplets.
    `class` | `XPRSprob.MIPEntityInfo` | Return value for `getMIPEntities()`, `getDiscreteCols()`, `getSetDefinitions()`.
    `class` | `XPRSprob.MultiMapDeltaFunction` | An `R^n -> R^m` function that also provides partial derivatives.
    `static interface` | `XPRSprob.MultiMapDeltaFunctor` |
    `class` | `XPRSprob.MultiMapFunction` | An `R^n -> R^m` function.
    `static interface` | `XPRSprob.MultiMapFunctor` |
    `static class` | `XPRSprob.PWLInfo` | Return value for `getPwlCons(int, int)`.
    `static class` | `XPRSprob.RowInfo` | Sparse row information.
    `static class` | `XPRSprob.Solution` | Solution data.
    `static class` | `XPRSprob.SolVal` | Deprecated. Deprecated since 44.00, use one of `getSolution`, `getCallbackSolution`, `getSlacks`, `getCallbackSlacks`, `getRedCosts`, `getCallbackRedCosts`, `getDuals`, `getCallbackDuals` instead.
    `static class` | `XPRSprob.StatusSolution` | Solution information that also contains a status value.
    `class` | `XPRSprob.VecMapDeltaFunction` | An `R^n -> R` function that also provides partial derivatives.
    `static interface` | `XPRSprob.VecMapDeltaFunctor` |
    `class` | `XPRSprob.VecMapFunction` | An `R^n -> R` function.
    `static interface` | `XPRSprob.VecMapFunctor` |

  - ### Field Summary

    Modifier and Type | Field | Description
    --- | --- | ---
    `static char` | `EQ` | Constraint sense for `==` constraints.
    `static char` | `GEQ` | Constraint sense for `>=` constraints.
    `static char` | `LEQ` | Constraint sense for `<=` constraints.

  - ### Constructor Summary

    Constructor | Description
    --- | ---
    `XPRSprob()` | Creates a new, empty problem.
    `XPRSprob​(java.lang.String path)` | Creates a new, empty problem.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addAfterObjectiveListener​(XPRSafterObjectiveListener listener)` | Add a listener for the AfterObjective callback.
    `void` | `addAfterObjectiveListener​(XPRSafterObjectiveListener listener, int priority)` | Add a listener for the AfterObjective callback.
    `void` | `addAfterObjectiveListener​(XPRSafterObjectiveListener listener, java.lang.Object data)` | Add a listener for the AfterObjective callback.
    `void` | `addAfterObjectiveListener​(XPRSafterObjectiveListener listener, java.lang.Object data, int priority)` | Add a listener for the AfterObjective callback.
    `void` | `addBarIterationListener​(XPRSbarIterationListener listener)` | Add a listener for the BarIteration callback.
    `void` | `addBarIterationListener​(XPRSbarIterationListener listener, int priority)` | Add a listener for the BarIteration callback.
    `void` | `addBarIterationListener​(XPRSbarIterationListener listener, java.lang.Object data)` | Add a listener for the BarIteration callback.
    `void` | `addBarIterationListener​(XPRSbarIterationListener listener, java.lang.Object data, int priority)` | Add a listener for the BarIteration callback.
    `void` | `addBarLogListener​(XPRSbarLogListener listener)` | Add a listener for the BarLog callback.
    `void` | `addBarLogListener​(XPRSbarLogListener listener, int priority)` | Add a listener for the BarLog callback.
    `void` | `addBarLogListener​(XPRSbarLogListener listener, java.lang.Object data)` | Add a listener for the BarLog callback.
    `void` | `addBarLogListener​(XPRSbarLogListener listener, java.lang.Object data, int priority)` | Add a listener for the BarLog callback.
    `void` | `addBeforeObjectiveListener​(XPRSbeforeObjectiveListener listener)` | Add a listener for the BeforeObjective callback.
    `void` | `addBeforeObjectiveListener​(XPRSbeforeObjectiveListener listener, int priority)` | Add a listener for the BeforeObjective callback.
    `void` | `addBeforeObjectiveListener​(XPRSbeforeObjectiveListener listener, java.lang.Object data)` | Add a listener for the BeforeObjective callback.
    `void` | `addBeforeObjectiveListener​(XPRSbeforeObjectiveListener listener, java.lang.Object data, int priority)` | Add a listener for the BeforeObjective callback.
    `void` | `addChangeBranchObjectListener​(XPRSchangeBranchObjectListener listener)` | Add a listener for the ChangeBranchObject callback.
    `void` | `addChangeBranchObjectListener​(XPRSchangeBranchObjectListener listener, int priority)` | Add a listener for the ChangeBranchObject callback.
    `void` | `addChangeBranchObjectListener​(XPRSchangeBranchObjectListener listener, java.lang.Object data)` | Add a listener for the ChangeBranchObject callback.
    `void` | `addChangeBranchObjectListener​(XPRSchangeBranchObjectListener listener, java.lang.Object data, int priority)` | Add a listener for the ChangeBranchObject callback.
    `void` | `addCheckTimeListener​(XPRScheckTimeListener listener)` | Add a listener for the CheckTime callback.
    `void` | `addCheckTimeListener​(XPRScheckTimeListener listener, int priority)` | Add a listener for the CheckTime callback.
    `void` | `addCheckTimeListener​(XPRScheckTimeListener listener, java.lang.Object data)` | Add a listener for the CheckTime callback.
    `void` | `addCheckTimeListener​(XPRScheckTimeListener listener, java.lang.Object data, int priority)` | Add a listener for the CheckTime callback.
    `int` | `addCol​(double obj, double lb, double ub)` | Deprecated. since 45.00, use `addColumn()` instead
    `int` | `addCol​(double obj, double lb, double ub, char type)` | Deprecated. since 45.00, use `addColumn()` instead
    `int` | `addCol​(double obj, double lb, double ub, char type, int[] rowind, double[] rowval)` | Deprecated. since 45.00, use `addColumn()` instead
    `int` | `addCol​(double obj, double lb, double ub, char type, int[] rowind, double[] rowval, java.lang.String name)` | Deprecated. since 45.00, use `addColumn()` instead
    `int` | `addCol​(double obj, double lb, double ub, char type, java.lang.String name)` | Deprecated. since 45.00, use `addColumn()` instead
    `int` | `addCol​(double obj, double lb, double ub, java.lang.String name)` | Deprecated. since 45.00, use `addColumn()` instead
    `void` | `addCols​(int ncols, int ncoefs, double[] objcoef, int[] start, int[] rowind, double[] rowcoef, double[] lb, double[] ub)` | Adds columns to the optimizer matrix.
    `void` | `addCols​(int ncols, long ncoefs, double[] objcoef, long[] start, int[] rowind, double[] rowcoef, double[] lb, double[] ub)` | Adds columns to the optimizer matrix.
    `int` | `addColumn​(double lb, double ub, ColumnType type, java.lang.String name)` | Add a single column to this problem.
    `VariableBuilder.ColumnArrayBuilder` | `addColumns​(int dim)` | Create an 1-dimensional array of columns.
    `VariableBuilder.ColumnArray2Builder` | `addColumns​(int dim1, int dim2)` | Create an 2-dimensional array of columns.
    `VariableBuilder.ColumnArray3Builder` | `addColumns​(int dim1, int dim2, int dim3)` | Create an 3-dimensional array of columns.
    `VariableBuilder.ColumnArray4Builder` | `addColumns​(int dim1, int dim2, int dim3, int dim4)` | Create an 4-dimensional array of columns.
    `VariableBuilder.ColumnArray5Builder` | `addColumns​(int dim1, int dim2, int dim3, int dim4, int dim5)` | Create an 5-dimensional array of columns.
    `<K1> VariableBuilder.ColumnMapBuilder<K1>` | `addColumns​(java.lang.Iterable<K1> iterable1)` | Create an 1-dimensional map of columns.
    `<K1,​K2> VariableBuilder.ColumnMap2Builder<K1,​K2>` | `addColumns​(java.lang.Iterable<K1> iterable1, java.lang.Iterable<K2> iterable2)` | Create an 2-dimensional map of columns.
    `<K1,​K2,​K3> VariableBuilder.ColumnMap3Builder<K1,​K2,​K3>` | `addColumns​(java.lang.Iterable<K1> iterable1, java.lang.Iterable<K2> iterable2, java.lang.Iterable<K3> iterable3)` | Create an 3-dimensional map of columns.
    `<K1,​K2,​K3,​K4> VariableBuilder.ColumnMap4Builder<K1,​K2,​K3,​K4>` | `addColumns​(java.lang.Iterable<K1> iterable1, java.lang.Iterable<K2> iterable2, java.lang.Iterable<K3> iterable3, java.lang.Iterable<K4> iterable4)` | Create an 4-dimensional map of columns.
    `<K1,​K2,​K3,​K4,​K5> VariableBuilder.ColumnMap5Builder<K1,​K2,​K3,​K4,​K5>` | `addColumns​(java.lang.Iterable<K1> iterable1, java.lang.Iterable<K2> iterable2, java.lang.Iterable<K3> iterable3, java.lang.Iterable<K4> iterable4, java.lang.Iterable<K5> iterable5)` | Create an 5-dimensional map of columns.
    `<K1> VariableBuilder.ColumnMapBuilder<K1>` | `addColumns​(java.util.stream.Stream<K1> strm)` | Create an 1-dimensional map of columns.
    `<K1> VariableBuilder.ColumnMapBuilder<K1>` | `addColumns​(K1[] arr1)` | Create an 1-dimensional map of columns.
    `<K1,​K2> VariableBuilder.ColumnMap2Builder<K1,​K2>` | `addColumns​(K1[] arr1, K2[] arr2)` | Create an 2-dimensional map of columns.
    `<K1,​K2,​K3> VariableBuilder.ColumnMap3Builder<K1,​K2,​K3>` | `addColumns​(K1[] arr1, K2[] arr2, K3[] arr3)` | Create an 3-dimensional map of columns.
    `<K1,​K2,​K3,​K4> VariableBuilder.ColumnMap4Builder<K1,​K2,​K3,​K4>` | `addColumns​(K1[] arr1, K2[] arr2, K3[] arr3, K4[] arr4)` | Create an 4-dimensional map of columns.
    `<K1,​K2,​K3,​K4,​K5> VariableBuilder.ColumnMap5Builder<K1,​K2,​K3,​K4,​K5>` | `addColumns​(K1[] arr1, K2[] arr2, K3[] arr3, K4[] arr4, K5[] arr5)` | Create an 5-dimensional map of columns.
    `void` | `addComputeRestartListener​(XPRScomputeRestartListener listener)` | Add a listener for the ComputeRestart callback.
    `void` | `addComputeRestartListener​(XPRScomputeRestartListener listener, int priority)` | Add a listener for the ComputeRestart callback.
    `void` | `addComputeRestartListener​(XPRScomputeRestartListener listener, java.lang.Object data)` | Add a listener for the ComputeRestart callback.
    `void` | `addComputeRestartListener​(XPRScomputeRestartListener listener, java.lang.Object data, int priority)` | Add a listener for the ComputeRestart callback.
    `void` | `addCut​(int cuttype, int[] colind, double[] colval, char rowtype, double rhs)` | Add a single cut to the problem.
    `void` | `addCut​(int cuttype, XPRSprob.RowInfo cut)` | Add a single cut to the problem.
    `void` | `addCutLogListener​(XPRScutLogListener listener)` | Add a listener for the CutLog callback.
    `void` | `addCutLogListener​(XPRScutLogListener listener, int priority)` | Add a listener for the CutLog callback.
    `void` | `addCutLogListener​(XPRScutLogListener listener, java.lang.Object data)` | Add a listener for the CutLog callback.
    `void` | `addCutLogListener​(XPRScutLogListener listener, java.lang.Object data, int priority)` | Add a listener for the CutLog callback.
    `void` | `addCutRoundListener​(XPRScutRoundListener listener)` | Add a listener for the CutRound callback.
    `void` | `addCutRoundListener​(XPRScutRoundListener listener, int priority)` | Add a listener for the CutRound callback.
    `void` | `addCutRoundListener​(XPRScutRoundListener listener, java.lang.Object data)` | Add a listener for the CutRound callback.
    `void` | `addCutRoundListener​(XPRScutRoundListener listener, java.lang.Object data, int priority)` | Add a listener for the CutRound callback.
    `void` | `addCuts​(int ncuts, int[] cuttype, byte[] rowtype, double[] rhs, int[] start, int[] colind, double[] cutcoef)` | Adds cuts directly to the matrix at the current node.
    `void` | `addCuts​(int ncuts, int[] cuttype, byte[] rowtype, double[] rhs, long[] start, int[] colind, double[] cutcoef)` | Adds cuts directly to the matrix at the current node.
    `void` | `addDestroyMTListener​(XPRSdestroyMTListener listener)` | Add a listener for the DestroyMT callback.
    `void` | `addDestroyMTListener​(XPRSdestroyMTListener listener, int priority)` | Add a listener for the DestroyMT callback.
    `void` | `addDestroyMTListener​(XPRSdestroyMTListener listener, java.lang.Object data)` | Add a listener for the DestroyMT callback.
    `void` | `addDestroyMTListener​(XPRSdestroyMTListener listener, java.lang.Object data, int priority)` | Add a listener for the DestroyMT callback.
    `void` | `addGapNotifyListener​(XPRSgapNotifyListener listener)` | Add a listener for the GapNotify callback.
    `void` | `addGapNotifyListener​(XPRSgapNotifyListener listener, int priority)` | Add a listener for the GapNotify callback.
    `void` | `addGapNotifyListener​(XPRSgapNotifyListener listener, java.lang.Object data)` | Add a listener for the GapNotify callback.
    `void` | `addGapNotifyListener​(XPRSgapNotifyListener listener, java.lang.Object data, int priority)` | Add a listener for the GapNotify callback.
    `void` | `addGenCons​(int ncons, int ncols, int nvals, XPRSenumerations.GenConsType[] contype, int[] resultant, int[] colstart, int[] colind, int[] valstart, double[] val)` | Adds one or more general constraints to the problem.
    `void` | `addGenCons​(int ncons, long ncols, long nvals, XPRSenumerations.GenConsType[] contype, int[] resultant, long[] colstart, int[] colind, long[] valstart, double[] val)` | Adds one or more general constraints to the problem.
    `void` | `addInfNodeListener​(XPRSinfNodeListener listener)` | Add a listener for the InfNode callback.
    `void` | `addInfNodeListener​(XPRSinfNodeListener listener, int priority)` | Add a listener for the InfNode callback.
    `void` | `addInfNodeListener​(XPRSinfNodeListener listener, java.lang.Object data)` | Add a listener for the InfNode callback.
    `void` | `addInfNodeListener​(XPRSinfNodeListener listener, java.lang.Object data, int priority)` | Add a listener for the InfNode callback.
    `void` | `addIntSolListener​(XPRSintSolListener listener)` | Add a listener for the IntSol callback.
    `void` | `addIntSolListener​(XPRSintSolListener listener, int priority)` | Add a listener for the IntSol callback.
    `void` | `addIntSolListener​(XPRSintSolListener listener, java.lang.Object data)` | Add a listener for the IntSol callback.
    `void` | `addIntSolListener​(XPRSintSolListener listener, java.lang.Object data, int priority)` | Add a listener for the IntSol callback.
    `void` | `addLpLogListener​(XPRSlpLogListener listener)` | Add a listener for the LpLog callback.
    `void` | `addLpLogListener​(XPRSlpLogListener listener, int priority)` | Add a listener for the LpLog callback.
    `void` | `addLpLogListener​(XPRSlpLogListener listener, java.lang.Object data)` | Add a listener for the LpLog callback.
    `void` | `addLpLogListener​(XPRSlpLogListener listener, java.lang.Object data, int priority)` | Add a listener for the LpLog callback.
    `void` | `addManagedCuts​(int globalvalid, int ncuts, byte[] rowtype, double[] rhs, int[] start, int[] colind, double[] cutcoef)` | Adds cuts to the Optimizer's internal cut pool from within the cutround callback set by `addCbCutRound`.
    `void` | `addManagedCuts​(int globalvalid, int ncuts, byte[] rowtype, double[] rhs, long[] start, int[] colind, double[] cutcoef)` | Adds cuts to the Optimizer's internal cut pool from within the cutround callback set by `addCbCutRound`.
    `void` | `addMessageListener​(XPRSmessageListener listener)` | Add a listener for the Message callback.
    `void` | `addMessageListener​(XPRSmessageListener listener, int priority)` | Add a listener for the Message callback.
    `void` | `addMessageListener​(XPRSmessageListener listener, java.lang.Object data)` | Add a listener for the Message callback.
    `void` | `addMessageListener​(XPRSmessageListener listener, java.lang.Object data, int priority)` | Add a listener for the Message callback.
    `void` | `addMipLogListener​(XPRSmipLogListener listener)` | Add a listener for the MipLog callback.
    `void` | `addMipLogListener​(XPRSmipLogListener listener, int priority)` | Add a listener for the MipLog callback.
    `void` | `addMipLogListener​(XPRSmipLogListener listener, java.lang.Object data)` | Add a listener for the MipLog callback.
    `void` | `addMipLogListener​(XPRSmipLogListener listener, java.lang.Object data, int priority)` | Add a listener for the MipLog callback.
    `void` | `addMipSol​(double[] val, int[] ind)` | Add a new MIP solution.
    `void` | `addMipSol​(double[] val, int[] ind, java.lang.String name)` | Add a new MIP solution.
    `void` | `addMipSol​(int length, double[] solval, int[] colind, java.lang.String name)` | Adds a new feasible, infeasible or partial MIP solution for the problem to the Optimizer.
    `void` | `addMipThreadListener​(XPRSmipThreadListener listener)` | Add a listener for the MipThread callback.
    `void` | `addMipThreadListener​(XPRSmipThreadListener listener, int priority)` | Add a listener for the MipThread callback.
    `void` | `addMipThreadListener​(XPRSmipThreadListener listener, java.lang.Object data)` | Add a listener for the MipThread callback.
    `void` | `addMipThreadListener​(XPRSmipThreadListener listener, java.lang.Object data, int priority)` | Add a listener for the MipThread callback.
    `void` | `addMsgHandlerListener​(XPRSmsgHandlerListener listener)` | Add a listener for the MsgHandler callback.
    `void` | `addMsgHandlerListener​(XPRSmsgHandlerListener listener, int priority)` | Add a listener for the MsgHandler callback.
    `void` | `addMsgHandlerListener​(XPRSmsgHandlerListener listener, java.lang.Object data)` | Add a listener for the MsgHandler callback.
    `void` | `addMsgHandlerListener​(XPRSmsgHandlerListener listener, java.lang.Object data, int priority)` | Add a listener for the MsgHandler callback.
    `void` | `addMsJobEndListener​(XPRSmsJobEndListener listener)` | Add a listener for the MsJobEnd callback.
    `void` | `addMsJobEndListener​(XPRSmsJobEndListener listener, int priority)` | Add a listener for the MsJobEnd callback.
    `void` | `addMsJobEndListener​(XPRSmsJobEndListener listener, java.lang.Object data)` | Add a listener for the MsJobEnd callback.
    `void` | `addMsJobEndListener​(XPRSmsJobEndListener listener, java.lang.Object data, int priority)` | Add a listener for the MsJobEnd callback.
    `void` | `addMsJobStartListener​(XPRSmsJobStartListener listener)` | Add a listener for the MsJobStart callback.
    `void` | `addMsJobStartListener​(XPRSmsJobStartListener listener, int priority)` | Add a listener for the MsJobStart callback.
    `void` | `addMsJobStartListener​(XPRSmsJobStartListener listener, java.lang.Object data)` | Add a listener for the MsJobStart callback.
    `void` | `addMsJobStartListener​(XPRSmsJobStartListener listener, java.lang.Object data, int priority)` | Add a listener for the MsJobStart callback.
    `void` | `addMsWinnerListener​(XPRSmsWinnerListener listener)` | Add a listener for the MsWinner callback.
    `void` | `addMsWinnerListener​(XPRSmsWinnerListener listener, int priority)` | Add a listener for the MsWinner callback.
    `void` | `addMsWinnerListener​(XPRSmsWinnerListener listener, java.lang.Object data)` | Add a listener for the MsWinner callback.
    `void` | `addMsWinnerListener​(XPRSmsWinnerListener listener, java.lang.Object data, int priority)` | Add a listener for the MsWinner callback.
    `void` | `addNames​(int type, java.lang.String[] names, int first, int last)` | Add names to model.
    `void` | `addNames​(XPRSenumerations.Namespaces type, java.lang.String[] names, int first, int last)` | Add names to model.
    `void` | `addNewnodeListener​(XPRSnewnodeListener listener)` | Add a listener for the Newnode callback.
    `void` | `addNewnodeListener​(XPRSnewnodeListener listener, int priority)` | Add a listener for the Newnode callback.
    `void` | `addNewnodeListener​(XPRSnewnodeListener listener, java.lang.Object data)` | Add a listener for the Newnode callback.
    `void` | `addNewnodeListener​(XPRSnewnodeListener listener, java.lang.Object data, int priority)` | Add a listener for the Newnode callback.
    `void` | `addNlpCoefEvalErrorListener​(XPRSnlpCoefEvalErrorListener listener)` | Add a listener for the NlpCoefEvalError callback.
    `void` | `addNlpCoefEvalErrorListener​(XPRSnlpCoefEvalErrorListener listener, int priority)` | Add a listener for the NlpCoefEvalError callback.
    `void` | `addNlpCoefEvalErrorListener​(XPRSnlpCoefEvalErrorListener listener, java.lang.Object data)` | Add a listener for the NlpCoefEvalError callback.
    `void` | `addNlpCoefEvalErrorListener​(XPRSnlpCoefEvalErrorListener listener, java.lang.Object data, int priority)` | Add a listener for the NlpCoefEvalError callback.
    `void` | `addNodeCutoffListener​(XPRSnodeCutoffListener listener)` | Add a listener for the NodeCutoff callback.
    `void` | `addNodeCutoffListener​(XPRSnodeCutoffListener listener, int priority)` | Add a listener for the NodeCutoff callback.
    `void` | `addNodeCutoffListener​(XPRSnodeCutoffListener listener, java.lang.Object data)` | Add a listener for the NodeCutoff callback.
    `void` | `addNodeCutoffListener​(XPRSnodeCutoffListener listener, java.lang.Object data, int priority)` | Add a listener for the NodeCutoff callback.
    `void` | `addNodeLPSolvedListener​(XPRSnodeLPSolvedListener listener)` | Add a listener for the NodeLPSolved callback.
    `void` | `addNodeLPSolvedListener​(XPRSnodeLPSolvedListener listener, int priority)` | Add a listener for the NodeLPSolved callback.
    `void` | `addNodeLPSolvedListener​(XPRSnodeLPSolvedListener listener, java.lang.Object data)` | Add a listener for the NodeLPSolved callback.
    `void` | `addNodeLPSolvedListener​(XPRSnodeLPSolvedListener listener, java.lang.Object data, int priority)` | Add a listener for the NodeLPSolved callback.
    `void` | `addObj​(int ncols, int[] colind, double[] objcoef, int priority, double weight)` | Appends an objective function with the given coefficients to a multi-objective problem.
    `void` | `addOptNodeListener​(XPRSoptNodeListener listener)` | Add a listener for the OptNode callback.
    `void` | `addOptNodeListener​(XPRSoptNodeListener listener, int priority)` | Add a listener for the OptNode callback.
    `void` | `addOptNodeListener​(XPRSoptNodeListener listener, java.lang.Object data)` | Add a listener for the OptNode callback.
    `void` | `addOptNodeListener​(XPRSoptNodeListener listener, java.lang.Object data, int priority)` | Add a listener for the OptNode callback.
    `void` | `addPreIntsolListener​(XPRSpreIntsolListener listener)` | Add a listener for the PreIntsol callback.
    `void` | `addPreIntsolListener​(XPRSpreIntsolListener listener, int priority)` | Add a listener for the PreIntsol callback.
    `void` | `addPreIntsolListener​(XPRSpreIntsolListener listener, java.lang.Object data)` | Add a listener for the PreIntsol callback.
    `void` | `addPreIntsolListener​(XPRSpreIntsolListener listener, java.lang.Object data, int priority)` | Add a listener for the PreIntsol callback.
    `void` | `addPreNodeListener​(XPRSpreNodeListener listener)` | Add a listener for the PreNode callback.
    `void` | `addPreNodeListener​(XPRSpreNodeListener listener, int priority)` | Add a listener for the PreNode callback.
    `void` | `addPreNodeListener​(XPRSpreNodeListener listener, java.lang.Object data)` | Add a listener for the PreNode callback.
    `void` | `addPreNodeListener​(XPRSpreNodeListener listener, java.lang.Object data, int priority)` | Add a listener for the PreNode callback.
    `void` | `addPresolveListener​(XPRSpresolveListener listener)` | Add a listener for the Presolve callback.
    `void` | `addPresolveListener​(XPRSpresolveListener listener, int priority)` | Add a listener for the Presolve callback.
    `void` | `addPresolveListener​(XPRSpresolveListener listener, java.lang.Object data)` | Add a listener for the Presolve callback.
    `void` | `addPresolveListener​(XPRSpresolveListener listener, java.lang.Object data, int priority)` | Add a listener for the Presolve callback.
    `void` | `addPwlCons​(int npwls, int npoints, int[] colind, int[] resultant, int[] start, double[] xval, double[] yval)` | Adds one or more piecewise linear constraints to the problem.
    `void` | `addPwlCons​(int npwls, long npoints, int[] colind, int[] resultant, long[] start, double[] xval, double[] yval)` | Adds one or more piecewise linear constraints to the problem.
    `void` | `addQMatrix​(int row, int ncoefs, int[] rowqcol1, int[] rowqcol2, double[] rowqcoef)` | Adds a new quadratic matrix into a row defined by triplets.
    `void` | `addQMatrix​(int row, long ncoefs, int[] rowqcol1, int[] rowqcol2, double[] rowqcoef)` | Adds a new quadratic matrix into a row defined by triplets.
    `int` | `addRow​(int[] colind, double[] colval, char rowtype, double rhs)` | Add a single row to the problem.
    `int` | `addRow​(int[] colind, double[] colval, char rowtype, double rhs, double rng, java.lang.String name)` | Add a single row to the problem.
    `int` | `addRow​(int[] colind, double[] colval, char rowtype, double rhs, java.lang.String name)` | Add a single row to the problem.
    `int` | `addRow​(XPRSprob.RowInfo row)` | Add a single row to the problem.
    `int` | `addRow​(XPRSprob.RowInfo row, java.lang.String name)` | Add a single row to the problem.
    `void` | `addRows​(int nrows, int ncoefs, byte[] rowtype, double[] rhs, double[] rng, int[] start, int[] colind, double[] rowcoef)` | Adds rows to the optimizer matrix.
    `void` | `addRows​(int nrows, int ncoefs, byte[] rowtype, double[] rhs, int[] start, int[] colind, double[] rowcoef)` | Convenience wrapper for `addRows(int, int, byte[], double[], double[], int[], int[], double[])`.
    `void` | `addRows​(int nrows, long ncoefs, byte[] rowtype, double[] rhs, double[] rng, long[] start, int[] colind, double[] rowcoef)` | Adds rows to the optimizer matrix.
    `void` | `addRows​(int nrows, long ncoefs, byte[] rowtype, double[] rhs, long[] start, int[] colind, double[] rowcoef)` | Convenience wrapper for `addRows(int, long, byte[], double[], double[], long[], int[], double[])`.
    `int` | `addSet​(SetType type, int[] elements, double[] weights, java.lang.String name)` | Add a single set constraint to this problem.
    `void` | `addSetNames​(java.lang.String[] names, int first, int last)` | Deprecated. since 45.00, use `addNames()` with a type of `XPRSenumerations.Namespaces.SET` instead.
    `int[]` | `addSets​(int count, int[] start, SetType[] type, int[] setind, double[] setref, java.lang.String[] names)` | Create multiple set constraints.
    `void` | `addSets​(int nsets, int nelems, byte[] settype, int[] start, int[] colind, double[] refval)` | Allows sets to be added to the problem after passing it to the Optimizer using the input routines.
    `void` | `addSets​(int nsets, long nelems, byte[] settype, long[] start, int[] colind, double[] refval)` | Allows sets to be added to the problem after passing it to the Optimizer using the input routines.
    `int[]` | `addSets​(SetType[] type, int[][] elements, double[][] weights, java.lang.String[] name)` | Add multiple set constraints to the problem.
    `void` | `addSlpCascadeEndListener​(XPRSslpCascadeEndListener listener)` | Add a listener for the SlpCascadeEnd callback.
    `void` | `addSlpCascadeEndListener​(XPRSslpCascadeEndListener listener, int priority)` | Add a listener for the SlpCascadeEnd callback.
    `void` | `addSlpCascadeEndListener​(XPRSslpCascadeEndListener listener, java.lang.Object data)` | Add a listener for the SlpCascadeEnd callback.
    `void` | `addSlpCascadeEndListener​(XPRSslpCascadeEndListener listener, java.lang.Object data, int priority)` | Add a listener for the SlpCascadeEnd callback.
    `void` | `addSlpCascadeStartListener​(XPRSslpCascadeStartListener listener)` | Add a listener for the SlpCascadeStart callback.
    `void` | `addSlpCascadeStartListener​(XPRSslpCascadeStartListener listener, int priority)` | Add a listener for the SlpCascadeStart callback.
    `void` | `addSlpCascadeStartListener​(XPRSslpCascadeStartListener listener, java.lang.Object data)` | Add a listener for the SlpCascadeStart callback.
    `void` | `addSlpCascadeStartListener​(XPRSslpCascadeStartListener listener, java.lang.Object data, int priority)` | Add a listener for the SlpCascadeStart callback.
    `void` | `addSlpCascadeVarFailListener​(XPRSslpCascadeVarFailListener listener)` | Add a listener for the SlpCascadeVarFail callback.
    `void` | `addSlpCascadeVarFailListener​(XPRSslpCascadeVarFailListener listener, int priority)` | Add a listener for the SlpCascadeVarFail callback.
    `void` | `addSlpCascadeVarFailListener​(XPRSslpCascadeVarFailListener listener, java.lang.Object data)` | Add a listener for the SlpCascadeVarFail callback.
    `void` | `addSlpCascadeVarFailListener​(XPRSslpCascadeVarFailListener listener, java.lang.Object data, int priority)` | Add a listener for the SlpCascadeVarFail callback.
    `void` | `addSlpCascadeVarListener​(XPRSslpCascadeVarListener listener)` | Add a listener for the SlpCascadeVar callback.
    `void` | `addSlpCascadeVarListener​(XPRSslpCascadeVarListener listener, int priority)` | Add a listener for the SlpCascadeVar callback.
    `void` | `addSlpCascadeVarListener​(XPRSslpCascadeVarListener listener, java.lang.Object data)` | Add a listener for the SlpCascadeVar callback.
    `void` | `addSlpCascadeVarListener​(XPRSslpCascadeVarListener listener, java.lang.Object data, int priority)` | Add a listener for the SlpCascadeVar callback.
    `void` | `addSlpConstructListener​(XPRSslpConstructListener listener)` | Add a listener for the SlpConstruct callback.
    `void` | `addSlpConstructListener​(XPRSslpConstructListener listener, int priority)` | Add a listener for the SlpConstruct callback.
    `void` | `addSlpConstructListener​(XPRSslpConstructListener listener, java.lang.Object data)` | Add a listener for the SlpConstruct callback.
    `void` | `addSlpConstructListener​(XPRSslpConstructListener listener, java.lang.Object data, int priority)` | Add a listener for the SlpConstruct callback.
    `void` | `addSlpDrColListener​(XPRSslpDrColListener listener)` | Add a listener for the SlpDrCol callback.
    `void` | `addSlpDrColListener​(XPRSslpDrColListener listener, int priority)` | Add a listener for the SlpDrCol callback.
    `void` | `addSlpDrColListener​(XPRSslpDrColListener listener, java.lang.Object data)` | Add a listener for the SlpDrCol callback.
    `void` | `addSlpDrColListener​(XPRSslpDrColListener listener, java.lang.Object data, int priority)` | Add a listener for the SlpDrCol callback.
    `void` | `addSlpIntSolListener​(XPRSslpIntSolListener listener)` | Add a listener for the SlpIntSol callback.
    `void` | `addSlpIntSolListener​(XPRSslpIntSolListener listener, int priority)` | Add a listener for the SlpIntSol callback.
    `void` | `addSlpIntSolListener​(XPRSslpIntSolListener listener, java.lang.Object data)` | Add a listener for the SlpIntSol callback.
    `void` | `addSlpIntSolListener​(XPRSslpIntSolListener listener, java.lang.Object data, int priority)` | Add a listener for the SlpIntSol callback.
    `void` | `addSlpIterEndListener​(XPRSslpIterEndListener listener)` | Add a listener for the SlpIterEnd callback.
    `void` | `addSlpIterEndListener​(XPRSslpIterEndListener listener, int priority)` | Add a listener for the SlpIterEnd callback.
    `void` | `addSlpIterEndListener​(XPRSslpIterEndListener listener, java.lang.Object data)` | Add a listener for the SlpIterEnd callback.
    `void` | `addSlpIterEndListener​(XPRSslpIterEndListener listener, java.lang.Object data, int priority)` | Add a listener for the SlpIterEnd callback.
    `void` | `addSlpIterStartListener​(XPRSslpIterStartListener listener)` | Add a listener for the SlpIterStart callback.
    `void` | `addSlpIterStartListener​(XPRSslpIterStartListener listener, int priority)` | Add a listener for the SlpIterStart callback.
    `void` | `addSlpIterStartListener​(XPRSslpIterStartListener listener, java.lang.Object data)` | Add a listener for the SlpIterStart callback.
    `void` | `addSlpIterStartListener​(XPRSslpIterStartListener listener, java.lang.Object data, int priority)` | Add a listener for the SlpIterStart callback.
    `void` | `addSlpIterVarListener​(XPRSslpIterVarListener listener)` | Add a listener for the SlpIterVar callback.
    `void` | `addSlpIterVarListener​(XPRSslpIterVarListener listener, int priority)` | Add a listener for the SlpIterVar callback.
    `void` | `addSlpIterVarListener​(XPRSslpIterVarListener listener, java.lang.Object data)` | Add a listener for the SlpIterVar callback.
    `void` | `addSlpIterVarListener​(XPRSslpIterVarListener listener, java.lang.Object data, int priority)` | Add a listener for the SlpIterVar callback.
    `void` | `addSlpPreUpdateLinearizationListener​(XPRSslpPreUpdateLinearizationListener listener)` | Add a listener for the SlpPreUpdateLinearization callback.
    `void` | `addSlpPreUpdateLinearizationListener​(XPRSslpPreUpdateLinearizationListener listener, int priority)` | Add a listener for the SlpPreUpdateLinearization callback.
    `void` | `addSlpPreUpdateLinearizationListener​(XPRSslpPreUpdateLinearizationListener listener, java.lang.Object data)` | Add a listener for the SlpPreUpdateLinearization callback.
    `void` | `addSlpPreUpdateLinearizationListener​(XPRSslpPreUpdateLinearizationListener listener, java.lang.Object data, int priority)` | Add a listener for the SlpPreUpdateLinearization callback.
    `void` | `addUserSolNotifyListener​(XPRSuserSolNotifyListener listener)` | Add a listener for the UserSolNotify callback.
    `void` | `addUserSolNotifyListener​(XPRSuserSolNotifyListener listener, int priority)` | Add a listener for the UserSolNotify callback.
    `void` | `addUserSolNotifyListener​(XPRSuserSolNotifyListener listener, java.lang.Object data)` | Add a listener for the UserSolNotify callback.
    `void` | `addUserSolNotifyListener​(XPRSuserSolNotifyListener listener, java.lang.Object data, int priority)` | Add a listener for the UserSolNotify callback.
    `void` | `alter​(java.lang.String filename)` | Deprecated. since 45.00, use functions to directly manipulate matrix data.
    `XPRSprob.Attributes` | `attributes()` | Access the attributes of this instance.
    `void` | `basisCondition​(DoubleHolder p_cond, DoubleHolder p_scaledcond)` | Deprecated. since 38.00, use `basisStability()` instead.
    `double` | `basisStability​(int type, int norm, boolean ifscaled)` | Compute basis stability.
    `double` | `basisStability​(int type, int norm, int scaled)` | Convenience wrapper for `basisStability(int,int,int,com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `basisStability​(int type, int norm, int scaled, DoubleHolder p_value)` | Calculates various measures for the stability of the current basis, including the basis condition number.
    `int` | `binVar()` | Deprecated. since 43.00, use `addColumn()` instead
    `int` | `binVar​(java.lang.String name)` | Deprecated. since 43.00, use `addColumn()` instead
    `int[]` | `binVarArray​(int count, java.util.function.Function<java.lang.Integer,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> int[]` | `binVarArray​(java.util.Collection<T> objs, java.util.function.Function<T,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> java.util.Map<T,​java.lang.Integer>` | `binVarMap​(java.util.Collection<T> objs, java.util.function.Function<T,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> java.util.Map<T,​java.lang.Integer>` | `binVarMap​(java.util.Collection<T> objs, java.util.function.Function<T,​java.lang.String> name, java.util.Map<T,​java.lang.Integer> map)` | Deprecated. since 43.00, use `addColumns()` instead
    `void` | `bndsa​(int ncols, int[] colind, double[] lblower, double[] lbupper, double[] ublower, double[] ubupper)` | Returns upper and lower sensitivity ranges for specified variables' lower and upper bounds.
    `void` | `btran​(double[] vec)` | Post-multiplies a (row) vector provided by the user by the inverse of the current basis.
    `double` | `calcObjective​(double[] solution)` | Convenience wrapper for `calcObjective(double[],com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `calcObjective​(double[] solution, DoubleHolder p_objval)` | Calculates the objective value of a given solution.
    `double` | `calcObjN​(int objidx, double[] solution)` | Convenience wrapper for `calcObjN(int,double[],com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `calcObjN​(int objidx, double[] solution, DoubleHolder p_objval)` | Calculates the objective value of the given objective function in a multi-objective problem.
    `void` | `calcReducedCosts​(double[] duals, double[] solution, double[] djs)` | Calculates the reduced cost values for a given (row) dual solution.
    `void` | `calcSlacks​(double[] solution, double[] slacks)` | Calculates the row slack values for a given solution.
    `double` | `calcSolInfo​(double[] solution, double[] duals, int property)` | Convenience wrapper for `calcSolInfo(double[],double[],int,com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `calcSolInfo​(double[] solution, double[] duals, int property, DoubleHolder p_value)` | Calculates the required property of a solution, like maximum infeasibility of a given primal and dual solution.
    `void` | `chgBounds​(int j, double lb, double ub)` | Change bounds of a single column.
    `void` | `chgBounds​(int nbounds, int[] colind, byte[] bndtype, double[] bndval)` | Used to change the bounds on columns in the matrix.
    `void` | `chgCoef​(int row, int col, double coef)` | Used to change a single coefficient in the matrix.
    `void` | `chgColType​(int x, byte value)` | Convenience wrapper for `chgColType(int, int[], byte[])`.
    `void` | `chgColType​(int ncols, int[] colind, byte[] coltype)` | Used to change the type of a specified set of columns in the matrix.
    `void` | `chgGlbLimit​(int x, double value)` | Convenience wrapper for `chgGlbLimit(int, int[], double[])`.
    `void` | `chgGlbLimit​(int ncols, int[] colind, double[] limit)` | Used to change semi-continuous or semi-integer lower bounds, or upper limits on partial integers.
    `void` | `chgLB​(int j, double lb)` | Change the lower bound of a single column.
    `void` | `chgMCoef​(int ncoefs, int[] rowind, int[] colind, double[] rowcoef)` | Used to change multiple coefficients in the matrix.
    `void` | `chgMCoef​(long ncoefs, int[] rowind, int[] colind, double[] rowcoef)` | Used to change multiple coefficients in the matrix.
    `void` | `chgMQObj​(int ncoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef)` | Used to change multiple quadratic coefficients in the objective function.
    `void` | `chgMQObj​(long ncoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef)` | Used to change multiple quadratic coefficients in the objective function.
    `void` | `chgObj​(int x, double value)` | Convenience wrapper for `chgObj(int, int[], double[])`.
    `void` | `chgObj​(int ncols, int[] colind, double[] objcoef)` | Used to change the objective function coefficients.
    `void` | `chgObjN​(int objidx, int ncols, int[] colind, double[] objcoef)` | Modifies one or more coefficients of an objective function in a multi-objective problem.
    `void` | `chgObjSense​(int objsense)` | Deprecated. use chgObjSense(com.dashoptimization.XPRSenumerations.ObjSense) instead
    `void` | `chgObjSense​(XPRSenumerations.ObjSense objsense)` | Changes the problem's objective function sense to minimize or maximize.
    `void` | `chgQObj​(int objqcol1, int objqcol2, double objqcoef)` | Used to change a single quadratic coefficient in the objective function corresponding to the variable pair `(objqcol1,objqcol2)` of the Hessian matrix.
    `void` | `chgQRowCoeff​(int row, int rowqcol1, int rowqcol2, double rowqcoef)` | Changes a single quadratic coefficient in a row.
    `void` | `chgRHS​(int x, double value)` | Convenience wrapper for `chgRHS(int, int[], double[])`.
    `void` | `chgRHS​(int nrows, int[] rowind, double[] rhs)` | Used to change right—hand side values of the problem.
    `void` | `chgRHSrange​(int x, double value)` | Convenience wrapper for `chgRHSrange(int, int[], double[])`.
    `void` | `chgRHSrange​(int nrows, int[] rowind, double[] rng)` | Used to change the range for a row of the problem matrix.
    `void` | `chgRowType​(int x, byte value)` | Convenience wrapper for `chgRowType(int, int[], byte[])`.
    `void` | `chgRowType​(int nrows, int[] rowind, byte[] rowtype)` | Used to change the type of a row in the matrix.
    `void` | `chgUB​(int j, double ub)` | Change the upper bound of a single column.
    `void` | `clearIIS()` | Resets the search for Irreducible Infeasible Sets (IIS).
    `void` | `clearObjective()` | Clear the objective function.
    `void` | `clearRowFlags​(int[] flags, int first, int last)` | Clears extra information attached to a range of rows.
    `void` | `close()` | Destroy the problem, deallocating all memory used.
    `XPRSprob.Controls` | `controls()` | Access the controls of this instance.
    `int` | `contVar()` | Deprecated. since 43.00, use `addColumn()` instead
    `int` | `contVar​(double lb, double ub)` | Deprecated. since 43.00, use `addColumn()` instead
    `int` | `contVar​(double lb, double ub, java.lang.String name)` | Deprecated. since 43.00, use `addColumn()` instead
    `int` | `contVar​(java.lang.String name)` | Deprecated. since 43.00, use `addColumn()` instead
    `int[]` | `contVarArray​(int count, double[] lb, double[] ub, java.lang.String[] name)` | Deprecated. since 43.00, use `addColumns()` instead
    `int[]` | `contVarArray​(int count, double lb, double ub, java.util.function.Function<java.lang.Integer,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `int[]` | `contVarArray​(int count, java.util.function.Function<java.lang.Integer,​java.lang.Double> lb, java.util.function.Function<java.lang.Integer,​java.lang.Double> ub, java.util.function.Function<java.lang.Integer,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> int[]` | `contVarArray​(java.util.Collection<T> objs, double lb, double ub, java.util.function.Function<T,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> int[]` | `contVarArray​(java.util.Collection<T> objs, java.util.function.Function<T,​java.lang.Double> lb, java.util.function.Function<T,​java.lang.Double> ub, java.util.function.Function<T,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> java.util.Map<T,​java.lang.Integer>` | `contVarMap​(java.util.Collection<T> objs, java.util.function.Function<T,​java.lang.Double> lb, java.util.function.Function<T,​java.lang.Double> ub, java.util.function.Function<T,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> java.util.Map<T,​java.lang.Integer>` | `contVarMap​(java.util.Collection<T> objs, java.util.function.Function<T,​java.lang.Double> lb, java.util.function.Function<T,​java.lang.Double> ub, java.util.function.Function<T,​java.lang.String> name, java.util.Map<T,​java.lang.Integer> map)` | Deprecated. since 43.00, use `addColumns()` instead
    `void` | `copyCallBacks​(XPRSprob src)` | Copies callback functions defined for one problem to another.
    `void` | `copyControls​(XPRSprob src)` | Copies controls defined for one problem to another.
    `void` | `copyProb​(XPRSprob src)` | Copy another problem over this one
    `XPRSbranchobject` | `createBranchObject​(boolean isOriginal)` | Creates a new `XPRSbranchobject`.
    `XPRSbranchobject` | `createBranchObjectFromGlobal​(int icol)` | Deprecated. since 44.00, will be removed in a future release.
    `int` | `crossoverLpSol()` | Convenience wrapper for `crossoverLpSol(com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `crossoverLpSol​(IntHolder p_status)` | Provides a basic optimal solution for a given solution of an LP problem.
    `void` | `delCols​(int ncols, int[] colind)` | Delete columns from a matrix.
    `void` | `delCPCuts()` | Convenience wrapper for `delCPCuts(int, int, int, XPRScut[])`.
    `void` | `delCPCuts​(int cuttype, int interp)` | Convenience wrapper for `delCPCuts(int, int, int, XPRScut[])`.
    `void` | `delCPCuts​(int cuttype, int interp, int ncuts, XPRScut[] cutind)` | During the branch and bound search, cuts are stored in the cut pool to be applied at descendant nodes.
    `void` | `delCPCuts​(int ncuts, XPRScut[] cutind)` | Convenience wrapper for `delCPCuts(int, int, int, XPRScut[])`.
    `void` | `delCuts​(int basis)` | Convenience wrapper for `delCuts(int, int, int, double, int, XPRScut[])`.
    `void` | `delCuts​(int basis, int cuttype, int interp)` | Convenience wrapper for `delCuts(int, int, int, double, int, XPRScut[])`.
    `void` | `delCuts​(int basis, int cuttype, int interp, double delta)` | Convenience wrapper for `delCuts(int, int, int, double, int, XPRScut[])`.
    `void` | `delCuts​(int basis, int cuttype, int interp, double delta, int ncuts, XPRScut[] cutind)` | Deletes cuts from the matrix at the current node.
    `void` | `delCuts​(int basis, int ncuts, XPRScut[] cutind)` | Convenience wrapper for `delCuts(int, int, int, double, int, XPRScut[])`.
    `void` | `delGenCons​(int ncons, int[] conind)` | Delete general constraints from a problem.
    `void` | `delIndicator​(int row)` | Delete a single indicator constraint.
    `void` | `delIndicators​(int first, int last)` | Delete indicator constraints.
    `void` | `delObj​(int objidx)` | Removes an objective function from the problem.
    `void` | `delPwlCons​(int npwls, int[] pwlind)` | Delete piecewise linear constraints from a problem.
    `void` | `delQMatrix​(int row)` | Deletes the quadratic part of a row or of the objective function.
    `void` | `delRows​(int nrows, int[] rowind)` | Delete rows from a matrix.
    `void` | `delSets​(int nsets, int[] setind)` | Delete sets from a problem.
    `void` | `destroyProb()` | Deprecated. use `close()` instead.
    `void` | `dumpControls()` | Displays the list of controls and their current value for those controls that have been set to a non default value.
    `void` | `estimateRowDualRanges​(int nrows, int[] rowind, int iterlim, double[] mindual, double[] maxdual)` | Performs a dual side range sensitivity analysis, i.e.
    `int` | `firstIIS​(int mode)` | Convenience wrapper for `firstIIS(int,com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `firstIIS​(int mode, IntHolder p_status)` | Initiates a search for an Irreducible Infeasible Set (IIS) in an infeasible problem.
    `void` | `fixGlobals​(int options)` | Deprecated. Deprecated since 40.01, use `fixMIPEntities(int)` instead.
    `void` | `fixMIPEntities​(int options)` | Fixes all the MIP entities to the values of the last found MIP solution.
    `void` | `ftran​(double[] vec)` | Pre-multiplies a (column) vector provided by the user by the inverse of the current matrix.
    `XPRSprob.AttributeInfo` | `getAttribInfo​(java.lang.String name)` | Get info about an attribute.
    `void` | `getAttribInfo​(java.lang.String name, IntHolder p_id, XPRSenumerationHolders.ParameterType p_type)` | Accesses the id number and the type information of an attribute given its name.
    `void` | `getBarNumStability​(int[] colstab, int[] rowstab)` | Deprecated. since 45.00.
    `void` | `getBasis​(int[] rowstat, int[] colstat)` | Returns the current basis into the user's data arrays.
    `XPRSprob.BasisValue` | `getBasisVal​(int row, int col)` | Get basis status for a column or row.
    `void` | `getBasisVal​(int row, int col, IntHolder p_rowstat, IntHolder p_colstat)` | Returns the current basis status for a specific column or row.
    `double` | `getCallbackDual​(int index)` | Convenience wrapper for `getCallbackDuals(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...
    `double` | `getCallbackDual​(BoolHolder p_available, int index)` | Convenience wrapper for `getCallbackDuals(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.
    `double[]` | `getCallbackDuals()` | Convenience wrapper for `getCallbackDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `double[]` | `getCallbackDuals​(int first, int last)` | Convenience wrapper for `getCallbackDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getCallbackDuals​(BoolHolder p_available)` | Convenience wrapper for `getCallbackDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `void` | `getCallbackDuals​(BoolHolder p_available, double[] duals, int first, int last)` | Returns the dual values from the solution associated with the current callback.
    `double[]` | `getCallbackDuals​(BoolHolder p_available, int first, int last)` | Convenience wrapper for `getCallbackDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double` | `getCallbackPresolveDual​(int index)` | Convenience wrapper for `getCallbackPresolveDuals(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...
    `double` | `getCallbackPresolveDual​(BoolHolder p_available, int index)` | Convenience wrapper for `getCallbackPresolveDuals(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.
    `double[]` | `getCallbackPresolveDuals()` | Convenience wrapper for `getCallbackPresolveDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `double[]` | `getCallbackPresolveDuals​(int first, int last)` | Convenience wrapper for `getCallbackPresolveDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getCallbackPresolveDuals​(BoolHolder p_available)` | Convenience wrapper for `getCallbackPresolveDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `void` | `getCallbackPresolveDuals​(BoolHolder p_available, double[] duals, int first, int last)` | Returns the dual values from the solution to the presolved problem associated with the current callback.
    `double[]` | `getCallbackPresolveDuals​(BoolHolder p_available, int first, int last)` | Convenience wrapper for `getCallbackPresolveDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double` | `getCallbackPresolveRedCost​(int index)` | Convenience wrapper for `getCallbackPresolveRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...
    `double` | `getCallbackPresolveRedCost​(BoolHolder p_available, int index)` | Convenience wrapper for `getCallbackPresolveRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.
    `double[]` | `getCallbackPresolveRedCosts()` | Convenience wrapper for `getCallbackPresolveRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `double[]` | `getCallbackPresolveRedCosts​(int first, int last)` | Convenience wrapper for `getCallbackPresolveRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getCallbackPresolveRedCosts​(BoolHolder p_available)` | Convenience wrapper for `getCallbackPresolveRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `void` | `getCallbackPresolveRedCosts​(BoolHolder p_available, double[] djs, int first, int last)` | Returns the reduced costs from the solution to the presolved problem associated with the current callback.
    `double[]` | `getCallbackPresolveRedCosts​(BoolHolder p_available, int first, int last)` | Convenience wrapper for `getCallbackPresolveRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double` | `getCallbackPresolveSlack​(int index)` | Convenience wrapper for `getCallbackPresolveSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...
    `double` | `getCallbackPresolveSlack​(BoolHolder p_available, int index)` | Convenience wrapper for `getCallbackPresolveSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.
    `double[]` | `getCallbackPresolveSlacks()` | Convenience wrapper for `getCallbackPresolveSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `double[]` | `getCallbackPresolveSlacks​(int first, int last)` | Convenience wrapper for `getCallbackPresolveSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getCallbackPresolveSlacks​(BoolHolder p_available)` | Convenience wrapper for `getCallbackPresolveSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `void` | `getCallbackPresolveSlacks​(BoolHolder p_available, double[] slacks, int first, int last)` | Returns the slack values from the solution to the presolved problem associated with the current callback.
    `double[]` | `getCallbackPresolveSlacks​(BoolHolder p_available, int first, int last)` | Convenience wrapper for `getCallbackPresolveSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getCallbackPresolveSolution()` | Convenience wrapper for `getCallbackPresolveSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `double` | `getCallbackPresolveSolution​(int index)` | Convenience wrapper for `getCallbackPresolveSolution(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...
    `double[]` | `getCallbackPresolveSolution​(int first, int last)` | Convenience wrapper for `getCallbackPresolveSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getCallbackPresolveSolution​(BoolHolder p_available)` | Convenience wrapper for `getCallbackPresolveSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `void` | `getCallbackPresolveSolution​(BoolHolder p_available, double[] x, int first, int last)` | Returns the solution to the presolved problem associated with the current callback.
    `double` | `getCallbackPresolveSolution​(BoolHolder p_available, int index)` | Convenience wrapper for `getCallbackPresolveSolution(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.
    `double[]` | `getCallbackPresolveSolution​(BoolHolder p_available, int first, int last)` | Convenience wrapper for `getCallbackPresolveSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double` | `getCallbackRedCost​(int index)` | Convenience wrapper for `getCallbackRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...
    `double` | `getCallbackRedCost​(BoolHolder p_available, int index)` | Convenience wrapper for `getCallbackRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.
    `double[]` | `getCallbackRedCosts()` | Convenience wrapper for `getCallbackRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `double[]` | `getCallbackRedCosts​(int first, int last)` | Convenience wrapper for `getCallbackRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getCallbackRedCosts​(BoolHolder p_available)` | Convenience wrapper for `getCallbackRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `void` | `getCallbackRedCosts​(BoolHolder p_available, double[] djs, int first, int last)` | Returns the reduced costs from the solution associated with the current callback.
    `double[]` | `getCallbackRedCosts​(BoolHolder p_available, int first, int last)` | Convenience wrapper for `getCallbackRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double` | `getCallbackSlack​(int index)` | Convenience wrapper for `getCallbackSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...
    `double` | `getCallbackSlack​(BoolHolder p_available, int index)` | Convenience wrapper for `getCallbackSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.
    `double[]` | `getCallbackSlacks()` | Convenience wrapper for `getCallbackSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `double[]` | `getCallbackSlacks​(int first, int last)` | Convenience wrapper for `getCallbackSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getCallbackSlacks​(BoolHolder p_available)` | Convenience wrapper for `getCallbackSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `void` | `getCallbackSlacks​(BoolHolder p_available, double[] slacks, int first, int last)` | Returns the slack values from the solution associated with the current callback.
    `double[]` | `getCallbackSlacks​(BoolHolder p_available, int first, int last)` | Convenience wrapper for `getCallbackSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getCallbackSolution()` | Convenience wrapper for `getCallbackSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `double` | `getCallbackSolution​(int index)` | Convenience wrapper for `getCallbackSolution(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...
    `double[]` | `getCallbackSolution​(int first, int last)` | Convenience wrapper for `getCallbackSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getCallbackSolution​(BoolHolder p_available)` | Convenience wrapper for `getCallbackSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.
    `void` | `getCallbackSolution​(BoolHolder p_available, double[] x, int first, int last)` | Returns the primal values from the solution associated with the current callback.
    `double` | `getCallbackSolution​(BoolHolder p_available, int index)` | Convenience wrapper for `getCallbackSolution(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.
    `double[]` | `getCallbackSolution​(BoolHolder p_available, int first, int last)` | Convenience wrapper for `getCallbackSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.
    `double` | `getCoef​(int row, int col)` | Convenience wrapper for `getCoef(int,int,com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `getCoef​(int row, int col, DoubleHolder p_coef)` | Returns a single coefficient in the constraint matrix.
    `int` | `getColBasisVal​(int col)` | Get basis status for a column.
    `int` | `getCols​(int[] start, int[] rowind, double[] rowcoef, int maxcoefs, int first, int last)` | Convenience wrapper for `getCols(int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)`.
    `void` | `getCols​(int[] start, int[] rowind, double[] rowcoef, int maxcoefs, IntHolder p_ncoefs, int first, int last)` | Returns the nonzeros in the constraint matrix for the columns in a given range.
    `XPRSprob.MatrixInfo` | `getCols​(int first, int last)` | Get range of columns.
    `long` | `getCols​(long[] start, int[] rowind, double[] rowcoef, long maxcoefs, int first, int last)` | Convenience wrapper for `getCols(long[], int[], double[], long, com.dashoptimization.LongHolder, int, int)`.
    `void` | `getCols​(long[] start, int[] rowind, double[] rowcoef, long maxcoefs, LongHolder p_ncoefs, int first, int last)` | Returns the nonzeros in the constraint matrix for the columns in a given range.
    `void` | `getColType​(byte[] coltype, int first, int last)` | Returns the column types for the columns in a given range.
    `byte` | `getColType​(int x)` | Convenience wrapper for `getColType(byte[], int, int)`.
    `byte[]` | `getColType​(int first, int last)` | Convenience wrapper for `getColType(byte[], int, int)`.
    `java.lang.String` | `getColumnName​(int index)` | Get a column name.
    `java.lang.String[]` | `getColumnNames​(int first, int last)` | Get names of columns.
    `XPRSprob.ControlInfo` | `getControlInfo​(java.lang.String name)` | Get info about a control.
    `void` | `getControlInfo​(java.lang.String name, IntHolder p_id, XPRSenumerationHolders.ParameterType p_type)` | Accesses the id number and the type information of a control given its name.
    `int` | `getCPCutList​(int cuttype, int interp, double delta, int maxcuts, XPRScut[] cutind, double[] viol)` | Convenience wrapper for `getCPCutList(int, int, double, com.dashoptimization.IntHolder, int, XPRScut[], double[])`.
    `void` | `getCPCutList​(int cuttype, int interp, double delta, IntHolder p_ncuts, int maxcuts, XPRScut[] cutind, double[] viol)` | Returns a list of cut indices from the cut pool.
    `int` | `getCPCutList​(int maxcuts, XPRScut[] cutind, double[] viol)` | Convenience wrapper for `getCPCutList(int, int, double, com.dashoptimization.IntHolder, int, XPRScut[], double[])`.
    `void` | `getCPCuts​(XPRScut[] rowind, int ncuts, int maxcoefs, int[] cuttype, byte[] rowtype, int[] start, int[] colind, double[] cutcoef, double[] rhs)` | Returns cuts from the cut pool.
    `void` | `getCPCuts​(XPRScut[] rowind, int ncuts, long maxcoefs, int[] cuttype, byte[] rowtype, long[] start, int[] colind, double[] cutcoef, double[] rhs)` | Returns cuts from the cut pool.
    `XPRScut[]` | `getCutList​(int cuttype, int interp)` | Retrieves a list of cut pointers for the cuts active at the current node.
    `int` | `getCutList​(int cuttype, int interp, int maxcuts, XPRScut[] cutind)` | Convenience wrapper for `getCutList(int, int, com.dashoptimization.IntHolder, int, XPRScut[])`.
    `void` | `getCutList​(int cuttype, int interp, IntHolder p_ncuts, int maxcuts, XPRScut[] cutind)` | Retrieves a list of cut pointers for the cuts active at the current node.
    `int` | `getCutList​(int maxcuts, XPRScut[] cutind)` | Convenience wrapper for `getCutList(int, int, com.dashoptimization.IntHolder, int, XPRScut[])`.
    `void` | `getCutMap​(int ncuts, XPRScut[] cutind, int[] cutmap)` | Used to return in which rows a list of cuts are currently loaded into the Optimizer.
    `double` | `getCutSlack​(XPRScut cutind)` | Convenience wrapper for `getCutSlack(XPRScut,com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `getCutSlack​(XPRScut cutind, DoubleHolder p_slack)` | Used to calculate the slack value of a cut with respect to the current LP relaxation solution.
    `double` | `getDblAttrib​(int attrib)` | Convenience wrapper for `getDblAttrib(int,com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `getDblAttrib​(int attrib, DoubleHolder p_value)` | Enables users to retrieve the values of various double problem attributes.
    `double` | `getDblControl​(int control)` | Convenience wrapper for `getDblControl(int,com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `getDblControl​(int control, DoubleHolder p_value)` | Retrieves the value of a given double control parameter.
    `int` | `getDirs()` | Convenience wrapper for `getDirs(com.dashoptimization.IntHolder, int[], int[], byte[], double[], double[])`.
    `int` | `getDirs​(int[] indices, int[] prios, byte[] branchdirs, double[] uppseudo, double[] downpseudo)` | Convenience wrapper for `getDirs(com.dashoptimization.IntHolder, int[], int[], byte[], double[], double[])`.
    `void` | `getDirs​(IntHolder p_ndir, int[] indices, int[] prios, byte[] branchdirs, double[] uppseudo, double[] downpseudo)` | Used to return the directives that have been loaded into a matrix.
    `XPRSprob.MIPEntityInfo` | `getDiscreteCols()` | Get information about MIP entities.
    `double` | `getDual​(int index)` | Convenience wrapper for `getDuals(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...
    `double` | `getDual​(IntHolder status, int index)` | Convenience wrapper for `getDuals(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value.
    `boolean` | `getDualRay​(double[] ray)` | Get dual ray.
    `void` | `getDualRay​(double[] ray, IntHolder p_hasray)` | Retrieves a dual ray (dual unbounded direction) for the current problem, if the problem is found to be infeasible.
    `double[]` | `getDuals()` | Convenience wrapper for `getDuals(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements.
    `double[]` | `getDuals​(int first, int last)` | Convenience wrapper for `getDuals(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getDuals​(IntHolder status)` | Convenience wrapper for `getDuals(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements.
    `void` | `getDuals​(IntHolder status, double[] duals, int first, int last)` | Returns the dual values from the incumbent solution during or after optimization of a continuous problem with `optimize`, `lpOptimize` or `nlpOptimize`.
    `double[]` | `getDuals​(IntHolder status, int first, int last)` | Convenience wrapper for `getDuals(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array.
    `XPRSprob.GeneralConstraintInfo` | `getGenCons​(int first, int last)` | Query a range of general constraints.
    `void` | `getGenCons​(XPRSenumerations.GenConsType[] contype, int[] resultant, int[] colstart, int[] colind, int maxcols, IntHolder p_ncols, int[] valstart, double[] val, int maxvals, IntHolder p_nvals, int first, int last)` | Returns the general constraints `y = f(x1, ..., xn, c1, ..., cm)` in a given range.
    `void` | `getGenCons​(XPRSenumerations.GenConsType[] contype, int[] resultant, long[] colstart, int[] colind, long maxcols, LongHolder p_ncols, long[] valstart, double[] val, long maxvals, LongHolder p_nvals, int first, int last)` | Returns the general constraints `y = f(x1, ..., xn, c1, ..., cm)` in a given range.
    `java.lang.String` | `getGenConsName​(int index)` | Get a general constraint name.
    `java.lang.String[]` | `getGenConsNames​(int first, int last)` | Get names of general constraints.
    `XPRSprob.GlobalInfo` | `getGlobal()` | Deprecated. Deprecated since 40.01, use `getMIPEntities()` instead.
    `void` | `getGlobal​(IntHolder p_nentities, IntHolder p_nsets, byte[] coltype, int[] colind, double[] limit, byte[] settype, int[] start, int[] setcols, double[] refval)` | Deprecated. Deprecated since 40.01, use `getMIPEntities(IntHolder, IntHolder, byte[], int[], double[], byte[], int[], int[], double[])` instead.
    `XPRSprob.GlobalInfo` | `getGlobalEntities()` | Deprecated. Deprecated since 40.01, use `getDiscreteCols()` instead.
    `XPRSprob.GlobalInfo` | `getGlobalSets()` | Deprecated. Deprecated since 40.01, use `getSets()` instead.
    `XPRSprob.IISData` | `getIISData​(int number)` | Get information about an IIS.
    `void` | `getIISData​(int iis, IntHolder p_nrows, IntHolder p_ncols, int[] rowind, int[] colind, byte[] contype, byte[] bndtype, double[] duals, double[] djs, byte[] isolationrows, byte[] isolationcols)` | Returns information for an Irreducible Infeasible Set: size, variables and constraints (row and column vectors), and conflicting sides of the variables.
    `int` | `getIndex​(int type, java.lang.String name)` | Convenience wrapper for `getIndex(int,String,com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `getIndex​(int type, java.lang.String name, IntHolder p_index)` | Returns the index for a specified row or column name.
    `IndicatorInfo` | `getIndicator​(int row)` | Get indicator information for a single row.
    `void` | `getIndicators​(int[] colind, int[] complement, int first, int last)` | Returns the indicator constraint condition (indicator variable and complement flag) associated to the rows in a given range.
    `IndicatorInfo[]` | `getIndicators​(int first, int last)` | Get indicator information for a range of rows.
    `XPRSprob.InfeasInfo` | `getInfeas()` | Get infeasibilities.
    `void` | `getInfeas​(IntHolder p_nprimalcols, IntHolder p_nprimalrows, IntHolder p_ndualrows, IntHolder p_ndualcols, int[] x, int[] slack, int[] duals, int[] djs)` | Returns a list of infeasible primal and dual variables.
    `int` | `getIntAttrib​(int attrib)` | Convenience wrapper for `getIntAttrib(int,com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `getIntAttrib​(int attrib, IntHolder p_value)` | Enables users to recover the values of various integer problem attributes.
    `int` | `getIntControl​(int control)` | Convenience wrapper for `getIntControl(int,com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `getIntControl​(int control, IntHolder p_value)` | Enables users to recover the values of various integer control parameters
    `XPRSprob.StatusSolution` | `getLastBarSol()` | Get a solution.
    `int` | `getLastBarSol​(double[] x, double[] slack, double[] duals, double[] djs)` | Get the last barrier solution.
    `void` | `getLastBarSol​(double[] x, double[] slack, double[] duals, double[] djs, IntHolder p_status)` | Used to obtain the last barrier solution values following optimization that used the barrier solver.
    `double[]` | `getLastBarSolDjs()` | Get the djs values of a solution.
    `double[]` | `getLastBarSolDuals()` | Get the duals values of a solution.
    `double[]` | `getLastBarSolSlack()` | Get the slack values of a solution.
    `double[]` | `getLastBarSolX()` | Get the x values of a solution.
    `java.lang.String` | `getLastError()` | Convenience wrapper for `getLastError(com.dashoptimization.StringHolder)`.
    `void` | `getLastError​(StringHolder errmsg)` | Returns the error message corresponding to the last error encountered by a library function.
    `void` | `getLB​(double[] lb, int first, int last)` | Returns the lower bounds for the columns in a given range.
    `double` | `getLB​(int x)` | Convenience wrapper for `getLB(double[], int, int)`.
    `double[]` | `getLB​(int first, int last)` | Convenience wrapper for `getLB(double[], int, int)`.
    `long` | `getLongAttrib​(int attrib)` | Convenience wrapper for `getLongAttrib(int,com.dashoptimization.LongHolder)` that returns the output argument.
    `void` | `getLongAttrib​(int attrib, LongHolder p_value)` | Enables users to recover the values of various integer problem attributes.
    `long` | `getLongControl​(int control)` | Convenience wrapper for `getLongControl(int,com.dashoptimization.LongHolder)` that returns the output argument.
    `void` | `getLongControl​(int control, LongHolder p_value)` | Enables users to recover the values of various integer control parameters
    `XPRSprob.Solution` | `getLpSol()` | Get a solution.
    `void` | `getLpSol​(double[] x)` | Convenience wrapper for `getLpSol(double[], double[], double[], double[])`.
    `void` | `getLpSol​(double[] x, double[] slack, double[] duals, double[] djs)` | Used to obtain the LP solution values following optimization.
    `double[]` | `getLpSolDjs()` | Get the djs values of a solution.
    `double[]` | `getLpSolDuals()` | Get the duals values of a solution.
    `double[]` | `getLpSolSlack()` | Get the slack values of a solution.
    `XPRSprob.SolVal` | `getLpSolVal​(int col, int row)` | Deprecated. Deprecated since 44.00, use `getSolution` or `getCallbackSolution` instead.
    `void` | `getLpSolVal​(int col, int row, DoubleHolder p_x, DoubleHolder p_slack, DoubleHolder p_dual, DoubleHolder p_dj)` | Deprecated. since 44.00, use `getSolution()`, `getCallbackSolution()`, `getSlacks()`, or `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, or `getCallbackDuals()`.
    `double[]` | `getLpSolX()` | Get the x values of a solution.
    `int` | `getMessageStatus​(int msgcode)` | Convenience wrapper for `getMessageStatus(int,com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `getMessageStatus​(int msgcode, IntHolder p_status)` | Retrieves the current suppression status of a message.
    `XPRSprob.MIPEntityInfo` | `getMIPEntities()` | Get information about MIP entities and SOS.
    `int` | `getMIPEntities​(byte[] coltype, int[] colind, double[] limit)` | Convenience wrapper for `getMIPEntities(com.dashoptimization.IntHolder, com.dashoptimization.IntHolder, byte[], int[], double[], byte[], int[], int[], double[])`.
    `void` | `getMIPEntities​(IntHolder p_nentities, byte[] coltype, int[] colind, double[] limit)` | Convenience wrapper for `getMIPEntities(com.dashoptimization.IntHolder, com.dashoptimization.IntHolder, byte[], int[], double[], byte[], int[], int[], double[])`.
    `void` | `getMIPEntities​(IntHolder p_nentities, IntHolder p_nsets, byte[] coltype, int[] colind, double[] limit, byte[] settype, int[] start, int[] setcols, double[] refval)` | Retrieves integr and entity information about a problem.
    `void` | `getMIPEntities​(IntHolder p_nentities, IntHolder p_nsets, byte[] coltype, int[] colind, double[] limit, byte[] settype, long[] start, int[] setcols, double[] refval)` | Retrieves integr and entity information about a problem.
    `XPRSprob.Solution` | `getMipSol()` | Deprecated. since 44.00, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()` instead
    `void` | `getMipSol​(double[] x)` | Deprecated. since 44.00, use `getSolution()`, `getCallbackSolution()`, `getSlacks()`, or `getCallbackSlacks()`.
    `void` | `getMipSol​(double[] x, double[] slack)` | Deprecated. since 44.00, use `getSolution()`, `getCallbackSolution()`, `getSlacks()`, or `getCallbackSlacks()`.
    `double[]` | `getMipSolSlack()` | Deprecated. since 44.00, will be removed in a future release, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()` instead
    `XPRSprob.SolVal` | `getMipSolVal​(int col, int row)` | Deprecated. Deprecated since 44.00, use `getSolution` or `getCallbackSolution` instead.
    `void` | `getMipSolVal​(int col, int row, DoubleHolder p_x, DoubleHolder p_slack)` | Deprecated. since 44.00, use `getSolution()`, `getCallbackSolution()`, `getSlacks()`, or `getCallbackSlacks()`.
    `double[]` | `getMipSolX()` | Deprecated. since 44.00, will be removed in a future release, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()` instead
    `int` | `getMQObj​(int[] start, int[] colind, double[] objqcoef, int maxcoefs, int first, int last)` | Convenience wrapper for `getMQObj(int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)`.
    `void` | `getMQObj​(int[] start, int[] colind, double[] objqcoef, int maxcoefs, IntHolder p_ncoefs, int first, int last)` | Returns the nonzeros in the quadratic objective coefficients matrix for the columns in a given range.
    `XPRSprob.MatrixInfo` | `getMQObj​(int first, int last)` | Get quadratic objective matrix for range of columns.
    `long` | `getMQObj​(long[] start, int[] colind, double[] objqcoef, long maxcoefs, int first, int last)` | Convenience wrapper for `getMQObj(long[], int[], double[], long, com.dashoptimization.LongHolder, int, int)`.
    `void` | `getMQObj​(long[] start, int[] colind, double[] objqcoef, long maxcoefs, LongHolder p_ncoefs, int first, int last)` | Returns the nonzeros in the quadratic objective coefficients matrix for the columns in a given range.
    `java.lang.String` | `getName​(int type, int elt)` | Get the name of a single element.
    `java.lang.String` | `getName​(XPRSenumerations.Namespaces type, int elt)` | Get the name of a single element.
    `XPRSnamelist` | `getNameListObject​(int type)` |
    `java.lang.String[]` | `getNames​(int type, int first, int last)` | Get names.
    `void` | `getNames​(int type, java.lang.String[] names, int first, int last)` | Get names.
    `java.lang.String[]` | `getNames​(XPRSenumerations.Namespaces type, int first, int last)` | Get names.
    `void` | `getNames​(XPRSenumerations.Namespaces type, java.lang.String[] names, int first, int last)` | Get names.
    `void` | `getNlpsol​(double[] x, double[] slack, double[] duals, double[] djs)` | Deprecated. since 44.00, use `getSolution()`, `getCallbackSolution()`, `getSlacks()`, or `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, or `getCallbackDuals()`.
    `void` | `getObj​(double[] objcoef, int first, int last)` | Returns the objective function coefficients for the columns in a given range.
    `double` | `getObj​(int x)` | Convenience wrapper for `getObj(double[], int, int)`.
    `double[]` | `getObj​(int first, int last)` | Convenience wrapper for `getObj(double[], int, int)`.
    `double` | `getObjDblAttrib​(int solveidx, int attrib)` | Convenience wrapper for `getObjDblAttrib(int,int,com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `getObjDblAttrib​(int solveidx, int attrib, DoubleHolder p_value)` | Retrieves the value of a given double attribute associated with a multi-objective solve.
    `double` | `getObjDblControl​(int objidx, XPRSenumerations.ObjControl control)` | Convenience wrapper for `getObjDblControl(int,XPRSenumerations.ObjControl,com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `getObjDblControl​(int objidx, XPRSenumerations.ObjControl control, DoubleHolder p_value)` | Retrieves the value of a given double control parameter associated with an objective function.
    `int` | `getObjIntAttrib​(int solveidx, int attrib)` | Convenience wrapper for `getObjIntAttrib(int,int,com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `getObjIntAttrib​(int solveidx, int attrib, IntHolder p_value)` | Retrieves the value of a given integer attribute associated with a multi-objective solve.
    `void` | `getObjIntAttrib​(int solveidx, int attrib, LongHolder p_value)` | Retrieves the value of a given integer attribute associated with a multi-objective solve.
    `int` | `getObjIntControl​(int objidx, XPRSenumerations.ObjControl control)` | Convenience wrapper for `getObjIntControl(int,XPRSenumerations.ObjControl,com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `getObjIntControl​(int objidx, XPRSenumerations.ObjControl control, IntHolder p_value)` | Retrieves the value of a given integer control parameter associated with an objective.
    `long` | `getObjLongAttrib​(int solveidx, int attrib)` | Convenience wrapper for `getObjIntAttrib(int,int,com.dashoptimization.LongHolder)` that returns the output argument.
    `void` | `getObjN​(int objidx, double[] objcoef, int first, int last)` | For a given objective function, returns the objective coefficients for the columns in a given range.
    `void` | `getPivotOrder​(int[] pivotorder)` | Returns the pivot order of the basic variables.
    `void` | `getPivots​(int enter, int[] outlist, double[] x, DoubleHolder p_objval, IntHolder p_npivots, int maxpivots)` | Returns a list of potential leaving variables if a specified variable enters the basis.
    `void` | `getPresolveBasis​(int[] rowstat, int[] colstat)` | Returns the current basis from memory into the user's data areas.
    `void` | `getPresolveMap​(int[] rowmap, int[] colmap)` | Returns the mapping of the row and column numbers from the presolve problem back to the original problem.
    `XPRSprob.Solution` | `getPresolveSol()` | Get a solution.
    `void` | `getPresolveSol​(double[] x)` | Convenience wrapper for `getPresolveSol(double[], double[], double[], double[])`.
    `void` | `getPresolveSol​(double[] x, double[] slack, double[] duals, double[] djs)` | Returns the solution for the presolved problem from memory.
    `double[]` | `getPresolveSolDjs()` | Get the djs values of a solution.
    `double[]` | `getPresolveSolDuals()` | Get the duals values of a solution.
    `double[]` | `getPresolveSolSlack()` | Get the slack values of a solution.
    `double[]` | `getPresolveSolX()` | Get the x values of a solution.
    `boolean` | `getPrimalRay​(double[] ray)` | Get primal ray.
    `void` | `getPrimalRay​(double[] ray, IntHolder p_hasray)` | Retrieves a primal ray (primal unbounded direction) for the current problem, if the problem is found to be unbounded.
    `java.lang.String` | `getProbName()` | Convenience wrapper for `getProbName(com.dashoptimization.StringHolder)`.
    `void` | `getProbName​(StringHolder name)` | Returns the current problem name.
    `void` | `getPwlCons​(int[] colind, int[] resultant, int[] start, double[] xval, double[] yval, int maxpoints, IntHolder p_npoints, int first, int last)` | Returns the piecewise linear constraints `y = f(x)` in a given range.
    `void` | `getPwlCons​(int[] colind, int[] resultant, long[] start, double[] xval, double[] yval, long maxpoints, LongHolder p_npoints, int first, int last)` | Returns the piecewise linear constraints `y = f(x)` in a given range.
    `XPRSprob.PWLInfo` | `getPwlCons​(int first, int last)` | Query a range of PWL constraints.
    `java.lang.String` | `getPWLName​(int index)` | Get a PWL constraint name.
    `java.lang.String[]` | `getPWLNames​(int first, int last)` | Get names of PWL constraints.
    `double` | `getQObj​(int objqcol1, int objqcol2)` | Convenience wrapper for `getQObj(int,int,com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `getQObj​(int objqcol1, int objqcol2, DoubleHolder p_objqcoef)` | Returns a single quadratic objective function coefficient corresponding to the variable pair `(objqcol1, objqcol2)` of the Hessian matrix.
    `double` | `getQRowCoeff​(int row, int rowqcol1, int rowqcol2)` | Convenience wrapper for `getQRowCoeff(int,int,int,com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `getQRowCoeff​(int row, int rowqcol1, int rowqcol2, DoubleHolder p_rowqcoef)` | Returns a single quadratic constraint coefficient corresponding to the variable pair ( `rowqcol1`, `rowqcol2`) of the Hessian of a given constraint.
    `int[]` | `getQRowIndices()` | Get quadratic rows.
    `int` | `getQRowQMatrix​(int row, int[] start, int[] colind, double[] rowqcoef, int maxcoefs, int first, int last)` | Convenience wrapper for `getQRowQMatrix(int, int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)`.
    `void` | `getQRowQMatrix​(int row, int[] start, int[] colind, double[] rowqcoef, int maxcoefs, IntHolder p_ncoefs, int first, int last)` | Returns the nonzeros in a quadratic constraint coefficients matrix for the columns in a given range.
    `XPRSprob.MatrixTriplets` | `getQRowQMatrixTriplets​(int row)` | Get quadratic row.
    `int` | `getQRowQMatrixTriplets​(int row, int[] rowqcol1, int[] rowqcol2, double[] rowqcoef)` | Convenience wrapper for `getQRowQMatrixTriplets(int, com.dashoptimization.IntHolder, int[], int[], double[])`.
    `void` | `getQRowQMatrixTriplets​(int row, IntHolder p_ncoefs, int[] rowqcol1, int[] rowqcol2, double[] rowqcoef)` | Returns the nonzeros in a quadratic constraint coefficients matrix as triplets (index pairs with coefficients).
    `int` | `getQRows()` | Convenience wrapper for `getQRows(com.dashoptimization.IntHolder, int[])`.
    `int` | `getQRows​(int[] rowind)` | Convenience wrapper for `getQRows(com.dashoptimization.IntHolder, int[])`.
    `void` | `getQRows​(IntHolder p_nrows, int[] rowind)` | Returns the list indices of the rows that have quadratic coefficients.
    `double` | `getRedCost​(int index)` | Convenience wrapper for `getRedCosts(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...
    `double` | `getRedCost​(IntHolder status, int index)` | Convenience wrapper for `getRedCosts(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value.
    `double[]` | `getRedCosts()` | Convenience wrapper for `getRedCosts(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements.
    `double[]` | `getRedCosts​(int first, int last)` | Convenience wrapper for `getRedCosts(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getRedCosts​(IntHolder status)` | Convenience wrapper for `getRedCosts(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements.
    `void` | `getRedCosts​(IntHolder status, double[] djs, int first, int last)` | Returns the reduced costs from the incumbent solution during or after optimization of a continuous problem with `optimize`, `lpOptimize` or `nlpOptimize`.
    `double[]` | `getRedCosts​(IntHolder status, int first, int last)` | Convenience wrapper for `getRedCosts(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array.
    `void` | `getRHS​(double[] rhs, int first, int last)` | Returns the right hand side elements for the rows in a given range.
    `double` | `getRHS​(int x)` | Convenience wrapper for `getRHS(double[], int, int)`.
    `double[]` | `getRHS​(int first, int last)` | Convenience wrapper for `getRHS(double[], int, int)`.
    `void` | `getRHSrange​(double[] rng, int first, int last)` | Returns the right hand side range values for the rows in a given range.
    `double` | `getRHSrange​(int x)` | Convenience wrapper for `getRHSrange(double[], int, int)`.
    `double[]` | `getRHSrange​(int first, int last)` | Convenience wrapper for `getRHSrange(double[], int, int)`.
    `int` | `getRowBasisVal​(int row)` | Get basis status for a row.
    `int` | `getRowFlags​(int x)` | Convenience wrapper for `getRowFlags(int[], int, int)`.
    `void` | `getRowFlags​(int[] flags, int first, int last)` | Retrieve if a range of rows have been set up as special rows.
    `int[]` | `getRowFlags​(int first, int last)` | Convenience wrapper for `getRowFlags(int[], int, int)`.
    `java.lang.String` | `getRowName​(int index)` | Get a row name.
    `java.lang.String[]` | `getRowNames​(int first, int last)` | Get names of rows.
    `int` | `getRows​(int[] start, int[] colind, double[] colcoef, int maxcoefs, int first, int last)` | Convenience wrapper for `getRows(int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)`.
    `void` | `getRows​(int[] start, int[] colind, double[] colcoef, int maxcoefs, IntHolder p_ncoefs, int first, int last)` | Returns the nonzeros in the constraint matrix for the rows in a given range.
    `XPRSprob.MatrixInfo` | `getRows​(int first, int last)` | Get range of rows.
    `long` | `getRows​(long[] start, int[] colind, double[] colcoef, long maxcoefs, int first, int last)` | Convenience wrapper for `getRows(long[], int[], double[], long, com.dashoptimization.LongHolder, int, int)`.
    `void` | `getRows​(long[] start, int[] colind, double[] colcoef, long maxcoefs, LongHolder p_ncoefs, int first, int last)` | Returns the nonzeros in the constraint matrix for the rows in a given range.
    `void` | `getRowType​(byte[] rowtype, int first, int last)` | Returns the row types for the rows in a given range.
    `byte` | `getRowType​(int x)` | Convenience wrapper for `getRowType(byte[], int, int)`.
    `byte[]` | `getRowType​(int first, int last)` | Convenience wrapper for `getRowType(byte[], int, int)`.
    `void` | `getScale​(int[] rowscale, int[] colscale)` | Returns the the current scaling of the matrix.
    `XPRSprob.InfeasInfo` | `getScaledInfeas()` | Get scaled infeasibilities.
    `void` | `getScaledInfeas​(IntHolder p_nprimalcols, IntHolder p_nprimalrows, IntHolder p_ndualrows, IntHolder p_ndualcols, int[] x, int[] slack, int[] duals, int[] djs)` | Returns a list primal and dual variables that are infeasible for the scaled original problem.
    `XPRSprob.MIPEntityInfo` | `getSetDefinitions()` | Get information about SOS.
    `java.lang.String` | `getSetName​(int index)` | Get a set (SOS) name.
    `java.lang.String[]` | `getSetNames​(int first, int last)` | Get names of sets (SOS).
    `XPRSprob.MIPEntityInfo` | `getSets()` | Deprecated. since 44.00, use getSetDefinitions() instead
    `double` | `getSlack​(int index)` | Convenience wrapper for `getSlacks(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...
    `double` | `getSlack​(IntHolder status, int index)` | Convenience wrapper for `getSlacks(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value.
    `double[]` | `getSlacks()` | Convenience wrapper for `getSlacks(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements.
    `double[]` | `getSlacks​(int first, int last)` | Convenience wrapper for `getSlacks(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getSlacks​(IntHolder status)` | Convenience wrapper for `getSlacks(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements.
    `void` | `getSlacks​(IntHolder status, double[] slacks, int first, int last)` | Returns the slack values from the incumbent solution during or after optimization with `optimize`, `mipOptimize`, `lpOptimize` or `nlpOptimize`.
    `double[]` | `getSlacks​(IntHolder status, int first, int last)` | Convenience wrapper for `getSlacks(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array.
    `XPRSprob.Solution` | `getSol()` | Deprecated. since 41.00, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, `getCallbackDuals()` instead
    `void` | `getSol​(double[] x)` | Deprecated. since 41.00.
    `void` | `getSol​(double[] x, double[] slack, double[] duals, double[] djs)` | Deprecated. since 41.00.
    `double[]` | `getSolDjs()` | Deprecated. since 41.00, will be removed in a future release, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, `getCallbackDuals()` instead
    `double[]` | `getSolDuals()` | Deprecated. since 41.00, will be removed in a future release, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, `getCallbackDuals()` instead
    `double[]` | `getSolSlack()` | Deprecated. since 41.00, will be removed in a future release, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, `getCallbackDuals()` instead
    `double[]` | `getSolution()` | Convenience wrapper for `getSolution(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements.
    `double` | `getSolution​(int index)` | Convenience wrapper for `getSolution(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...
    `double[]` | `getSolution​(int first, int last)` | Convenience wrapper for `getSolution(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getSolution​(IntHolder status)` | Convenience wrapper for `getSolution(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements.
    `void` | `getSolution​(IntHolder status, double[] x, int first, int last)` | Returns the incumbent solution during or after optimization with `optimize`, `mipOptimize`, `lpOptimize` or `nlpOptimize`.
    `double` | `getSolution​(IntHolder status, int index)` | Convenience wrapper for `getSolution(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value.
    `double[]` | `getSolution​(IntHolder status, int first, int last)` | Convenience wrapper for `getSolution(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array.
    `double[]` | `getSolX()` | Deprecated. since 41.00, will be removed in a future release, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, `getCallbackDuals()` instead
    `java.lang.String` | `getStrAttrib​(int _index)` |
    `void` | `getStrAttrib​(int _index, StringHolder _cvalue)` |
    `java.lang.String` | `getStrControl​(int _index)` |
    `void` | `getStrControl​(int _index, StringHolder _svalue)` |
    `void` | `getStringControl​(int control, StringHolder value, int maxbytes, IntHolder p_nbytes)` | Returns the value of a given string control parameters.
    `void` | `getStrStringAttrib​(int attrib, StringHolder value, int maxbytes, IntHolder p_nbytes)` | Enables users to recover the values of various string problem attributes.
    `void` | `getUB​(double[] ub, int first, int last)` | Returns the upper bounds for the columns in a given range.
    `double` | `getUB​(int x)` | Convenience wrapper for `getUB(double[], int, int)`.
    `double[]` | `getUB​(int first, int last)` | Convenience wrapper for `getUB(double[], int, int)`.
    `int` | `getUnbVec()` | Convenience wrapper for `getUnbVec(com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `getUnbVec​(IntHolder p_seq)` | Returns the index vector which causes the primal simplex or dual simplex algorithm to determine that a matrix is primal or dual unbounded respectively.
    `void` | `iISAll()` | Deprecated. use IISAll instead
    `void` | `IISAll()` | Performs an automated search for independent Irreducible Infeasible Sets (IIS) in an infeasible problem.
    `void` | `iISIsolations​(int number)` | Deprecated. use IISIsolations instead
    `void` | `IISIsolations​(int iis)` | Performs the isolation identification procedure for an Irreducible Infeasible Set (IIS).
    `void` | `iISStatus​(IntHolder iiscount, int[] rowsizes, int[] colsizes, double[] suminfeas, int[] numinfeas)` | Deprecated. use IISStatus instead
    `XPRSprob.IISStatusInfo` | `IISStatus()` | Get the IIS status.
    `void` | `IISStatus​(IntHolder p_niis, int[] nrows, int[] ncols, double[] suminfeas, int[] numinfeas)` | Returns statistics on the Irreducible Infeasible Sets (IIS) found so far by `firstIIS` ( `IIS`), `nextIIS` ( `IIS` `-n`) or `iISAll` ( `IIS` `-a`).
    `void` | `interrupt()` | Convenience wrapper for `interrupt(XPRSenumerations.StopType)`.
    `void` | `interrupt​(int type)` | Deprecated. replaced by `interrupt(com.dashoptimization.XPRSenumerations.StopType)`
    `void` | `interrupt​(XPRSenumerations.StopType reason)` | Interrupts the Optimizer algorithms.
    `int` | `intVar()` | Deprecated. since 43.00, use `addColumn()` instead
    `int` | `intVar​(double lb, double ub)` | Deprecated. since 43.00, use `addColumn()` instead
    `int` | `intVar​(double lb, double ub, java.lang.String name)` | Deprecated. since 43.00, use `addColumn()` instead
    `int` | `intVar​(java.lang.String name)` | Deprecated. since 43.00, use `addColumn()` instead
    `int[]` | `intVarArray​(int count, double[] lb, double[] ub, java.lang.String[] name)` | Deprecated. since 43.00, use `addColumns()` instead
    `int[]` | `intVarArray​(int count, double lb, double ub, java.util.function.Function<java.lang.Integer,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `int[]` | `intVarArray​(int count, java.util.function.Function<java.lang.Integer,​java.lang.Double> lb, java.util.function.Function<java.lang.Integer,​java.lang.Double> ub, java.util.function.Function<java.lang.Integer,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> int[]` | `intVarArray​(java.util.Collection<T> objs, double lb, double ub, java.util.function.Function<T,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> int[]` | `intVarArray​(java.util.Collection<T> objs, java.util.function.Function<T,​java.lang.Double> lb, java.util.function.Function<T,​java.lang.Double> ub, java.util.function.Function<T,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> java.util.Map<T,​java.lang.Integer>` | `intVarMap​(java.util.Collection<T> objs, java.util.function.Function<T,​java.lang.Double> lb, java.util.function.Function<T,​java.lang.Double> ub, java.util.function.Function<T,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> java.util.Map<T,​java.lang.Integer>` | `intVarMap​(java.util.Collection<T> objs, java.util.function.Function<T,​java.lang.Double> lb, java.util.function.Function<T,​java.lang.Double> ub, java.util.function.Function<T,​java.lang.String> name, java.util.Map<T,​java.lang.Integer> map)` | Deprecated. since 43.00, use `addColumns()` instead
    `void` | `loadBasis​(int[] rowstat, int[] colstat)` | Loads a basis from the user's areas.
    `void` | `loadBranchDirs​(int x, int value)` | Convenience wrapper for `loadBranchDirs(int, int[], int[])`.
    `void` | `loadBranchDirs​(int ncols, int[] colind, int[] dir)` | Loads directives into the current problem to specify which MIP entities the Optimizer should continue to branch on when a node solution is integer feasible.
    `void` | `loadCuts​(int cuttype, int interp)` | Convenience wrapper for `loadCuts(int, int, int, XPRScut[])`.
    `void` | `loadCuts​(int cuttype, int interp, int ncuts, XPRScut[] cutind)` | Loads cuts from the cut pool into the matrix.
    `void` | `loadCuts​(int ncuts, XPRScut[] cutind)` | Convenience wrapper for `loadCuts(int, int, int, XPRScut[])`.
    `void` | `loadDelayedRows​(int nrows, int[] rowind)` | Specifies that a set of rows in the matrix will be treated as delayed rows during a tree search.
    `void` | `loadDirs​(int ndirs, int[] colind, int[] priority, byte[] dir, double[] uppseudo, double[] downpseudo)` | Loads directives into the matrix.
    `void` | `loadGlobal​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, int[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, int nentities, int nsets, byte[] coltype, int[] entind, double[] limit, byte[] settype, int[] setstart, int[] setind, double[] refval)` | Deprecated. Deprecated since 40.01, use `loadMIP(String, int, int, byte[], double[], double[], double[], int[], int[], int[], double[], double[], double[], int, int, byte[], int[], double[], byte[], int[], int[], double[])` instead.
    `void` | `loadGlobal​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, long[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, int nentities, int nsets, byte[] coltype, int[] entind, double[] limit, byte[] settype, long[] setstart, int[] setind, double[] refval)` | Deprecated. Deprecated since 40.01, use `loadMIP(String, int, int, byte[], double[], double[], double[], long[], int[], int[], double[], double[], double[], int, int, byte[], int[], double[], byte[], long[], int[], double[])` instead.
    `void` | `loadLp()` | Load this instance with an empty LP.
    `void` | `loadLp​(java.lang.String probname)` | Load this instance with an empty LP.
    `void` | `loadLp​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, int[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub)` | Enables the user to pass a matrix directly to the Optimizer, rather than reading the matrix from a file.
    `void` | `loadLp​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, long[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub)` | Enables the user to pass a matrix directly to the Optimizer, rather than reading the matrix from a file.
    `int` | `loadLPSol​(double[] x, double[] slack, double[] duals, double[] djs)` | Convenience wrapper for `loadLPSol(double[],double[],double[],double[],com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `loadLPSol​(double[] x, double[] slack, double[] duals, double[] djs, IntHolder p_status)` | Loads an LP solution for the problem into the Optimizer.
    `void` | `loadMIP​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, int[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, int nentities, int nsets, byte[] coltype, int[] entind, double[] limit, byte[] settype, int[] setstart, int[] setind, double[] refval)` | Used to load a MIP problem into the Optimizer data structures.
    `void` | `loadMIP​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, long[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, int nentities, int nsets, byte[] coltype, int[] entind, double[] limit, byte[] settype, long[] setstart, int[] setind, double[] refval)` | Used to load a MIP problem into the Optimizer data structures.
    `int` | `loadMipSol​(double[] x)` | Convenience wrapper for `loadMipSol(double[],com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `loadMipSol​(double[] x, IntHolder p_status)` | Loads a starting MIP solution for the problem into the Optimizer.
    `void` | `loadMIQCQP​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, int[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, int nobjqcoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef, int nqrows, int[] qrowind, int[] nrowqcoefs, int[] rowqcol1, int[] rowqcol2, double[] rowqcoef, int nentities, int nsets, byte[] coltype, int[] entind, double[] limit, byte[] settype, int[] setstart, int[] setind, double[] refval)` | Used to load a mixed integer quadratic problem with quadratic constraints into the Optimizer data structure.
    `void` | `loadMIQCQP​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, long[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, long nobjqcoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef, int nqrows, int[] qrowind, long[] nrowqcoefs, int[] rowqcol1, int[] rowqcol2, double[] rowqcoef, int nentities, int nsets, byte[] coltype, int[] entind, double[] limit, byte[] settype, long[] setstart, int[] setind, double[] refval)` | Used to load a mixed integer quadratic problem with quadratic constraints into the Optimizer data structure.
    `void` | `loadMIQP​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, int[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, int nobjqcoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef, int nentities, int nsets, byte[] coltype, int[] entind, double[] limit, byte[] settype, int[] setstart, int[] setind, double[] refval)` | Used to load a MIQP problem, hence a MIP with quadratic objective coefficients, into the Optimizer data structures.
    `void` | `loadMIQP​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, long[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, long nobjqcoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef, int nentities, int nsets, byte[] coltype, int[] entind, double[] limit, byte[] settype, long[] setstart, int[] setind, double[] refval)` | Used to load a MIQP problem, hence a MIP with quadratic objective coefficients, into the Optimizer data structures.
    `void` | `loadModelCuts​(int nrows, int[] rowind)` | Specifies that a set of rows in the matrix will be treated as model cuts.
    `void` | `loadPresolveBasis​(int[] rowstat, int[] colstat)` | Loads a presolved basis from the user's areas.
    `void` | `loadPresolveDirs​(int ndirs, int[] colind, int[] priority, byte[] dir, double[] uppseudo, double[] downpseudo)` | Loads directives into the presolved matrix.
    `void` | `loadQCQP​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, int[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, int nobjqcoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef, int nqrows, int[] qrowind, int[] nrowqcoefs, int[] rowqcol1, int[] rowqcol2, double[] rowqcoef)` | Used to load a quadratic problem with quadratic side constraints into the Optimizer data structure.
    `void` | `loadQCQP​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, long[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, long nobjqcoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef, int nqrows, int[] qrowind, long[] nrowqcoefs, int[] rowqcol1, int[] rowqcol2, double[] rowqcoef)` | Used to load a quadratic problem with quadratic side constraints into the Optimizer data structure.
    `void` | `loadQCQPGlobal​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, int[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, int nobjqcoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef, int nqrows, int[] qrowind, int[] nrowqcoefs, int[] rowqcol1, int[] rowqcol2, double[] rowqcoef, int nentities, int nsets, byte[] coltype, int[] entind, double[] limit, byte[] settype, int[] setstart, int[] setind, double[] refval)` | Deprecated. Deprecated since 40.01, use `loadMIQCQP(String, int, int, byte[], double[], double[], double[], int[], int[], int[], double[], double[], double[], int, int[], int[], double[], int, int[], int[], int[], int[], double[], int, int, byte[], int[], double[], byte[], int[], int[], double[])` instead.
    `void` | `loadQCQPGlobal​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, long[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, long nobjqcoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef, int nqrows, int[] qrowind, long[] nrowqcoefs, int[] rowqcol1, int[] rowqcol2, double[] rowqcoef, int nentities, int nsets, byte[] coltype, int[] entind, double[] limit, byte[] settype, long[] setstart, int[] setind, double[] refval)` | Deprecated. Deprecated since 40.01, use `loadMIQCQP(String, int, int, byte[], double[], double[], double[], long[], int[], int[], double[], double[], double[], long, int[], int[], double[], int, int[], long[], int[], int[], double[], int, int, byte[], int[], double[], byte[], long[], int[], double[])` instead.
    `void` | `loadQGlobal​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, int[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, int nobjqcoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef, int nentities, int nsets, byte[] coltype, int[] entind, double[] limit, byte[] settype, int[] setstart, int[] setind, double[] refval)` | Deprecated. Deprecated since 40.01, use `loadMIQP(String, int, int, byte[], double[], double[], double[], int[], int[], int[], double[], double[], double[], int, int[], int[], double[], int, int, byte[], int[], double[], byte[], int[], int[], double[])` instead.
    `void` | `loadQGlobal​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, long[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, long nobjqcoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef, int nentities, int nsets, byte[] coltype, int[] entind, double[] limit, byte[] settype, long[] setstart, int[] setind, double[] refval)` | Deprecated. Deprecated since 40.01, use `loadMIQP(String, int, int, byte[], double[], double[], double[], long[], int[], int[], double[], double[], double[], long, int[], int[], double[], int, int, byte[], int[], double[], byte[], long[], int[], double[])` instead.
    `void` | `loadQP​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, int[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, int nobjqcoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef)` | Used to load a quadratic problem into the Optimizer data structure.
    `void` | `loadQP​(java.lang.String probname, int ncols, int nrows, byte[] rowtype, double[] rhs, double[] rng, double[] objcoef, long[] start, int[] collen, int[] rowind, double[] rowcoef, double[] lb, double[] ub, long nobjqcoefs, int[] objqcol1, int[] objqcol2, double[] objqcoef)` | Used to load a quadratic problem into the Optimizer data structure.
    `void` | `loadSecureVecs​(int nrows, int ncols, int[] rowind, int[] colind)` | Allows the user to mark rows and columns in order to prevent the presolve removing these rows and columns from the matrix.
    `void` | `lpOptimize()` | Convenience wrapper for `lpOptimize(String)`.
    `void` | `lpOptimize​(java.lang.String flags)` | This function begins a search for the optimal continuous (LP) solution.
    `void` | `maxim()` | Deprecated. since 38.00, use `optimize()` instead.
    `void` | `maxim​(java.lang.String flags)` | Deprecated. since 38.00, use `optimize()` instead
    `void` | `minim()` | Deprecated. since 38.00, use `optimize()` instead.
    `void` | `minim​(java.lang.String flags)` | Deprecated. since 38.00, use `optimize()` instead
    `void` | `mipOptimize()` | Convenience wrapper for `mipOptimize(String)`.
    `void` | `mipOptimize​(java.lang.String flags)` | This function begins a tree search for the optimal MIP solution.
    `void` | `msAddCustomPreset​(java.lang.String description, int preset, int maxjobs, int ninitial, int[] colind, double[] initial, int nintcontrols, int[] intcontrolid, int[] intcontrolval, int ndblcontrols, int[] dblcontrolid, double[] dblcontrolval, java.lang.Object data)` | A combined version of XSLPmsaddjob and XSLPmsaddpreset.
    `void` | `msAddJob​(java.lang.String description, int ninitial, int[] colind, double[] initial, int nintcontrols, int[] intcontrolid, int[] intcontrolval, int ndblcontrols, int[] dblcontrolid, double[] dblcontrolval, java.lang.Object data)` | Adds a multistart job to the multistart pool
    `void` | `msAddPreset​(java.lang.String description, int preset, int maxjobs, java.lang.Object data)` | Loads a preset of jobs into the multistart job pool.
    `void` | `msClear()` | Removes all scheduled jobs from the multistart job pool
    `int` | `nextIIS()` | Convenience wrapper for `nextIIS(com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `nextIIS​(IntHolder p_status)` | Continues the search for further Irreducible Infeasible Sets (IIS), or calls `firstIIS` ( `IIS`) if no IIS has been identified yet.
    `void` | `nlpAddFormulas​(int ncoefs, int[] rowind, int[] formulastart, int parsed, int[] type, double[] value)` | Add non-linear formulas to the SLP problem.
    `XPRSprob.MultiMapDeltaFunction` | `nlpAddUserFunction​(java.lang.String funcname, int nin, int nout, int options, XPRSprob.MultiMapDeltaFunctor function)` |
    `XPRSprob.MultiMapFunction` | `nlpAddUserFunction​(java.lang.String funcname, int nin, int nout, int options, XPRSprob.MultiMapFunctor function)` |
    `XPRSprob.VecMapDeltaFunction` | `nlpAddUserFunction​(java.lang.String funcname, int nin, int options, XPRSprob.VecMapDeltaFunctor function)` |
    `XPRSprob.VecMapFunction` | `nlpAddUserFunction​(java.lang.String funcname, int nin, int options, XPRSprob.VecMapFunctor function)` |
    `XPRSprob.MapDeltaFunction` | `nlpAddUserFunction​(java.lang.String funcname, int options, XPRSprob.MapDeltaFunctor function)` |
    `XPRSprob.MapFunction` | `nlpAddUserFunction​(java.lang.String funcname, int options, XPRSprob.MapFunctor function)` |
    `void` | `nlpCalcSlacks​(double[] solution, double[] slack)` | Calculate the slack values for the provided solution in the non-linear problem
    `void` | `nlpChgFormula​(int row, int parsed, int[] type, double[] value)` | Add or replace a single matrix formula using a parsed or unparsed formula
    `void` | `nlpChgFormulaStr​(int row, java.lang.String formula)` | Add or replace a single matrix formula using a character string for the formula.
    `void` | `nlpChgFormulaString​(int row, java.lang.String formula)` | Deprecated. since 42.00, use `nlpChgFormulaStr()` instead.
    `void` | `nlpCurrentIV()` | Transfer the current solution to initial values
    `void` | `nlpDelFormulas​(int nformulas, int[] rowind)` | Delete nonlinear formulas from the current problem
    `void` | `nlpDelUserFunction​(int type)` | Delete a user function from the current problem
    `double` | `nlpEvaluateFormula​(int parsed, int[] type, double[] values)` | Convenience wrapper for `nlpEvaluateFormula(int,int[],double[],com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `nlpEvaluateFormula​(int parsed, int[] type, double[] values, DoubleHolder p_value)` | Evaluate a formula using the current values of the variables
    `void` | `nlpGetFormula​(int row, int parsed, int maxtypes, IntHolder p_ntypes, int[] type, double[] value)` | Retrieve a single matrix formula as a formula split into tokens.
    `void` | `nlpGetFormulaRows​(IntHolder p_nformulas, int[] rowind)` | Retrieve the list of positions of the nonlinear formulas in the problem
    `void` | `nlpGetFormulaStr​(int row, StringHolder formula, int maxbytes, IntHolder p_nbytes)` | Retrieve a single matrix formula in a character string.
    `void` | `nlpGetFormulaString​(int row, StringHolder formula, int maxbytes)` | Deprecated. since 42.00.
    `void` | `nlpImportLibFunc​(java.lang.String libname, java.lang.String funcname, LongHolder p_function, IntHolder p_status)` | Imports a function from a library file to be called as a user function
    `void` | `nlpLoadFormulas​(int nnlpcoefs, int[] rowind, int[] formulastart, int parsed, int[] type, double[] value)` | Load non-linear formulas into the SLP problem
    `void` | `nlpOptimize​(java.lang.String flags)` | Maximize or minimize an SLP problem
    `void` | `nlpPostsolveProb()` | Restores the problem to its pre-solve state
    `void` | `nlpPrintEvalInfo()` | Print a summary of any evaluation errors that may have occurred during solving a problem
    `void` | `nlpSetFunctionError()` | Set the function error flag for the problem
    `void` | `nlpSetInitVal​(int x, double value)` | Convenience wrapper for `nlpSetInitVal(int, int[], double[])`.
    `void` | `nlpSetInitVal​(int nvars, int[] colind, double[] initial)` | Set the initial value of a variable
    `void` | `nlpValidate()` | Validate the feasibility of constraints in a converged solution
    `void` | `nlpValidateKKT​(int mode, int respectbasis, int updatemult, double violtarget)` | Validates the first order optimality conditions also known as the Karush-Kuhn-Tucker (KKT) conditions versus the currect solution
    `void` | `nlpValidateRow​(int row)` | Prints an extensive analysis on a given constraint of the SLP problem
    `void` | `nlpValidateVector​(double[] solution, DoubleHolder p_suminf, DoubleHolder p_sumscaledinf, DoubleHolder p_objval)` | Validate the feasibility of constraints for a given solution
    `void` | `objSA​(int ncols, int[] colind, double[] lower, double[] upper)` | Returns upper and lower sensitivity ranges for specified objective function coefficients.
    `int` | `optimize()` | Convenience wrapper for `optimize(String , IntHolder, IntHolder)`.
    `int` | `optimize​(java.lang.String flags)` | Convenience wrapper for `optimize(String , IntHolder, IntHolder)`.
    `void` | `optimize​(java.lang.String flags, IntHolder solvestatus, IntHolder solstatus)` | This function begins a search for the optimal solution of the problem.
    `void` | `pivot​(int enter, int leave)` | Performs a simplex pivot by bringing variable `enter` into the basis and removing `leave`.
    `void` | `postSolve()` | Postsolve the current matrix when it is in a presolved state.
    `void` | `postSolveSol​(double[] prex, double[] origx)` | Postsolves a primal solution formulated in the presolved space into the corresponding solution formulated in the input space.
    `void` | `presolveRow​(char rowtype, int norigcoefs, int[] origcolind, double[] origrowcoef, double origrhs, int maxcoefs, IntHolder p_ncoefs, int[] colind, double[] rowcoef, DoubleHolder p_rhs, IntHolder p_status)` | Presolves a row formulated in terms of the original variables such that it can be added to a presolved matrix.
    `XPRSprob.RowInfo` | `presolveRow​(int[] ind, double[] val, char type, double rhs)` | Presolve a row.
    `XPRSprob.RowInfo` | `presolveRow​(XPRSprob.RowInfo row)` | Presolve a row.
    `void` | `presolveSol​(double[] origx, double[] prex)` | Presolves a primal solution formulated in the input space into the corresponding solution formulated in the presolved space.
    `void` | `printIIS​(int iis)` | Prints a given Irreducible Infeasible Set (IIS) in the log.
    `void` | `readBasis()` | Convenience wrapper for `readBasis(String, String)`.
    `void` | `readBasis​(java.lang.String filename)` | Convenience wrapper for `readBasis(String, String)`.
    `void` | `readBasis​(java.lang.String filename, java.lang.String flags)` | Instructs the Optimizer to read in a previously saved basis from a file.
    `void` | `readBinSol()` | Convenience wrapper for `readBinSol(String, String)`.
    `void` | `readBinSol​(java.lang.String filename)` | Convenience wrapper for `readBinSol(String, String)`.
    `void` | `readBinSol​(java.lang.String filename, java.lang.String flags)` | Reads a solution from a binary solution file.
    `void` | `readDirs()` | Convenience wrapper for `readDirs(String)`.
    `void` | `readDirs​(java.lang.String filename)` | Reads a directives file to help direct the tree search.
    `void` | `readProb​(java.lang.String filename)` | Convenience wrapper for `readProb(String, String)`.
    `void` | `readProb​(java.lang.String filename, java.lang.String flags)` | Reads an (X)MPS or LP format matrix from file.
    `void` | `readSlxSol()` | Convenience wrapper for `readSlxSol(String, String)`.
    `void` | `readSlxSol​(java.lang.String filename)` | Convenience wrapper for `readSlxSol(String, String)`.
    `void` | `readSlxSol​(java.lang.String filename, java.lang.String flags)` | Reads an ASCII solution file [ `.slx`] created by the `writeSlxSol` function.
    `void` | `removeAfterObjectiveListener​(XPRSafterObjectiveListener listener)` | Removes the given AfterObjective listener from the object.
    `void` | `removeAfterObjectiveListener​(XPRSafterObjectiveListener listener, java.lang.Object data)` | Removes the given AfterObjective listener with the given data value from the object.
    `void` | `removeAfterObjectiveListeners()` | Remove all listeners for the AfterObjective callback
    `void` | `removeBarIterationListener​(XPRSbarIterationListener listener)` | Removes the given BarIteration listener from the object.
    `void` | `removeBarIterationListener​(XPRSbarIterationListener listener, java.lang.Object data)` | Removes the given BarIteration listener with the given data value from the object.
    `void` | `removeBarIterationListeners()` | Remove all listeners for the BarIteration callback
    `void` | `removeBarLogListener​(XPRSbarLogListener listener)` | Removes the given BarLog listener from the object.
    `void` | `removeBarLogListener​(XPRSbarLogListener listener, java.lang.Object data)` | Removes the given BarLog listener with the given data value from the object.
    `void` | `removeBarLogListeners()` | Remove all listeners for the BarLog callback
    `void` | `removeBeforeObjectiveListener​(XPRSbeforeObjectiveListener listener)` | Removes the given BeforeObjective listener from the object.
    `void` | `removeBeforeObjectiveListener​(XPRSbeforeObjectiveListener listener, java.lang.Object data)` | Removes the given BeforeObjective listener with the given data value from the object.
    `void` | `removeBeforeObjectiveListeners()` | Remove all listeners for the BeforeObjective callback
    `void` | `removeChangeBranchObjectListener​(XPRSchangeBranchObjectListener listener)` | Removes the given ChangeBranchObject listener from the object.
    `void` | `removeChangeBranchObjectListener​(XPRSchangeBranchObjectListener listener, java.lang.Object data)` | Removes the given ChangeBranchObject listener with the given data value from the object.
    `void` | `removeChangeBranchObjectListeners()` | Remove all listeners for the ChangeBranchObject callback
    `void` | `removeCheckTimeListener​(XPRScheckTimeListener listener)` | Removes the given CheckTime listener from the object.
    `void` | `removeCheckTimeListener​(XPRScheckTimeListener listener, java.lang.Object data)` | Removes the given CheckTime listener with the given data value from the object.
    `void` | `removeCheckTimeListeners()` | Remove all listeners for the CheckTime callback
    `void` | `removeComputeRestartListener​(XPRScomputeRestartListener listener)` | Removes the given ComputeRestart listener from the object.
    `void` | `removeComputeRestartListener​(XPRScomputeRestartListener listener, java.lang.Object data)` | Removes the given ComputeRestart listener with the given data value from the object.
    `void` | `removeComputeRestartListeners()` | Remove all listeners for the ComputeRestart callback
    `void` | `removeCutLogListener​(XPRScutLogListener listener)` | Removes the given CutLog listener from the object.
    `void` | `removeCutLogListener​(XPRScutLogListener listener, java.lang.Object data)` | Removes the given CutLog listener with the given data value from the object.
    `void` | `removeCutLogListeners()` | Remove all listeners for the CutLog callback
    `void` | `removeCutRoundListener​(XPRScutRoundListener listener)` | Removes the given CutRound listener from the object.
    `void` | `removeCutRoundListener​(XPRScutRoundListener listener, java.lang.Object data)` | Removes the given CutRound listener with the given data value from the object.
    `void` | `removeCutRoundListeners()` | Remove all listeners for the CutRound callback
    `void` | `removeDestroyMTListener​(XPRSdestroyMTListener listener)` | Removes the given DestroyMT listener from the object.
    `void` | `removeDestroyMTListener​(XPRSdestroyMTListener listener, java.lang.Object data)` | Removes the given DestroyMT listener with the given data value from the object.
    `void` | `removeDestroyMTListeners()` | Remove all listeners for the DestroyMT callback
    `void` | `removeGapNotifyListener​(XPRSgapNotifyListener listener)` | Removes the given GapNotify listener from the object.
    `void` | `removeGapNotifyListener​(XPRSgapNotifyListener listener, java.lang.Object data)` | Removes the given GapNotify listener with the given data value from the object.
    `void` | `removeGapNotifyListeners()` | Remove all listeners for the GapNotify callback
    `void` | `removeInfNodeListener​(XPRSinfNodeListener listener)` | Removes the given InfNode listener from the object.
    `void` | `removeInfNodeListener​(XPRSinfNodeListener listener, java.lang.Object data)` | Removes the given InfNode listener with the given data value from the object.
    `void` | `removeInfNodeListeners()` | Remove all listeners for the InfNode callback
    `void` | `removeIntSolListener​(XPRSintSolListener listener)` | Removes the given IntSol listener from the object.
    `void` | `removeIntSolListener​(XPRSintSolListener listener, java.lang.Object data)` | Removes the given IntSol listener with the given data value from the object.
    `void` | `removeIntSolListeners()` | Remove all listeners for the IntSol callback
    `void` | `removeLpLogListener​(XPRSlpLogListener listener)` | Removes the given LpLog listener from the object.
    `void` | `removeLpLogListener​(XPRSlpLogListener listener, java.lang.Object data)` | Removes the given LpLog listener with the given data value from the object.
    `void` | `removeLpLogListeners()` | Remove all listeners for the LpLog callback
    `void` | `removeMessageListener​(XPRSmessageListener listener)` | Removes the given Message listener from the object.
    `void` | `removeMessageListener​(XPRSmessageListener listener, java.lang.Object data)` | Removes the given Message listener with the given data value from the object.
    `void` | `removeMessageListeners()` | Remove all listeners for the Message callback
    `void` | `removeMipLogListener​(XPRSmipLogListener listener)` | Removes the given MipLog listener from the object.
    `void` | `removeMipLogListener​(XPRSmipLogListener listener, java.lang.Object data)` | Removes the given MipLog listener with the given data value from the object.
    `void` | `removeMipLogListeners()` | Remove all listeners for the MipLog callback
    `void` | `removeMipThreadListener​(XPRSmipThreadListener listener)` | Removes the given MipThread listener from the object.
    `void` | `removeMipThreadListener​(XPRSmipThreadListener listener, java.lang.Object data)` | Removes the given MipThread listener with the given data value from the object.
    `void` | `removeMipThreadListeners()` | Remove all listeners for the MipThread callback
    `void` | `removeMsgHandlerListener​(XPRSmsgHandlerListener listener)` | Removes the given MsgHandler listener from the object.
    `void` | `removeMsgHandlerListener​(XPRSmsgHandlerListener listener, java.lang.Object data)` | Removes the given MsgHandler listener with the given data value from the object.
    `void` | `removeMsgHandlerListeners()` | Remove all listeners for the MsgHandler callback
    `void` | `removeMsJobEndListener​(XPRSmsJobEndListener listener)` | Removes the given MsJobEnd listener from the object.
    `void` | `removeMsJobEndListener​(XPRSmsJobEndListener listener, java.lang.Object data)` | Removes the given MsJobEnd listener with the given data value from the object.
    `void` | `removeMsJobEndListeners()` | Remove all listeners for the MsJobEnd callback
    `void` | `removeMsJobStartListener​(XPRSmsJobStartListener listener)` | Removes the given MsJobStart listener from the object.
    `void` | `removeMsJobStartListener​(XPRSmsJobStartListener listener, java.lang.Object data)` | Removes the given MsJobStart listener with the given data value from the object.
    `void` | `removeMsJobStartListeners()` | Remove all listeners for the MsJobStart callback
    `void` | `removeMsWinnerListener​(XPRSmsWinnerListener listener)` | Removes the given MsWinner listener from the object.
    `void` | `removeMsWinnerListener​(XPRSmsWinnerListener listener, java.lang.Object data)` | Removes the given MsWinner listener with the given data value from the object.
    `void` | `removeMsWinnerListeners()` | Remove all listeners for the MsWinner callback
    `void` | `removeNewnodeListener​(XPRSnewnodeListener listener)` | Removes the given Newnode listener from the object.
    `void` | `removeNewnodeListener​(XPRSnewnodeListener listener, java.lang.Object data)` | Removes the given Newnode listener with the given data value from the object.
    `void` | `removeNewnodeListeners()` | Remove all listeners for the Newnode callback
    `void` | `removeNlpCoefEvalErrorListener​(XPRSnlpCoefEvalErrorListener listener)` | Removes the given NlpCoefEvalError listener from the object.
    `void` | `removeNlpCoefEvalErrorListener​(XPRSnlpCoefEvalErrorListener listener, java.lang.Object data)` | Removes the given NlpCoefEvalError listener with the given data value from the object.
    `void` | `removeNlpCoefEvalErrorListeners()` | Remove all listeners for the NlpCoefEvalError callback
    `void` | `removeNodeCutoffListener​(XPRSnodeCutoffListener listener)` | Removes the given NodeCutoff listener from the object.
    `void` | `removeNodeCutoffListener​(XPRSnodeCutoffListener listener, java.lang.Object data)` | Removes the given NodeCutoff listener with the given data value from the object.
    `void` | `removeNodeCutoffListeners()` | Remove all listeners for the NodeCutoff callback
    `void` | `removeNodeLPSolvedListener​(XPRSnodeLPSolvedListener listener)` | Removes the given NodeLPSolved listener from the object.
    `void` | `removeNodeLPSolvedListener​(XPRSnodeLPSolvedListener listener, java.lang.Object data)` | Removes the given NodeLPSolved listener with the given data value from the object.
    `void` | `removeNodeLPSolvedListeners()` | Remove all listeners for the NodeLPSolved callback
    `void` | `removeOptNodeListener​(XPRSoptNodeListener listener)` | Removes the given OptNode listener from the object.
    `void` | `removeOptNodeListener​(XPRSoptNodeListener listener, java.lang.Object data)` | Removes the given OptNode listener with the given data value from the object.
    `void` | `removeOptNodeListeners()` | Remove all listeners for the OptNode callback
    `void` | `removePreIntsolListener​(XPRSpreIntsolListener listener)` | Removes the given PreIntsol listener from the object.
    `void` | `removePreIntsolListener​(XPRSpreIntsolListener listener, java.lang.Object data)` | Removes the given PreIntsol listener with the given data value from the object.
    `void` | `removePreIntsolListeners()` | Remove all listeners for the PreIntsol callback
    `void` | `removePreNodeListener​(XPRSpreNodeListener listener)` | Removes the given PreNode listener from the object.
    `void` | `removePreNodeListener​(XPRSpreNodeListener listener, java.lang.Object data)` | Removes the given PreNode listener with the given data value from the object.
    `void` | `removePreNodeListeners()` | Remove all listeners for the PreNode callback
    `void` | `removePresolveListener​(XPRSpresolveListener listener)` | Removes the given Presolve listener from the object.
    `void` | `removePresolveListener​(XPRSpresolveListener listener, java.lang.Object data)` | Removes the given Presolve listener with the given data value from the object.
    `void` | `removePresolveListeners()` | Remove all listeners for the Presolve callback
    `void` | `removeSlpCascadeEndListener​(XPRSslpCascadeEndListener listener)` | Removes the given SlpCascadeEnd listener from the object.
    `void` | `removeSlpCascadeEndListener​(XPRSslpCascadeEndListener listener, java.lang.Object data)` | Removes the given SlpCascadeEnd listener with the given data value from the object.
    `void` | `removeSlpCascadeEndListeners()` | Remove all listeners for the SlpCascadeEnd callback
    `void` | `removeSlpCascadeStartListener​(XPRSslpCascadeStartListener listener)` | Removes the given SlpCascadeStart listener from the object.
    `void` | `removeSlpCascadeStartListener​(XPRSslpCascadeStartListener listener, java.lang.Object data)` | Removes the given SlpCascadeStart listener with the given data value from the object.
    `void` | `removeSlpCascadeStartListeners()` | Remove all listeners for the SlpCascadeStart callback
    `void` | `removeSlpCascadeVarFailListener​(XPRSslpCascadeVarFailListener listener)` | Removes the given SlpCascadeVarFail listener from the object.
    `void` | `removeSlpCascadeVarFailListener​(XPRSslpCascadeVarFailListener listener, java.lang.Object data)` | Removes the given SlpCascadeVarFail listener with the given data value from the object.
    `void` | `removeSlpCascadeVarFailListeners()` | Remove all listeners for the SlpCascadeVarFail callback
    `void` | `removeSlpCascadeVarListener​(XPRSslpCascadeVarListener listener)` | Removes the given SlpCascadeVar listener from the object.
    `void` | `removeSlpCascadeVarListener​(XPRSslpCascadeVarListener listener, java.lang.Object data)` | Removes the given SlpCascadeVar listener with the given data value from the object.
    `void` | `removeSlpCascadeVarListeners()` | Remove all listeners for the SlpCascadeVar callback
    `void` | `removeSlpConstructListener​(XPRSslpConstructListener listener)` | Removes the given SlpConstruct listener from the object.
    `void` | `removeSlpConstructListener​(XPRSslpConstructListener listener, java.lang.Object data)` | Removes the given SlpConstruct listener with the given data value from the object.
    `void` | `removeSlpConstructListeners()` | Remove all listeners for the SlpConstruct callback
    `void` | `removeSlpDrColListener​(XPRSslpDrColListener listener)` | Removes the given SlpDrCol listener from the object.
    `void` | `removeSlpDrColListener​(XPRSslpDrColListener listener, java.lang.Object data)` | Removes the given SlpDrCol listener with the given data value from the object.
    `void` | `removeSlpDrColListeners()` | Remove all listeners for the SlpDrCol callback
    `void` | `removeSlpIntSolListener​(XPRSslpIntSolListener listener)` | Removes the given SlpIntSol listener from the object.
    `void` | `removeSlpIntSolListener​(XPRSslpIntSolListener listener, java.lang.Object data)` | Removes the given SlpIntSol listener with the given data value from the object.
    `void` | `removeSlpIntSolListeners()` | Remove all listeners for the SlpIntSol callback
    `void` | `removeSlpIterEndListener​(XPRSslpIterEndListener listener)` | Removes the given SlpIterEnd listener from the object.
    `void` | `removeSlpIterEndListener​(XPRSslpIterEndListener listener, java.lang.Object data)` | Removes the given SlpIterEnd listener with the given data value from the object.
    `void` | `removeSlpIterEndListeners()` | Remove all listeners for the SlpIterEnd callback
    `void` | `removeSlpIterStartListener​(XPRSslpIterStartListener listener)` | Removes the given SlpIterStart listener from the object.
    `void` | `removeSlpIterStartListener​(XPRSslpIterStartListener listener, java.lang.Object data)` | Removes the given SlpIterStart listener with the given data value from the object.
    `void` | `removeSlpIterStartListeners()` | Remove all listeners for the SlpIterStart callback
    `void` | `removeSlpIterVarListener​(XPRSslpIterVarListener listener)` | Removes the given SlpIterVar listener from the object.
    `void` | `removeSlpIterVarListener​(XPRSslpIterVarListener listener, java.lang.Object data)` | Removes the given SlpIterVar listener with the given data value from the object.
    `void` | `removeSlpIterVarListeners()` | Remove all listeners for the SlpIterVar callback
    `void` | `removeSlpPreUpdateLinearizationListener​(XPRSslpPreUpdateLinearizationListener listener)` | Removes the given SlpPreUpdateLinearization listener from the object.
    `void` | `removeSlpPreUpdateLinearizationListener​(XPRSslpPreUpdateLinearizationListener listener, java.lang.Object data)` | Removes the given SlpPreUpdateLinearization listener with the given data value from the object.
    `void` | `removeSlpPreUpdateLinearizationListeners()` | Remove all listeners for the SlpPreUpdateLinearization callback
    `void` | `removeUserSolNotifyListener​(XPRSuserSolNotifyListener listener)` | Removes the given UserSolNotify listener from the object.
    `void` | `removeUserSolNotifyListener​(XPRSuserSolNotifyListener listener, java.lang.Object data)` | Removes the given UserSolNotify listener with the given data value from the object.
    `void` | `removeUserSolNotifyListeners()` | Remove all listeners for the UserSolNotify callback
    `int` | `repairInfeas​(char penalty, char phase2, char flags, double lepref, double gepref, double lbpref, double ubpref, double delta)` | Convenience wrapper for `repairInfeas(com.dashoptimization.IntHolder,char,char,char,double,double,double,double,double)` that returns the output argument.
    `void` | `repairInfeas​(IntHolder p_status, char penalty, char phase2, char flags, double lepref, double gepref, double lbpref, double ubpref, double delta)` | Provides a simplified interface for `repairWeightedInfeas`.
    `int` | `repairWeightedInfeas​(double[] lepref, double[] gepref, double[] lbpref, double[] ubpref, char phase2, double delta, java.lang.String flags)` | Convenience wrapper for `repairWeightedInfeas(com.dashoptimization.IntHolder,double[],double[],double[],double[],char,double,String)` that returns the output argument.
    `void` | `repairWeightedInfeas​(IntHolder p_status, double[] lepref, double[] gepref, double[] lbpref, double[] ubpref, char phase2, double delta, java.lang.String flags)` | By relaxing a set of selected constraints and bounds of an infeasible problem, it attempts to identify a 'solution' that violates the selected set of constraints and bounds minimally, while satisfying all other constraints and bounds.
    `int` | `repairWeightedInfeasBounds​(double[] lepref, double[] gepref, double[] lbpref, double[] ubpref, double[] lerelax, double[] gerelax, double[] lbrelax, double[] ubrelax, char phase2, double delta, java.lang.String flags)` | Convenience wrapper for `repairWeightedInfeasBounds(com.dashoptimization.IntHolder,double[],double[],double[],double[],double[],double[],double[],double[],char,double,String)` that returns the output argument.
    `void` | `repairWeightedInfeasBounds​(IntHolder p_status, double[] lepref, double[] gepref, double[] lbpref, double[] ubpref, double[] lerelax, double[] gerelax, double[] lbrelax, double[] ubrelax, char phase2, double delta, java.lang.String flags)` | An extended version of `repairWeightedInfeas` that allows for bounding the level of relaxation allowed.
    `void` | `restore()` | Convenience wrapper for `restore(String, String)`.
    `void` | `restore​(java.lang.String probname)` | Convenience wrapper for `restore(String, String)`.
    `void` | `restore​(java.lang.String probname, java.lang.String flags)` | Restores the Optimizer's data structures from a file created by `saveAs` ( `SAVE`).
    `void` | `rhsSA​(int nrows, int[] rowind, double[] lower, double[] upper)` | Returns upper and lower sensitivity ranges for specified right hand side (RHS) function coefficients.
    `void` | `save()` | Saves the current data structures, i.e.
    `void` | `saveAs​(java.lang.String filename)` | Saves the current data structures, i.e.
    `void` | `scale​(int[] rowscale, int[] colscale)` | Re-scales the current matrix.
    `void` | `setDblControl​(int control, double value)` | Sets the value of a given double control parameter.
    `void` | `setDefaultControl​(int control)` | Sets a single control to its default value.
    `void` | `setDefaults()` | Sets all controls to their default values.
    `void` | `setIndicator​(int rowind, int colind, int complement)` | Add a single indicator constraint.
    `void` | `setIndicators​(int nrows, int[] rowind, int[] colind, int[] complement)` | Specifies that a set of rows in the matrix will be treated as indicator constraints during a tree search.
    `void` | `setIntControl​(int control, int value)` | Sets the value of a given integer control parameter.
    `void` | `setLogFile​(java.lang.String filename)` | This directs all Optimizer output to a log file.
    `void` | `setLongControl​(int control, long value)` | Sets the value of a given integer control parameter.
    `void` | `setMessageStatus​(int msgcode, int status)` | Manages suppression of messages.
    `void` | `setObjDblControl​(int objidx, XPRSenumerations.ObjControl control, double value)` | Sets the value of a given double control parameter associated with an objective.
    `void` | `setObjective​(int[] ind, double[] val)` | Set objective to a linear function.
    `void` | `setObjective​(int[] ind, double[] val, XPRSenumerations.ObjSense sense)` | Set objective to a linear function.
    `void` | `setObjIntControl​(int objidx, XPRSenumerations.ObjControl control, int value)` | Sets the value of a given integer control parameter associated with an objective.
    `void` | `setProbname​(java.lang.String probname)` | Sets the current problem name.
    `void` | `setStrControl​(int control, java.lang.String value)` | Used to set the value of a given string control parameter.
    `void` | `slpAddCoefs​(int ncoefs, int[] rowind, int[] colind, double[] factor, int[] formulastart, int parsed, int[] type, double[] value)` | Add non-linear coefficients to the SLP problem.
    `void` | `slpCascadeOrder()` | Establish a re-calculation sequence for SLP variables with determining rows.
    `void` | `slpCascadeSol()` | Re-calculate consistent values for SLP variables based on the current values of the remaining variables.
    `void` | `slpChgCascadeNLimit​(int col, int limit)` | Set a variable specific cascade iteration limit
    `void` | `slpChgCCoef​(int row, int col, DoubleHolder factor, java.lang.String formula)` | Deprecated. since 42.00.
    `void` | `slpChgCoef​(int row, int col, DoubleHolder factor, int parsed, int[] type, double[] value)` | Add or change a single matrix coefficient using a parsed or unparsed formula.
    `void` | `slpChgCoefStr​(int row, int col, DoubleHolder factor, java.lang.String formula)` | Add or change a single matrix coefficient using a character string for the formula.
    `void` | `slpChgDeltaType​(int nvars, int[] varind, int[] deltatypes, double[] values)` | Changes the type of the delta assigned to a nonlinear variable
    `void` | `slpChgRowStatus​(int row, IntHolder status)` | Change the status setting of a constraint
    `void` | `slpChgRowWt​(int row, DoubleHolder weight)` | Set or change the initial penalty error weight for a row
    `void` | `slpConstruct()` | Create the full augmented SLP matrix and data structures, ready for optimization
    `void` | `slpDelCoefs​(int x, int value)` | Convenience wrapper for `slpDelCoefs(int, int[], int[])`.
    `void` | `slpDelCoefs​(int ncoefs, int[] rowind, int[] colind)` | Delete coefficients from the current problem.
    `double` | `slpEvaluateCoef​(int row, int col)` | Convenience wrapper for `slpEvaluateCoef(int,int,com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `slpEvaluateCoef​(int row, int col, DoubleHolder p_value)` | Evaluate a coefficient using the current values of the variables
    `void` | `slpFixPenalties​(IntHolder p_status)` | Fixe the values of the error vectors
    `void` | `slpGetCCoef​(int row, int col, DoubleHolder p_factor, StringHolder formula, int maxbytes)` | Deprecated. since 42.00.
    `void` | `slpGetCoefFormula​(int row, int col, DoubleHolder p_factor, int parsed, int maxtypes, IntHolder p_ntypes, int[] type, double[] value)` | Retrieve a single matrix coefficient as a formula split into tokens.
    `void` | `slpGetCoefs​(IntHolder p_ncoefs, int[] rowind, int[] colind)` | Retrieve the list of positions of the nonlinear coefficients in the problem.
    `void` | `slpGetCoefStr​(int row, int col, DoubleHolder p_factor, StringHolder formula, int maxbytes, IntHolder p_nbytes)` | Retrieve a single matrix coefficient as a formula in a character string.
    `int` | `slpGetRowStatus​(int row)` | Convenience wrapper for `slpGetRowStatus(int,com.dashoptimization.IntHolder)` that returns the output argument.
    `void` | `slpGetRowStatus​(int row, IntHolder p_status)` | Retrieve the status setting of a constraint
    `double` | `slpGetRowWT​(int row)` | Convenience wrapper for `slpGetRowWT(int,com.dashoptimization.DoubleHolder)` that returns the output argument.
    `void` | `slpGetRowWT​(int row, DoubleHolder p_weight)` | Get the initial penalty error weight for a row
    `void` | `slpLoadCoefs​(int ncoefs, int[] rowind, int[] colind, double[] factor, int[] formulastart, int parsed, int[] type, double[] coef)` | Load non-linear coefficients into the SLP problem.
    `void` | `slpReInitialize()` | Reset the SLP problem to match a just augmented system
    `void` | `slpSetDetRow​(int x, int value)` | Convenience wrapper for `slpSetDetRow(int, int[], int[])`.
    `void` | `slpSetDetRow​(int nvars, int[] colind, int[] rowind)` | Set the determining row of a variable
    `void` | `slpUnConstruct()` | Removes the augmentation and returns the problem to its pre-linearization state
    `void` | `slpUpdateLinearization()` | Updates the current linearization
    `void` | `sparseBTran​(double[] val, int[] ind, IntHolder p_ncoefs)` | Post-multiplies a (row) vector provided by the user by the inverse of the current matrix.
    `void` | `sparseFTran​(double[] val, int[] ind, IntHolder p_ncoefs)` | Pre-multiplies a (column) vector provided by the user by the inverse of the current matrix.
    `void` | `storeCuts​(int ncuts, int nodups, int[] cuttype, byte[] rowtype, double[] rhs, int[] start, XPRScut[] cutind, int[] colind, double[] cutcoef)` | Stores cuts into the cut pool, but does not apply them to the current node.
    `void` | `storeCuts​(int ncuts, int nodups, int[] cuttype, byte[] rowtype, double[] rhs, long[] start, XPRScut[] cutind, int[] colind, double[] cutcoef)` | Stores cuts into the cut pool, but does not apply them to the current node.
    `void` | `strongBranch​(int nbounds, int[] colind, byte[] bndtype, double[] bndval, int iterlim, double[] objval, int[] status)` | Performs strong branching iterations on all specified bound changes.
    `void` | `strongBranchCB​(int nbounds, int[] colind, byte[] bndtype, double[] bndval, int iterlim, double[] objval, int[] status, XPRSstrongBranchSolveListener callback, java.lang.Object data)` | Performs strong branching iterations on all specified bound changes.
    `void` | `tune​(java.lang.String flags)` | This function begins a tuner session for the current problem.
    `void` | `tuneProbSetFile​(java.lang.String setfile, int ifmip, int sense)` | This function begins a tuner session for a set of problems.
    `void` | `tunerReadMethod​(java.lang.String methodfile)` | This function loads a user defined tuner method from the given file.
    `void` | `tunerWriteMethod​(java.lang.String methodfile)` | This function writes the current tuner method to a given file or prints it to the console.
    `void` | `unloadProb()` | Deprecated. since 45.00.
    `int[]` | `varArray​(char type, int count, double[] lb, double[] ub, java.lang.String[] name)` | Deprecated. since 43.00, use `addColumns()` instead
    `int[]` | `varArray​(char type, int count, double lb, double ub, java.util.function.Function<java.lang.Integer,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `int[]` | `varArray​(char type, int count, java.util.function.Function<java.lang.Integer,​java.lang.Double> lb, java.util.function.Function<java.lang.Integer,​java.lang.Double> ub, java.util.function.Function<java.lang.Integer,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> int[]` | `varArray​(char type, java.util.Collection<T> objs, double lb, double ub, java.util.function.Function<T,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> int[]` | `varArray​(char type, java.util.Collection<T> objs, java.util.function.Function<T,​java.lang.Double> lb, java.util.function.Function<T,​java.lang.Double> ub, java.util.function.Function<T,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> java.util.Map<T,​java.lang.Integer>` | `varMap​(char type, java.util.Collection<T> objs, java.util.function.Function<T,​java.lang.Double> lb, java.util.function.Function<T,​java.lang.Double> ub, java.util.function.Function<T,​java.lang.String> name)` | Deprecated. since 43.00, use `addColumns()` instead
    `<T> java.util.Map<T,​java.lang.Integer>` | `varMap​(char type, java.util.Collection<T> objs, java.util.function.Function<T,​java.lang.Double> lb, java.util.function.Function<T,​java.lang.Double> ub, java.util.function.Function<T,​java.lang.String> name, java.util.Map<T,​java.lang.Integer> map)` | Deprecated. since 43.00, use `addColumns()` instead
    `void` | `writeBasis()` | Convenience wrapper for `writeBasis(String, String)`.
    `void` | `writeBasis​(java.lang.String filename)` | Convenience wrapper for `writeBasis(String, String)`.
    `void` | `writeBasis​(java.lang.String filename, java.lang.String flags)` | Writes the current basis to a file for later input into the Optimizer.
    `void` | `writeBinSol()` | Convenience wrapper for `writeBinSol(String, String)`.
    `void` | `writeBinSol​(java.lang.String filename)` | Convenience wrapper for `writeBinSol(String, String)`.
    `void` | `writeBinSol​(java.lang.String filename, java.lang.String flags)` | Writes the current MIP or LP solution to a binary solution file for later input into the Optimizer.
    `void` | `writeDirs()` | Convenience wrapper for `writeDirs(String)`.
    `void` | `writeDirs​(java.lang.String filename)` | Writes the tree search directives from the current problem to a directives file.
    `void` | `writeIIS​(int iis, java.lang.String filename, int filetype)` | Convenience wrapper for `writeIIS(int, String, int, String)`.
    `void` | `writeIIS​(int iis, java.lang.String filename, int filetype, java.lang.String flags)` | Writes an LP/MPS/CSV file containing a given Irreducible Infeasible Set (IIS).
    `void` | `writeProb()` | Convenience wrapper for `writeProb(String, String)`.
    `void` | `writeProb​(java.lang.String filename)` | Convenience wrapper for `writeProb(String, String)`.
    `void` | `writeProb​(java.lang.String filename, java.lang.String flags)` | Writes the current problem to an MPS or LP file.
    `void` | `writePrtSol()` | Convenience wrapper for `writePrtSol(String, String)`.
    `void` | `writePrtSol​(java.lang.String filename)` | Convenience wrapper for `writePrtSol(String, String)`.
    `void` | `writePrtSol​(java.lang.String filename, java.lang.String flags)` | Writes the current solution to a fixed format ASCII file, problem_name `.prt`.
    `void` | `writeSlxSol()` | Convenience wrapper for `writeSlxSol(String, String)`.
    `void` | `writeSlxSol​(java.lang.String filename)` | Convenience wrapper for `writeSlxSol(String, String)`.
    `void` | `writeSlxSol​(java.lang.String filename, java.lang.String flags)` | Creates an ASCII solution file ( `.slx`) using a similar format to MPS files.
    `void` | `writeSol()` | Convenience wrapper for `writeSol(String, String)`.
    `void` | `writeSol​(java.lang.String filename)` | Convenience wrapper for `writeSol(String, String)`.
    `void` | `writeSol​(java.lang.String filename, java.lang.String flags)` | Writes the current solution to a CSV format ASCII file, problem_name `.asc` (and `.hdr`).

    - ### Methods inherited from class com.dashoptimization.XPRSobject

      `addMsgHandlerListener, addMsgHandlerListener, destroy, isDestroyed`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### LEQ

          public static final char LEQ

      Constraint sense for `<=` constraints.
      Since:
        43.00
      See Also:
        Constant Field Values

    - #### GEQ

          public static final char GEQ

      Constraint sense for `>=` constraints.

      Examples using `GEQ`:

      - MultipleProblems.java
      Since:
        43.00
      See Also:
        Constant Field Values

    - #### EQ

          public static final char EQ

      Constraint sense for `==` constraints.
      Since:
        43.00
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### XPRSprob

          public XPRSprob()
                   throws XPRSprobException

      Creates a new, empty problem. Note that instances of this class should be explicitly cleaned up by calling `close()` so that native resources can be released and licenses can be released. A good practice is to use instances of this class with try-with-resources.
      Throws:
        `XPRSprobException` - if the problem cannot be created.

    - #### XPRSprob

          public XPRSprob​(java.lang.String path)
                   throws XPRSprobException,
                          XPRSexception

      Creates a new, empty problem. The functions calls `XPRS.init(path)` so you don't have to do that explicitly. Problems constructed this way will also take care of calling `XPRS.free()` to match the call to `XPRS.init()` made from this constructor. Note that instances of this class should be explicitly cleaned up by calling `close()` so that native resources can be released and licenses can be released. A good practice is to use instances of this class with try-with-resources.
      Parameters:
        `path` - The path to the license location for `XPRS.init`. This can be code `null`.
      Throws:
        `XPRSexception` - if the license cannot be initialized.
        `XPRSprobException` - if the problem cannot be created.
      Since:
        8.12

  - ### Method Detail

    - #### close

          public void close()

      Destroy the problem, deallocating all memory used. Release any resources allocated for this problem instance. Also calls `XPRS.free()` to match the call to `XPRS.init("")` performed by the constructor.
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Specified by:
        `close` in class `XPRSobject`
      Since:
        38

    - #### interrupt

          @Deprecated
          public void interrupt​(int type)

      Deprecated.
      replaced by `interrupt(com.dashoptimization.XPRSenumerations.StopType)`

    - #### iISStatus

          @Deprecated
          public void iISStatus​(IntHolder iiscount,
                                int[] rowsizes,
                                int[] colsizes,
                                double[] suminfeas,
                                int[] numinfeas)
                         throws XPRSprobException

      Deprecated.
      use IISStatus instead
      Throws:
        `XPRSprobException`

    - #### iISAll

          @Deprecated
          public void iISAll()
                      throws XPRSprobException

      Deprecated.
      use IISAll instead
      Throws:
        `XPRSprobException`

    - #### iISIsolations

          @Deprecated
          public void iISIsolations​(int number)
                             throws XPRSprobException

      Deprecated.
      use IISIsolations instead
      Throws:
        `XPRSprobException`

    - #### getNames

          public void getNames​(int type,
                               java.lang.String[] names,
                               int first,
                               int last)
                        throws XPRSprobException

      Get names. Retrieves names for a certain type of objects.
      Parameters:
        `type` - The type of object for which names should be retrieved: 1 for row names, 2 for column names, 3 for SOS names, 4 for PWL names, 5 for general constraint names.
        `names` - Buffer in which the names are stored. Must have length at least `1 + list - first`.
        `first` - Index of first name to be retrieved.
        `last` - Index of last name to be retrieved.
      Throws:
        `XPRSprobException`

    - #### getNameListObject

          public XPRSnamelist getNameListObject​(int type)
                                         throws XPRSprobException

      Throws:
        `XPRSprobException`

    - #### getStrControl

          public void getStrControl​(int _index,
                                    StringHolder _svalue)
                             throws XPRSprobException

      Throws:
        `XPRSprobException`

    - #### getStrAttrib

          public void getStrAttrib​(int _index,
                                   StringHolder _cvalue)
                            throws XPRSprobException

      Throws:
        `XPRSprobException`

    - #### getStrControl

          public java.lang.String getStrControl​(int _index)
                                         throws XPRSprobException

      Throws:
        `XPRSprobException`

    - #### getStrAttrib

          public java.lang.String getStrAttrib​(int _index)
                                        throws XPRSprobException

      Throws:
        `XPRSprobException`

    - #### addNames

          public void addNames​(int type,
                               java.lang.String[] names,
                               int first,
                               int last)
                        throws XPRSprobException

      Add names to model. Note that if this method fails, then it is unspecified how many of the names were changed.

      Examples using `addNames`:

      - LoadLP.java
      - Trimloss.java
      Parameters:
        `type` - Type of objects to which to add names, See for example `XPRSconstants.NAMES_ROW`.
        `names` - The names to set (must not be `null` and must have length at least `1 + last - first`.
        `first` - Index of first object to set the name for.
        `last` - Index of last object to set the name for.
      Throws:
        `XPRSprobException`

    - #### addSetNames

          @Deprecated
          public void addSetNames​(java.lang.String[] names,
                                  int first,
                                  int last)
                           throws XPRSprobException

      Deprecated.
      since 45.00, use `addNames()` with a type of `XPRSenumerations.Namespaces.SET` instead.
      Add names to sets. Note that if this method fails, then it is unspecified how many of the names were changed.
      Parameters:
        `names` - The names to set (must not be `null` and must have length at least `1 + last - first`.
        `first` - Index of first set to set the name for.
        `last` - Index of last set to set the name for.
      Throws:
        `XPRSprobException`
      Since:
        43.00

    - #### chgObjSense

          @Deprecated
          public void chgObjSense​(int objsense)
                           throws XPRSprobException

      Deprecated.
      use chgObjSense(com.dashoptimization.XPRSenumerations.ObjSense) instead
      Retained to maintain compatibility with Xpress 7.0.
      Throws:
        `XPRSprobException`

    - #### createBranchObject

          public XPRSbranchobject createBranchObject​(boolean isOriginal)
                                              throws XPRSprobException

      Creates a new `XPRSbranchobject`.
      Parameters:
        `isOriginal` - `true` if cuts and bound changes will be stated in the original space, `false` if they will be stated in the presolved space.
      Returns:
        The new branch object.

        Examples using `createBranchObject`:

        - MostViolated.java
      Throws:
        `XPRSprobException`

    - #### createBranchObjectFromGlobal

          @Deprecated
          public XPRSbranchobject createBranchObjectFromGlobal​(int icol)
                                                        throws XPRSprobException

      Deprecated.
      since 44.00, will be removed in a future release.
      Throws:
        `XPRSprobException`

    - #### getPwlCons

          public XPRSprob.PWLInfo getPwlCons​(int first,
                                             int last)
                                      throws XPRSprobException

      Query a range of PWL constraints.
      Parameters:
        `first` - See `getPwlCons(int[], int[], int[], double[], double[], int, IntHolder, int, int)`.
        `last` - See `getPwlCons(int[], int[], int[], double[], double[], int, IntHolder, int, int)`.
      Returns:
        the number of points in the queried PWLs.
      Throws:
        `XPRSprobException` - in case of error.

    - #### getInfeas

          public XPRSprob.InfeasInfo getInfeas()
                                        throws XPRSprobException

      Get infeasibilities.
      Returns:
        Information about infeasibilites.
      Throws:
        `XPRSprobException`

    - #### getScaledInfeas

          public XPRSprob.InfeasInfo getScaledInfeas()
                                              throws XPRSprobException

      Get scaled infeasibilities.
      Returns:
        Information about scaled infeasibilites.
      Throws:
        `XPRSprobException`

    - #### getLastBarSol

          public int getLastBarSol​(double[] x,
                                   double[] slack,
                                   double[] duals,
                                   double[] djs)
                            throws XPRSprobException

      Get the last barrier solution.
      Parameters:
        `x` - Array to store the primal column values (may be `null`).
        `slack` - Array to store the primal slack values (may be `null`).
        `duals` - Array to store dual row values (may be `null`).
        `djs` - Array to store reduced costs (may be `null`).
      Returns:
        the status of the last barrier solution.
      Throws:
        `XPRSprobException` - in case of error.

    - #### basisStability

          public double basisStability​(int type,
                                       int norm,
                                       boolean ifscaled)
                                throws XPRSprobException

      Compute basis stability.
      Returns:
        basis stability value.
      Throws:
        `XPRSprobException` - in case of error.

    - #### getControlInfo

          public XPRSprob.ControlInfo getControlInfo​(java.lang.String name)
                                              throws XPRSprobException

      Get info about a control.
      Parameters:
        `name` - Name of control to query.
      Returns:
        descriptor for the queried control.
      Throws:
        `XPRSprobException` - in case of error.

    - #### getAttribInfo

          public XPRSprob.AttributeInfo getAttribInfo​(java.lang.String name)
                                               throws XPRSprobException

      Get info about an attribute.
      Parameters:
        `name` - Name of attribute to query.
      Returns:
        descriptor for the queried attribute.
      Throws:
        `XPRSprobException` - in case of error.

    - #### getPrimalRay

          public boolean getPrimalRay​(double[] ray)
                               throws XPRSprobException

      Get primal ray.
      Parameters:
        `ray` - where to store the ray's coefficients.
      Returns:
        `true` if a ray is available, `false` otherwise.
      Throws:
        `XPRSprobException` - in case of error.

    - #### getDualRay

          public boolean getDualRay​(double[] ray)
                             throws XPRSprobException

      Get dual ray.
      Parameters:
        `ray` - where to store the ray's coefficients.
      Returns:
        `true` if a ray is available, `false` otherwise.
      Throws:
        `XPRSprobException` - in case of error.

    - #### getBasisVal

          public XPRSprob.BasisValue getBasisVal​(int row,
                                                 int col)
                                          throws XPRSprobException

      Get basis status for a column or row.
      Parameters:
        `row` - Row index to get the row basis status for.
        `col` - Column index to get the column basis status for.
      Returns:
        queried basis status.
      Throws:
        `XPRSprobException` - in case of error.
      See Also:
        `getRowBasisVal(int)`, `getColBasisVal(int)`

    - #### getRowBasisVal

          public int getRowBasisVal​(int row)
                             throws XPRSprobException

      Get basis status for a row.
      Parameters:
        `row` - Row index.
      Returns:
        basis status for `row`.
      Throws:
        `XPRSprobException` - in case of error.

    - #### getColBasisVal

          public int getColBasisVal​(int col)
                             throws XPRSprobException

      Get basis status for a column.
      Parameters:
        `col` - Column index.
      Returns:
        basis status for `col`.
      Throws:
        `XPRSprobException` - in case of error.

    - #### getCutList

          public XPRScut[] getCutList​(int cuttype,
                                      int interp)
                               throws XPRSprobException

      Retrieves a list of cut pointers for the cuts active at the current node.
      Parameters:
        `cuttype` - User defined type of the cuts to be returned.
        `interp` - Way in which the cut type is interpreted
      Returns:
        the queried cuts.
      Throws:
        `XPRSprobException` - in case of error.

    - #### getQRowQMatrixTriplets

          public XPRSprob.MatrixTriplets getQRowQMatrixTriplets​(int row)
                                                         throws XPRSprobException

      Get quadratic row.
      Parameters:
        `row` - Row index.
      Returns:
        the quadratic matrix for `row`.
      Throws:
        `XPRSprobException` - in case of error.

    - #### getQRowIndices

          public int[] getQRowIndices()
                               throws XPRSprobException

      Get quadratic rows.
      Returns:
        indices of rows with quadratic terms.
      Throws:
        `XPRSprobException` - in case of error.

    - #### getLpSolVal

          @Deprecated
          public XPRSprob.SolVal getLpSolVal​(int col,
                                             int row)
                                      throws XPRSprobException

      Deprecated.
      Deprecated since 44.00, use `getSolution` or `getCallbackSolution` instead.
      Get LP solution value.
      Parameters:
        `col` - Column to query.
        `row` - Row to query.
      Returns:
        solution value for the queried row/column.
      Throws:
        `XPRSprobException` - in case of error.

    - #### getMipSolVal

          @Deprecated
          public XPRSprob.SolVal getMipSolVal​(int col,
                                              int row)
                                       throws XPRSprobException

      Deprecated.
      Deprecated since 44.00, use `getSolution` or `getCallbackSolution` instead.
      Get MIP solution value.
      Parameters:
        `col` - Column to query.
        `row` - Row to query.
      Returns:
        solution value for the queried row/column.
      Throws:
        `XPRSprobException` - in case of error.

    - #### loadLp

          public void loadLp()
                      throws XPRSprobException

      Load this instance with an empty LP. The problem name will be set to the empty string. This is a shortcut for `loadLp("")`.

      Examples using `loadLp`:

      - LoadLP.java
      Throws:
        `XPRSprobException` - if empty model cannot be loaded.
      See Also:
        `loadLp(String)`, `loadLp(String, int, int, byte[], double[], double[], double[], int[], int[], int[], double[], double[], double[])`

    - #### loadLp

          public void loadLp​(java.lang.String probname)
                      throws XPRSprobException

      Load this instance with an empty LP. This is a shortcut for `loadLp(probname, 0, 0, null, null, null, null, null, null, null, null, null, null)`.

      Examples using `loadLp`:

      - LoadLP.java
      Parameters:
        `probname` - The new problem name.
      Throws:
        `XPRSprobException` - if empty model cannot be loaded.
      See Also:
        `loadLp()`, `loadLp(String, int, int, byte[], double[], double[], double[], int[], int[], int[], double[], double[], double[])`

    - #### fixGlobals

          @Deprecated
          public void fixGlobals​(int options)
                          throws XPRSprobException

      Deprecated.
      Deprecated since 40.01, use `fixMIPEntities(int)` instead.
      Throws:
        `XPRSprobException`

    - #### getGlobal

          @Deprecated
          public XPRSprob.GlobalInfo getGlobal()
                                        throws XPRSprobException

      Deprecated.
      Deprecated since 40.01, use `getMIPEntities()` instead.
      Throws:
        `XPRSprobException`

    - #### getGlobalEntities

          @Deprecated
          public XPRSprob.GlobalInfo getGlobalEntities()
                                                throws XPRSprobException

      Deprecated.
      Deprecated since 40.01, use `getDiscreteCols()` instead.
      Throws:
        `XPRSprobException`

    - #### getGlobalSets

          @Deprecated
          public XPRSprob.GlobalInfo getGlobalSets()
                                            throws XPRSprobException

      Deprecated.
      Deprecated since 40.01, use `getSets()` instead.
      Throws:
        `XPRSprobException`

    - #### getGlobal

          @Deprecated
          public void getGlobal​(IntHolder p_nentities,
                                IntHolder p_nsets,
                                byte[] coltype,
                                int[] colind,
                                double[] limit,
                                byte[] settype,
                                int[] start,
                                int[] setcols,
                                double[] refval)
                         throws XPRSprobException

      Deprecated.
      Deprecated since 40.01, use `getMIPEntities(IntHolder, IntHolder, byte[], int[], double[], byte[], int[], int[], double[])` instead.
      Throws:
        `XPRSprobException`

    - #### loadQGlobal

          @Deprecated
          public void loadQGlobal​(java.lang.String probname,
                                  int ncols,
                                  int nrows,
                                  byte[] rowtype,
                                  double[] rhs,
                                  double[] rng,
                                  double[] objcoef,
                                  int[] start,
                                  int[] collen,
                                  int[] rowind,
                                  double[] rowcoef,
                                  double[] lb,
                                  double[] ub,
                                  int nobjqcoefs,
                                  int[] objqcol1,
                                  int[] objqcol2,
                                  double[] objqcoef,
                                  int nentities,
                                  int nsets,
                                  byte[] coltype,
                                  int[] entind,
                                  double[] limit,
                                  byte[] settype,
                                  int[] setstart,
                                  int[] setind,
                                  double[] refval)
                           throws XPRSprobException

      Deprecated.
      Deprecated since 40.01, use `loadMIQP(String, int, int, byte[], double[], double[], double[], int[], int[], int[], double[], double[], double[], int, int[], int[], double[], int, int, byte[], int[], double[], byte[], int[], int[], double[])` instead.
      Throws:
        `XPRSprobException`

    - #### loadQGlobal

          @Deprecated
          public void loadQGlobal​(java.lang.String probname,
                                  int ncols,
                                  int nrows,
                                  byte[] rowtype,
                                  double[] rhs,
                                  double[] rng,
                                  double[] objcoef,
                                  long[] start,
                                  int[] collen,
                                  int[] rowind,
                                  double[] rowcoef,
                                  double[] lb,
                                  double[] ub,
                                  long nobjqcoefs,
                                  int[] objqcol1,
                                  int[] objqcol2,
                                  double[] objqcoef,
                                  int nentities,
                                  int nsets,
                                  byte[] coltype,
                                  int[] entind,
                                  double[] limit,
                                  byte[] settype,
                                  long[] setstart,
                                  int[] setind,
                                  double[] refval)
                           throws XPRSprobException

      Deprecated.
      Deprecated since 40.01, use `loadMIQP(String, int, int, byte[], double[], double[], double[], long[], int[], int[], double[], double[], double[], long, int[], int[], double[], int, int, byte[], int[], double[], byte[], long[], int[], double[])` instead.
      Throws:
        `XPRSprobException`

    - #### loadGlobal

          @Deprecated
          public void loadGlobal​(java.lang.String probname,
                                 int ncols,
                                 int nrows,
                                 byte[] rowtype,
                                 double[] rhs,
                                 double[] rng,
                                 double[] objcoef,
                                 int[] start,
                                 int[] collen,
                                 int[] rowind,
                                 double[] rowcoef,
                                 double[] lb,
                                 double[] ub,
                                 int nentities,
                                 int nsets,
                                 byte[] coltype,
                                 int[] entind,
                                 double[] limit,
                                 byte[] settype,
                                 int[] setstart,
                                 int[] setind,
                                 double[] refval)
                          throws XPRSprobException

      Deprecated.
      Deprecated since 40.01, use `loadMIP(String, int, int, byte[], double[], double[], double[], int[], int[], int[], double[], double[], double[], int, int, byte[], int[], double[], byte[], int[], int[], double[])` instead.
      Throws:
        `XPRSprobException`

    - #### loadGlobal

          @Deprecated
          public void loadGlobal​(java.lang.String probname,
                                 int ncols,
                                 int nrows,
                                 byte[] rowtype,
                                 double[] rhs,
                                 double[] rng,
                                 double[] objcoef,
                                 long[] start,
                                 int[] collen,
                                 int[] rowind,
                                 double[] rowcoef,
                                 double[] lb,
                                 double[] ub,
                                 int nentities,
                                 int nsets,
                                 byte[] coltype,
                                 int[] entind,
                                 double[] limit,
                                 byte[] settype,
                                 long[] setstart,
                                 int[] setind,
                                 double[] refval)
                          throws XPRSprobException

      Deprecated.
      Deprecated since 40.01, use `loadMIP(String, int, int, byte[], double[], double[], double[], long[], int[], int[], double[], double[], double[], int, int, byte[], int[], double[], byte[], long[], int[], double[])` instead.
      Throws:
        `XPRSprobException`

    - #### loadQCQPGlobal

          @Deprecated
          public void loadQCQPGlobal​(java.lang.String probname,
                                     int ncols,
                                     int nrows,
                                     byte[] rowtype,
                                     double[] rhs,
                                     double[] rng,
                                     double[] objcoef,
                                     int[] start,
                                     int[] collen,
                                     int[] rowind,
                                     double[] rowcoef,
                                     double[] lb,
                                     double[] ub,
                                     int nobjqcoefs,
                                     int[] objqcol1,
                                     int[] objqcol2,
                                     double[] objqcoef,
                                     int nqrows,
                                     int[] qrowind,
                                     int[] nrowqcoefs,
                                     int[] rowqcol1,
                                     int[] rowqcol2,
                                     double[] rowqcoef,
                                     int nentities,
                                     int nsets,
                                     byte[] coltype,
                                     int[] entind,
                                     double[] limit,
                                     byte[] settype,
                                     int[] setstart,
                                     int[] setind,
                                     double[] refval)
                              throws XPRSprobException

      Deprecated.
      Deprecated since 40.01, use `loadMIQCQP(String, int, int, byte[], double[], double[], double[], int[], int[], int[], double[], double[], double[], int, int[], int[], double[], int, int[], int[], int[], int[], double[], int, int, byte[], int[], double[], byte[], int[], int[], double[])` instead.
      Throws:
        `XPRSprobException`

    - #### loadQCQPGlobal

          @Deprecated
          public void loadQCQPGlobal​(java.lang.String probname,
                                     int ncols,
                                     int nrows,
                                     byte[] rowtype,
                                     double[] rhs,
                                     double[] rng,
                                     double[] objcoef,
                                     long[] start,
                                     int[] collen,
                                     int[] rowind,
                                     double[] rowcoef,
                                     double[] lb,
                                     double[] ub,
                                     long nobjqcoefs,
                                     int[] objqcol1,
                                     int[] objqcol2,
                                     double[] objqcoef,
                                     int nqrows,
                                     int[] qrowind,
                                     long[] nrowqcoefs,
                                     int[] rowqcol1,
                                     int[] rowqcol2,
                                     double[] rowqcoef,
                                     int nentities,
                                     int nsets,
                                     byte[] coltype,
                                     int[] entind,
                                     double[] limit,
                                     byte[] settype,
                                     long[] setstart,
                                     int[] setind,
                                     double[] refval)
                              throws XPRSprobException

      Deprecated.
      Deprecated since 40.01, use `loadMIQCQP(String, int, int, byte[], double[], double[], double[], long[], int[], int[], double[], double[], double[], long, int[], int[], double[], int, int[], long[], int[], int[], double[], int, int, byte[], int[], double[], byte[], long[], int[], double[])` instead.
      Throws:
        `XPRSprobException`

    - #### addMipSol

          public void addMipSol​(double[] val,
                                int[] ind,
                                java.lang.String name)
                         throws XPRSexception

      Add a new MIP solution. This is a convenience wrapper for `addMipSol(int, double[], int[], String )`.

      Examples using `addMipSol`:

      - AddMipSol.java
      - TSP.java
      - TravelingSalesPerson.java
      - Wagon.java
      Parameters:
        `val` - objects.Variable values.
        `ind` - objects.Variable indices.
        `name` - Name of solution.
      Throws:
        `XPRSexception`
      See Also:
        `addMipSol(int, double[], int[], String )`

    - #### addMipSol

          public void addMipSol​(double[] val,
                                int[] ind)
                         throws XPRSexception

      Add a new MIP solution. This is a convenience wrapper for `addMipSol(int, double[], int[], String )`.

      Examples using `addMipSol`:

      - AddMipSol.java
      - TSP.java
      - TravelingSalesPerson.java
      - Wagon.java
      Parameters:
        `val` - objects.Variable values.
        `ind` - objects.Variable indices.
      Throws:
        `XPRSexception`
      See Also:
        `addMipSol(int, double[], int[], String )`

    - #### delIndicator

          public void delIndicator​(int row)

      Delete a single indicator constraint. This only deletes the "indicator property from the specified row. Neither the associated variable nor the row are deleted.
      Parameters:
        `row` - Row from which to delete the indicator constraint.
      Since:
        43.00

    - #### getIndicators

          public IndicatorInfo[] getIndicators​(int first,
                                               int last)

      Get indicator information for a range of rows. Returns indicator information for the rows in [ `first`, `last`] that actually are indicator rows. No data is returned for rows in this range that are not indicator rows.
      Parameters:
        `first` - First (inclusive) row index.
        `last` - Last (inclusive) row index.
      Returns:
        Indicator data for the specified range of rows.
      Since:
        43.00

    - #### getIndicator

          public IndicatorInfo getIndicator​(int row)

      Get indicator information for a single row.
      Parameters:
        `row` - The row to query.
      Returns:
        Indicator information for `row`. This will be `null` if `row` is not an indicator row.
      Since:
        43.00

    - #### setIndicator

          public void setIndicator​(int rowind,
                                   int colind,
                                   int complement)

      Add a single indicator constraint.

      Examples using `setIndicator`:

      - BinBurglar.java
      - Sangraalind.java
      Parameters:
        `rowind` - Index of the row for the indicator.
        `colind` - Index of the column for the indicator.
        `complement` - If 1 then `rowind` becomes active if `colind` is 1. If -1 then `rowind` becomes active if `colind` is 0.
      Since:
        43.00

    - #### getCols

          public XPRSprob.MatrixInfo getCols​(int first,
                                             int last)

      Get range of columns.

      Examples using `getCols`:

      - AddMipSol.java
      - CuttingStock.java
      - FolioHeuristic.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      - Knapsack.java
      - MipSolEnum.java
      - MostViolated.java
      - Repair.java
      - RoundInt.java
      - Tableau.java
      - Trimloss.java
      Parameters:
        `first` - First column index (inclusive).
        `last` - Last column index (inclusive).
      Returns:
        Data for the queried columns

    - #### getRows

          public XPRSprob.MatrixInfo getRows​(int first,
                                             int last)

      Get range of rows.

      Examples using `getRows`:

      - CuttingStock.java
      - FolioHeuristic.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      - LoadLP.java
      - Repair.java
      - Tableau.java
      - Trimloss.java
      Parameters:
        `first` - First row index (inclusive)
        `last` - Last row index (inclusive)
      Returns:
        Data for the queried rows.

    - #### getMQObj

          public XPRSprob.MatrixInfo getMQObj​(int first,
                                              int last)

      Get quadratic objective matrix for range of columns.
      Parameters:
        `first` - First column index (inclusive).
        `last` - Last column index (inclusive).
      Returns:
        Data for the queried columns.

    - #### addNames

          public void addNames​(XPRSenumerations.Namespaces type,
                               java.lang.String[] names,
                               int first,
                               int last)

      Add names to model. Note that if this method fails, then it is unspecified how many of the names were changed.

      Examples using `addNames`:

      - LoadLP.java
      - Trimloss.java
      Parameters:
        `type` - Type of objects to which to add name.
        `names` - The names to set. Must not be `null` and must have length at least `1 + last - first`.
        `first` - Index of first object to set the name for.
        `last` - Index of last object to set the name for.
      Since:
        43.00

    - #### optimize

          public int optimize​(java.lang.String flags)

      Convenience wrapper for `optimize(String , IntHolder, IntHolder)`. This function calls `optimize` with the specified flags and returns the solve status. The solution status is not returned and must be queried explicitly afterwards using the corresponding attribute. See the documentation of the overloaded function for more details.

      Examples using `optimize`:

      - AddMipSol.java
      - BinBurglar.java
      - BoolVars.java
      - Boxes02.java
      - Callback.java
      - Capbgt2l.java
      - CapitalBudgeting.java
      - Catenary.java
      - ContractAllocation.java
      - CuttingStock.java
      - ELSCut.java
      - ELSManagedCuts.java
      - FacilityLocationArray.java
      - FacilityLocationCollection.java
      - FixBV.java
      - Folio.java
      - FolioCB.java
      - FolioHeuristic.java
      - FolioIIS.java
      - FolioInit.java
      - FolioMip1.java
      - FolioMip2.java
      - FolioMipIIS.java
      - FolioQC.java
      - FolioQP.java
      - GeneralConstraints.java
      - Glidert.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      - GoalProg.java
      - IISExample.java
      - Knapsack.java
      - LoadLP.java
      - MipSolPool.java
      - MostViolated.java
      - MultipleKnapsack_Arrays.java
      - MultipleKnapsack_Collections.java
      - MultipleProblems.java
      - PiecewiseLinear.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonObjects.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      - Pplan.java
      - Pplan2.java
      - ProductionPlanning_Index.java
      - PurchasePWL.java
      - PurchaseSOS2.java
      - QuadraticProgramming.java
      - RecursiveFinancialPlanning.java
      - RoundInt.java
      - Sangraalind.java
      - SaveSol.java
      - SpecialOrderedSets.java
      - SpecialOrderedSetsQuadratic.java
      - TSP.java
      - Tableau.java
      - TravelingSalesPerson.java
      - Trimloss.java
      - Wagon.java
      Parameters:
        `flags` - Flags to tweak the function behavior.
      Returns:
        The solve status.

    - #### optimize

          public int optimize()

      Convenience wrapper for `optimize(String , IntHolder, IntHolder)`. This function calls `optimize` with default arguments and returns the solve status. The solution status is not returned and must be queried explicitly afterwards using the corresponding attribute. See the documentation of the overloaded function for more details.

      Examples using `optimize`:

      - AddMipSol.java
      - BinBurglar.java
      - BoolVars.java
      - Boxes02.java
      - Callback.java
      - Capbgt2l.java
      - CapitalBudgeting.java
      - Catenary.java
      - ContractAllocation.java
      - CuttingStock.java
      - ELSCut.java
      - ELSManagedCuts.java
      - FacilityLocationArray.java
      - FacilityLocationCollection.java
      - FixBV.java
      - Folio.java
      - FolioCB.java
      - FolioHeuristic.java
      - FolioIIS.java
      - FolioInit.java
      - FolioMip1.java
      - FolioMip2.java
      - FolioMipIIS.java
      - FolioQC.java
      - FolioQP.java
      - GeneralConstraints.java
      - Glidert.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      - GoalProg.java
      - IISExample.java
      - Knapsack.java
      - LoadLP.java
      - MipSolPool.java
      - MostViolated.java
      - MultipleKnapsack_Arrays.java
      - MultipleKnapsack_Collections.java
      - MultipleProblems.java
      - PiecewiseLinear.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonObjects.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      - Pplan.java
      - Pplan2.java
      - ProductionPlanning_Index.java
      - PurchasePWL.java
      - PurchaseSOS2.java
      - QuadraticProgramming.java
      - RecursiveFinancialPlanning.java
      - RoundInt.java
      - Sangraalind.java
      - SaveSol.java
      - SpecialOrderedSets.java
      - SpecialOrderedSetsQuadratic.java
      - TSP.java
      - Tableau.java
      - TravelingSalesPerson.java
      - Trimloss.java
      - Wagon.java
      Returns:
        The solve status

    - #### addSets

          public int[] addSets​(int count,
                               int[] start,
                               SetType[] type,
                               int[] setind,
                               double[] setref,
                               java.lang.String[] names)

      Create multiple set constraints.
      Parameters:
        `count` - Number of sets to add.
        `start` - Array of length at least `count` that indicates where in `setind` and `setref` the data for each set starts.
        `type` - Array of length at least `count` that specifies the set types.
        `setind` - The columns in each set.
        `setref` - Reference values for columns in each set. This can be `null` in which case values 1, 2, 3, ... will be used for each set.
        `names` - Set names. Can be `null`.
      Returns:
        Indices of the newly created sets.
      Since:
        43.00

    - #### addSet

          public int addSet​(SetType type,
                            int[] elements,
                            double[] weights,
                            java.lang.String name)

      Add a single set constraint to this problem.
      Parameters:
        `type` - Set type.
        `elements` - The elements in the set.
        `weights` - Weights for elements. If this is `null` then weights 1, 2, 3, ... will be used.
        `name` - Name of set. Can be `null`.
      Returns:
        The new set constraint.
      Since:
        43.00

    - #### addSets

          public int[] addSets​(SetType[] type,
                               int[][] elements,
                               double[][] weights,
                               java.lang.String[] name)

      Add multiple set constraints to the problem.
      Parameters:
        `type` - Constraint types.
        `elements` - Elements in each constraint.
        `weights` - Weights for each constraint. If this is `null` then weights 1, 2, 3, ... will be used.
        `name` - Constraint names. Can be `null`.
      Returns:
        The new set constraints.
      Since:
        43.00

    - #### addRow

          public int addRow​(int[] colind,
                            double[] colval,
                            char rowtype,
                            double rhs,
                            double rng,
                            java.lang.String name)
                     throws XPRSexception,
                            java.lang.IllegalArgumentException

      Add a single row to the problem.

      Examples using `addRow`:

      - GoalProg.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      - TSP.java
      Parameters:
        `colind` - Array of column indices for the non-zeros for the new row. This can be `null`. If not `null` then it must have the same length as `colval` and `colval[k]` must be the non-zero coefficient in the new row for column `colind[k]`.
        `colval` - Array of column values for the non-zeros for the new row. This can be `null`. If not `null` then it must have the same length as `colind` and `colval[k]` must be the non-zero coefficient in the new row for column `colind[k]`.
        `rowtype` - The type of the new row.
        `rhs` - The right-hand side for the new row.
        `rng` - The range value for the new row.
        `name` - The name of the new row. This can be `null`.
      Returns:
        The index of the newly created row.
      Throws:
        `XPRSexception`
        `java.lang.IllegalArgumentException`
      See Also:
        `addRows(int, int, byte[], double[], double[], int[], int[], double[])`

    - #### addRow

          public int addRow​(int[] colind,
                            double[] colval,
                            char rowtype,
                            double rhs,
                            java.lang.String name)
                     throws XPRSexception,
                            java.lang.IllegalArgumentException

      Add a single row to the problem.

      Examples using `addRow`:

      - GoalProg.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      - TSP.java
      Parameters:
        `colind` - Array of column indices for the non-zeros for the new row. This can be `null`. If not `null` then it must have the same length as `colval` and `colval[k]` must be the non-zero coefficient in the new row for column `colind[k]`.
        `colval` - Array of column values for the non-zeros for the new row. This can be `null`. If not `null` then it must have the same length as `colind` and `colval[k]` must be the non-zero coefficient in the new row for column `colind[k]`.
        `rowtype` - The type of the new row.
        `rhs` - The right-hand side for the new row.
        `name` - The name of the new row. This can be `null`.
      Returns:
        The index of the newly created row.
      Throws:
        `XPRSexception`
        `java.lang.IllegalArgumentException`
      See Also:
        `addRows(int, int, byte[], double[], double[], int[], int[], double[])`

    - #### addRow

          public int addRow​(int[] colind,
                            double[] colval,
                            char rowtype,
                            double rhs)
                     throws XPRSexception,
                            java.lang.IllegalArgumentException

      Add a single row to the problem. This is a short cut for `addRow(colind, colval, rowtype, rhs, null, null)`.

      Examples using `addRow`:

      - GoalProg.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      - TSP.java
      Parameters:
        `colind` - Array of column indices for the non-zeros for the new row. This can be `null`. If not `null` then it must have the same length as `colval` and `colval[k]` must be the non-zero coefficient in the new row for column `colind[k]`.
        `colval` - Array of column values for the non-zeros for the new row. This can be `null`. If not `null` then it must have the same length as `colind` and `colval[k]` must be the non-zero coefficient in the new row for column `colind[k]`.
        `rowtype` - The type of the new row.
        `rhs` - The right-hand side for the new row
      Returns:
        The index of the newly created row.
      Throws:
        `XPRSexception`
        `java.lang.IllegalArgumentException`
      See Also:
        `addRow(int[], double[], char, double, double, String)`

    - #### addRow

          public int addRow​(XPRSprob.RowInfo row)
                     throws XPRSexception

      Add a single row to the problem.

      Examples using `addRow`:

      - GoalProg.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      - TSP.java
      Parameters:
        `row` - The row to add.
      Returns:
        The index of the newly created row.
      Throws:
        `XPRSexception`
      See Also:
        `addRow(int[], double[], char, double, double, String)`

    - #### addRow

          public int addRow​(XPRSprob.RowInfo row,
                            java.lang.String name)
                     throws XPRSexception

      Add a single row to the problem.

      Examples using `addRow`:

      - GoalProg.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      - TSP.java
      Parameters:
        `row` - The row to add.
        `name` - The name for the new row, can be `null`.
      Returns:
        The index of the newly created row.
      Throws:
        `XPRSexception`
      See Also:
        `addRow(int[], double[], char, double, double, String)`

    - #### addCut

          public void addCut​(int cuttype,
                             int[] colind,
                             double[] colval,
                             char rowtype,
                             double rhs)
                      throws XPRSexception,
                             java.lang.NullPointerException,
                             java.lang.IllegalArgumentException

      Add a single cut to the problem.

      Examples using `addCut`:

      - ELSCut.java
      - TSP.java
      - TravelingSalesPerson.java
      Parameters:
        `cuttype` - The type of the cut. This can be any number chosen by the user to identify their cuts.
        `colind` - Array of column indices for the non-zeros for the new cut. This can be `null`. If not `null` then it must have the same length as `colval` and `colval[k]` must be the non-zero coefficient in the new cut for column `colind[k]`.
        `colval` - Array of column values for the non-zeros for the new cut. This can be `null`. If not `null` then it must have the same length as `colind` and `colval[k]` must be the non-zero coefficient in the new cut for column `colind[k]`.
        `rowtype` - The row type of the new cut (less-or-equal, equal, greater-or-equal). The type is specified as `'L'`, `'E'`, or `'G'`.
        `rhs` - The right-hand side for the new cut.
      Throws:
        `XPRSexception`
        `java.lang.NullPointerException`
        `java.lang.IllegalArgumentException`
      See Also:
        `addCuts(int, int[], byte[], double[], int[], int[], double[])`

    - #### addCut

          public void addCut​(int cuttype,
                             XPRSprob.RowInfo cut)
                      throws XPRSexception

      Add a single cut to the problem.

      Examples using `addCut`:

      - ELSCut.java
      - TSP.java
      - TravelingSalesPerson.java
      Parameters:
        `cuttype` - The type of the new cut.
        `cut` - The cut to add
      Throws:
        `XPRSexception`
      See Also:
        `addCut(int, int[], double[], char, double)`

    - #### presolveRow

          public XPRSprob.RowInfo presolveRow​(int[] ind,
                                              double[] val,
                                              char type,
                                              double rhs)
                                       throws XPRSexception,
                                              java.lang.NullPointerException,
                                              java.lang.IllegalArgumentException

      Presolve a row. The function transforms a row that is given in terms of the original model to a row that is given in terms of the presolved model.

      Examples using `presolveRow`:

      - TSP.java
      Parameters:
        `ind` - Non-zero column indices.
        `val` - Non-zero values of the row.
        `type` - Type of the row
        `rhs` - Right-hand side of the row.
      Returns:
        `null` if the row could not be presolved, the presolved row otherwise
      Throws:
        `XPRSexception`
        `java.lang.NullPointerException`
        `java.lang.IllegalArgumentException`
      See Also:
        `presolveRow(char, int, int[], double[], double, int, IntHolder, int[], double[], DoubleHolder, IntHolder)`

    - #### presolveRow

          public XPRSprob.RowInfo presolveRow​(XPRSprob.RowInfo row)
                                       throws XPRSexception

      Presolve a row. The function transforms a row that is given in terms of the original model to a row that is given in terms of the presolved model.

      Examples using `presolveRow`:

      - TSP.java
      Parameters:
        `row` - The row to presolve.
      Returns:
        `null` if the row could not be presolved, the presolved row otherwise
      Throws:
        `XPRSexception`
      See Also:
        `presolveRow(char, int, int[], double[], double, int, IntHolder, int[], double[], DoubleHolder, IntHolder)`

    - #### clearObjective

          public void clearObjective()
                              throws XPRSexception

      Clear the objective function.
      Throws:
        `XPRSexception`

    - #### setObjective

          public void setObjective​(int[] ind,
                                   double[] val)
                            throws XPRSexception

      Set objective to a linear function. Any previously set objective will be cleared.

      Examples using `setObjective`:

      - BinBurglar.java
      - Boxes02.java
      - Capbgt2l.java
      - CapitalBudgeting.java
      - Catenary.java
      - ContractAllocation.java
      - CuttingStock.java
      - ELS.java
      - ELSCut.java
      - ELSManagedCuts.java
      - FacilityLocationArray.java
      - FacilityLocationCollection.java
      - Folio.java
      - FolioCB.java
      - FolioHeuristic.java
      - FolioIIS.java
      - FolioInit.java
      - FolioMip1.java
      - FolioMip2.java
      - FolioMipIIS.java
      - FolioQC.java
      - FolioQP.java
      - GeneralConstraints.java
      - Glidert.java
      - MultipleKnapsack_Arrays.java
      - MultipleKnapsack_Collections.java
      - MultipleProblems.java
      - PiecewiseLinear.java
      - PolygonObjects.java
      - Pplan.java
      - Pplan2.java
      - ProductionPlanning_Index.java
      - PurchasePWL.java
      - PurchaseSOS2.java
      - QuadraticProgramming.java
      - RecursiveFinancialPlanning.java
      - Sangraalind.java
      - SpecialOrderedSets.java
      - SpecialOrderedSetsQuadratic.java
      - TSP.java
      - TravelingSalesPerson.java
      - Wagon.java
      Parameters:
        `ind` - Non-zero variable indices.
        `val` - Non-zero variable values.
      Throws:
        `XPRSexception`

    - #### setObjective

          public void setObjective​(int[] ind,
                                   double[] val,
                                   XPRSenumerations.ObjSense sense)
                            throws XPRSexception

      Set objective to a linear function. Any previously set objective will be cleared.

      Examples using `setObjective`:

      - BinBurglar.java
      - Boxes02.java
      - Capbgt2l.java
      - CapitalBudgeting.java
      - Catenary.java
      - ContractAllocation.java
      - CuttingStock.java
      - ELS.java
      - ELSCut.java
      - ELSManagedCuts.java
      - FacilityLocationArray.java
      - FacilityLocationCollection.java
      - Folio.java
      - FolioCB.java
      - FolioHeuristic.java
      - FolioIIS.java
      - FolioInit.java
      - FolioMip1.java
      - FolioMip2.java
      - FolioMipIIS.java
      - FolioQC.java
      - FolioQP.java
      - GeneralConstraints.java
      - Glidert.java
      - MultipleKnapsack_Arrays.java
      - MultipleKnapsack_Collections.java
      - MultipleProblems.java
      - PiecewiseLinear.java
      - PolygonObjects.java
      - Pplan.java
      - Pplan2.java
      - ProductionPlanning_Index.java
      - PurchasePWL.java
      - PurchaseSOS2.java
      - QuadraticProgramming.java
      - RecursiveFinancialPlanning.java
      - Sangraalind.java
      - SpecialOrderedSets.java
      - SpecialOrderedSetsQuadratic.java
      - TSP.java
      - TravelingSalesPerson.java
      - Wagon.java
      Parameters:
        `ind` - Non-zero variable indices.
        `val` - Non-zero variable values.
        `sense` - Objective sense.
      Throws:
        `XPRSexception`

    - #### chgLB

          public void chgLB​(int j,
                            double lb)
                     throws XPRSexception

      Change the lower bound of a single column.

      Examples using `chgLB`:

      - Repair.java
      Parameters:
        `j` - The column to change.
        `lb` - The new lower bound.
      Throws:
        `XPRSexception`
      See Also:
        `chgBounds(int, int[], byte[], double[])`

    - #### chgUB

          public void chgUB​(int j,
                            double ub)
                     throws XPRSexception

      Change the upper bound of a single column.

      Examples using `chgUB`:

      - Repair.java
      Parameters:
        `j` - The column to change.
        `ub` - The new upper bound.
      Throws:
        `XPRSexception`
      See Also:
        `chgBounds(int, int[], byte[], double[])`

    - #### chgBounds

          public void chgBounds​(int j,
                                double lb,
                                double ub)
                         throws XPRSexception

      Change bounds of a single column.

      Examples using `chgBounds`:

      - AddMipSol.java
      - FixBV.java
      - RoundInt.java
      Parameters:
        `j` - Column to change.
        `lb` - New lower bound.
        `ub` - New upper bound.
      Throws:
        `XPRSexception`
      See Also:
        `chgBounds(int, int[], byte[], double[])`

    - #### addCol

          @Deprecated
          public int addCol​(double obj,
                            double lb,
                            double ub,
                            char type,
                            int[] rowind,
                            double[] rowval,
                            java.lang.String name)
                     throws XPRSexception,
                            java.lang.IllegalArgumentException

      Deprecated.
      since 45.00, use `addColumn()` instead
      Add a single column to the model.
      Parameters:
        `obj` - The objective coefficient for the new column.
        `lb` - The lower bound for the new column.
        `ub` - The upper bound for the new column.
        `type` - The type for the new column.
        `rowind` - Array of row indices for the non-zeros for the new column. This can be `null`. If not `null` then it must have the same length as `rowval` and `rowval[k]` must be the non-zero coefficient of the new column in row `rowind[k]`.
        `rowval` - Array of row values for the non-zeros for the new column. This can be `null`. If not `null` then it must have the same length as `rowind` and `rowval[k]` must be the non-zero coefficient of the new column in row `rowind[k]`.
        `name` - The name of the new column. This can be `null`.
      Returns:
        The index of the newly created column.
      Throws:
        `XPRSexception`
        `java.lang.IllegalArgumentException`
      See Also:
        `addCols(int, int, double[], int[], int[], double[], double[], double[])`

    - #### addCol

          @Deprecated
          public int addCol​(double obj,
                            double lb,
                            double ub,
                            char type,
                            int[] rowind,
                            double[] rowval)
                     throws XPRSexception,
                            java.lang.IllegalArgumentException

      Deprecated.
      since 45.00, use `addColumn()` instead
      Add a single column to this problem. This is a shortcut for `addCol(obj, lb, ub, type, rowind, rowval, null);`.
      Parameters:
        `obj` - The objective coefficient for the new column.
        `lb` - The lower bound for the new column.
        `ub` - The upper bound for the new column.
        `type` - The type for the new column.
        `rowind` - Array of row indices for the non-zeros for the new column. This can be `null`. If not `null` then it must have the same length as `rowval` and `rowval[k]` must be the non-zero coefficient of the new column in row `rowind[k]`.
        `rowval` - Array of row values for the non-zeros for the new column. This can be `null`. If not `null` then it must have the same length as `rowind` and `rowval[k]` must be the non-zero coefficient of the new column in row `rowind[k]`.
      Returns:
        The index of the newly created column.
      Throws:
        `XPRSexception`
        `java.lang.IllegalArgumentException`
      See Also:
        `addCol(double, double, double, char, int[], double[], String)`

    - #### addCol

          @Deprecated
          public int addCol​(double obj,
                            double lb,
                            double ub)
                     throws XPRSexception

      Deprecated.
      since 45.00, use `addColumn()` instead
      Add a single column to this problem. This is a shortcut for `addCol(obj, lb, ub, 'C', null, null, null);`.
      Parameters:
        `obj` - The objective coefficient for the new column.
        `lb` - The lower bound for the new column.
        `ub` - The upper bound for the new column.
      Returns:
        The index of the newly created column.
      Throws:
        `XPRSexception`
      See Also:
        `addCol(double, double, double, char, int[], double[], String)`

    - #### addCol

          @Deprecated
          public int addCol​(double obj,
                            double lb,
                            double ub,
                            char type)
                     throws XPRSexception

      Deprecated.
      since 45.00, use `addColumn()` instead
      Add a single column to this problem. This is a shortcut for `addCol(obj, lb, ub, type, null, null, null);`.
      Parameters:
        `obj` - The objective coefficient for the new column.
        `lb` - The lower bound for the new column.
        `ub` - The upper bound for the new column.
        `type` - The type for the new column.
      Returns:
        The index of the newly created column.
      Throws:
        `XPRSexception`
      See Also:
        `addCol(double, double, double, char, int[], double[], String)`

    - #### addCol

          @Deprecated
          public int addCol​(double obj,
                            double lb,
                            double ub,
                            java.lang.String name)
                     throws XPRSexception

      Deprecated.
      since 45.00, use `addColumn()` instead
      Add a single column to this problem. This is a shortcut for `addCol(obj, lb, ub, 'C', null, null, name);`.
      Parameters:
        `obj` - The objective coefficient for the new column.
        `lb` - The lower bound for the new column.
        `ub` - The upper bound for the new column.
        `name` - The name of the new column. This can be `null`.
      Returns:
        The index of the newly created column.
      Throws:
        `XPRSexception`
      See Also:
        `addCol(double, double, double, char, int[], double[], String)`

    - #### addCol

          @Deprecated
          public int addCol​(double obj,
                            double lb,
                            double ub,
                            char type,
                            java.lang.String name)
                     throws XPRSexception

      Deprecated.
      since 45.00, use `addColumn()` instead
      Add a single column to this problem. This is a shortcut for `addCol(obj, lb, ub, type, null, null, name);`.
      Parameters:
        `obj` - The objective coefficient for the new column.
        `lb` - The lower bound for the new column.
        `ub` - The upper bound for the new column.
        `type` - The type for the new column.
        `name` - The name of the new column. This can be `null`.
      Returns:
        The index of the newly created column.
      Throws:
        `XPRSexception`
      See Also:
        `addCol(double, double, double, char, int[], double[], String)`

    - #### varArray

          @Deprecated
          public int[] varArray​(char type,
                                int count,
                                double lb,
                                double ub,
                                java.util.function.Function<java.lang.Integer,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of variables with the same type. All the variables created by this function have the same types and bounds.
      Parameters:
        `type` - Type of variables.
        `count` - Number of variables to create.
        `lb` - The lower bound for the variables.
        `ub` - The upper bound for the variables.
        `name` - Function that creates a name from an index. This will be invoked with arguments 0..count-1 to obtain a name for the newly created variables. Can be `null` in which case the variables will not have names.
      Returns:
        The indices of the newly created variables.

    - #### varArray

          @Deprecated
          public int[] varArray​(char type,
                                int count,
                                double[] lb,
                                double[] ub,
                                java.lang.String[] name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of variables with the same type.
      Parameters:
        `type` - Type of the variables.
        `count` - Number of variables to create.
        `lb` - Lower bound for the variables, must match `count`.
        `ub` - Upper bound for the variables, must match `count`.
        `name` - Names for the variables, must match `count`. If `null` variables will be unnamed.
      Returns:
        The indices of the newly created variables.

    - #### varArray

          @Deprecated
          public int[] varArray​(char type,
                                int count,
                                java.util.function.Function<java.lang.Integer,​java.lang.Double> lb,
                                java.util.function.Function<java.lang.Integer,​java.lang.Double> ub,
                                java.util.function.Function<java.lang.Integer,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of variables with the same type.
      Parameters:
        `type` - Type of the variables.
        `count` - Number of variables to create.
        `lb` - Function to create a lower bound from an index. This will be invoked with 0..count-1 to create a lower bound for each variable.
        `ub` - Function to create an upper bound from an index. This will be invoked with 0..count-1 to create an upper bound for each variable.
        `name` - Function that creates a name from an index. This will be invoked with arguments 0..count-1 to obtain a name for the newly created variables. Can be `null` in which case the variables will not have names.
      Returns:
        The indices of the newly created variables.

    - #### varArray

          @Deprecated
          public <T> int[] varArray​(char type,
                                    java.util.Collection<T> objs,
                                    double lb,
                                    double ub,
                                    java.util.function.Function<T,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of variables with the same type. All the variables created by this function have the same types and bounds. The function will create one variable for each of the objects listed in `objs`.
      Type Parameters:
        `T` - The type of objects
      Parameters:
        `type` - Type of variables.
        `objs` - The objects. One variable will be created for each object in this collection.
        `lb` - Lower bound for new variables.
        `ub` - Upper bound for new variables.
        `name` - Function to create a name from an object. This function will be invoked for all the objects from `objs` to generate a name for the respective variable. If `null` then variables will be unnamed.
      Returns:
        The indices of the newly created variables.

    - #### varArray

          @Deprecated
          public <T> int[] varArray​(char type,
                                    java.util.Collection<T> objs,
                                    java.util.function.Function<T,​java.lang.Double> lb,
                                    java.util.function.Function<T,​java.lang.Double> ub,
                                    java.util.function.Function<T,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of variables with the same type. The function will create one variable for each of the objects listed in `objs`.
      Type Parameters:
        `T` - Type of the objects
      Parameters:
        `type` - Type of the variables.
        `objs` - Objects for which to create variables.
        `lb` - Function to create a lower bound for a variable. This will be invoked for each object in `objs` to generate a lower bound for the respective variable.
        `ub` - Function to create a lower bound for a variable. This will be invoked for each object in `objs` to generate a lower bound for the respective variable.
        `name` - Function to create a name for a variable. This function will be invoked for all the objects from `objs` to generate a name for the respective variable. If `null` then variables will be unnamed.
      Returns:
        Indices of the newly created variables.

    - #### varMap

          @Deprecated
          public <T> java.util.Map<T,​java.lang.Integer> varMap​(char type,
                                                                     java.util.Collection<T> objs,
                                                                     java.util.function.Function<T,​java.lang.Double> lb,
                                                                     java.util.function.Function<T,​java.lang.Double> ub,
                                                                     java.util.function.Function<T,​java.lang.String> name,
                                                                     java.util.Map<T,​java.lang.Integer> map)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create a map of variables that all have the same type. The function creates a new variable for each object in `objs`. For each object o it puts the pair (o, idx) into `map` where idx is the index of the variable that was created for o.
      Type Parameters:
        `T` - The type of objects.
      Parameters:
        `type` - Type of variables.
        `objs` - Objects for which to create variables.
        `lb` - Function to create lower bound for variables. This will be invoked for each object in `objs` to generate a lower bound for the corresponding variable.
        `ub` - Function to create lower bound for variables. This will be invoked for each object in `objs` to generate an upper bound for the corresponding variable.
        `name` - Function to create a variable name. This will be invoked for each object in `objs` to create a name for the corresponding variable. If `null` then variables will be unnamed.
        `map` - The map to which new object,index pairs are added.
      Returns:
        Returns `map`.

    - #### varMap

          @Deprecated
          public <T> java.util.Map<T,​java.lang.Integer> varMap​(char type,
                                                                     java.util.Collection<T> objs,
                                                                     java.util.function.Function<T,​java.lang.Double> lb,
                                                                     java.util.function.Function<T,​java.lang.Double> ub,
                                                                     java.util.function.Function<T,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create a map of variables that all have the same type. The function creates a new variable for each object in `objs`. It returns a hash map in which each object in `objs` maps to the index of the variable that was created for it.
      Type Parameters:
        `T` - The type of objects.
      Parameters:
        `type` - Type of variables.
        `objs` - Objects for which to create variables.
        `lb` - Function to create lower bound for variables. This will be invoked for each object in `objs` to generate a lower bound for the corresponding variable.
        `ub` - Function to create lower bound for variables. This will be invoked for each object in `objs` to generate an upper bound for the corresponding variable.
        `name` - Function to create a variable name. This will be invoked for each object in `objs` to create a name for the corresponding variable. If `null` then variables will be unnamed.
      Returns:
        Mapping of objects to variable indices.

    - #### contVar

          @Deprecated
          public int contVar()

      Deprecated.
      since 43.00, use `addColumn()` instead
      Create a continuous variable with default bounds [0, infinity].
      Returns:
        objects.Index of the newly created variable.

    - #### contVar

          @Deprecated
          public int contVar​(java.lang.String name)

      Deprecated.
      since 43.00, use `addColumn()` instead
      Create a continuous variable with default bounds [0, infinity] and a specified name.
      Parameters:
        `name` - objects.Variable name.
      Returns:
        objects.Index of the newly created variable.

    - #### contVar

          @Deprecated
          public int contVar​(double lb,
                             double ub)

      Deprecated.
      since 43.00, use `addColumn()` instead
      Create a continuous variable with specified bounds.
      Parameters:
        `lb` - Lower bound
        `ub` - Upper bound
      Returns:
        objects.Index of the newly created variable.

    - #### contVar

          @Deprecated
          public int contVar​(double lb,
                             double ub,
                             java.lang.String name)

      Deprecated.
      since 43.00, use `addColumn()` instead
      Create a continuous variable with specified bounds and name.
      Parameters:
        `lb` - Lower bound
        `ub` - Upper bound
        `name` - objects.Variable name.
      Returns:
        objects.Index of the newly created variable.

    - #### contVarArray

          @Deprecated
          public int[] contVarArray​(int count,
                                    double lb,
                                    double ub,
                                    java.util.function.Function<java.lang.Integer,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of continuous variables. All the variables created by this function have the same types and bounds.
      Parameters:
        `count` - Number of variables to create.
        `lb` - The lower bound for the variables.
        `ub` - The upper bound for the variables.
        `name` - Function that creates a name from an index. This will be invoked with arguments 0..count-1 to obtain a name for the newly created variables. Can be `null` in which case the variables will not have names.
      Returns:
        The indices of the newly created variables.

    - #### contVarArray

          @Deprecated
          public int[] contVarArray​(int count,
                                    double[] lb,
                                    double[] ub,
                                    java.lang.String[] name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of continuous variables.
      Parameters:
        `count` - Number of variables to create.
        `lb` - Lower bound for the variables, must match `count`.
        `ub` - Upper bound for the variables, must match `count`.
        `name` - Names for the variables, must match `count`. If `null` variables will be unnamed.
      Returns:
        The indices of the newly created variables.

    - #### contVarArray

          @Deprecated
          public int[] contVarArray​(int count,
                                    java.util.function.Function<java.lang.Integer,​java.lang.Double> lb,
                                    java.util.function.Function<java.lang.Integer,​java.lang.Double> ub,
                                    java.util.function.Function<java.lang.Integer,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of continuous variables.
      Parameters:
        `count` - Number of variables to create.
        `lb` - Function to create a lower bound from an index. This will be invoked with 0..count-1 to create a lower bound for each variable.
        `ub` - Function to create an upper bound from an index. This will be invoked with 0..count-1 to create an upper bound for each variable.
        `name` - Function that creates a name from an index. This will be invoked with arguments 0..count-1 to obtain a name for the newly created variables. Can be `null` in which case the variables will not have names.
      Returns:
        The indices of the newly created variables.

    - #### contVarArray

          @Deprecated
          public <T> int[] contVarArray​(java.util.Collection<T> objs,
                                        double lb,
                                        double ub,
                                        java.util.function.Function<T,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of continuous variables. All the variables created by this function have the same types and bounds. The function will create one variable for each of the objects listed in `objs`.
      Type Parameters:
        `T` - The type of objects
      Parameters:
        `objs` - The objects. One variable will be created for each object in this collection.
        `lb` - Lower bound for new variables.
        `ub` - Upper bound for new variables.
        `name` - Function to create a name from an object. This function will be invoked for all the objects from `objs` to generate a name for the respective variable. If `null` then variables will be unnamed.
      Returns:
        The indices of the newly created variables.

    - #### contVarArray

          @Deprecated
          public <T> int[] contVarArray​(java.util.Collection<T> objs,
                                        java.util.function.Function<T,​java.lang.Double> lb,
                                        java.util.function.Function<T,​java.lang.Double> ub,
                                        java.util.function.Function<T,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of continuous variables. The function will create one variable for each of the objects listed in `objs`.
      Type Parameters:
        `T` - Type of the objects
      Parameters:
        `objs` - Objects for which to create variables.
        `lb` - Function to create a lower bound for a variable. This will be invoked for each object in `objs` to generate a lower bound for the respective variable.
        `ub` - Function to create a lower bound for a variable. This will be invoked for each object in `objs` to generate a lower bound for the respective variable.
        `name` - Function to create a name for a variable. This function will be invoked for all the objects from `objs` to generate a name for the respective variable. If `null` then variables will be unnamed.
      Returns:
        Indices of the newly created variables.

    - #### contVarMap

          @Deprecated
          public <T> java.util.Map<T,​java.lang.Integer> contVarMap​(java.util.Collection<T> objs,
                                                                         java.util.function.Function<T,​java.lang.Double> lb,
                                                                         java.util.function.Function<T,​java.lang.Double> ub,
                                                                         java.util.function.Function<T,​java.lang.String> name,
                                                                         java.util.Map<T,​java.lang.Integer> map)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create a map of continuous variables. The function creates a new variable for each object in `objs`. For each object o it puts the pair (o, idx) into `map` where idx is the index of the variable that was created for o.
      Type Parameters:
        `T` - The type of objects.
      Parameters:
        `objs` - Objects for which to create variables.
        `lb` - Function to create lower bound for variables This will be invoked for each object in `objs` to generate a lower bound for the corresponding variable.
        `ub` - Function to create lower bound for variables This will be invoked for each object in `objs` to generate an upper bound for the corresponding variable.
        `name` - Function to create a variable name. This will be invoked for each object in `objs` to create a name for the corresponding variable. If `null` then variables will be unnamed.
        `map` - The map to which new object,index pairs are added.
      Returns:
        Returns `map`.

    - #### contVarMap

          @Deprecated
          public <T> java.util.Map<T,​java.lang.Integer> contVarMap​(java.util.Collection<T> objs,
                                                                         java.util.function.Function<T,​java.lang.Double> lb,
                                                                         java.util.function.Function<T,​java.lang.Double> ub,
                                                                         java.util.function.Function<T,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create a map of continuous variables. The function creates a new variable for each object in `objs`. It returns a hash map in which each object in `objs` maps to the index of the variable that was created for it.
      Type Parameters:
        `T` - The type of objects.
      Parameters:
        `objs` - Objects for which to create variables.
        `lb` - Function to create lower bound for variables. This will be invoked for each object in `objs` to generate a lower bound for the corresponding variable.
        `ub` - Function to create lower bound for variables. This will be invoked for each object in `objs` to generate an upper bound for the corresponding variable.
        `name` - Function to create a variable name. This will be invoked for each object in `objs` to create a name for the corresponding variable. If `null` then variables will be unnamed.
      Returns:
        Mapping of objects to variable indices.

    - #### intVar

          @Deprecated
          public int intVar()

      Deprecated.
      since 43.00, use `addColumn()` instead
      Create a new integer variable with default bounds [0, infinity].
      Returns:
        objects.Index of the newly created variable.

    - #### intVar

          @Deprecated
          public int intVar​(java.lang.String name)

      Deprecated.
      since 43.00, use `addColumn()` instead
      Create a new integer variable with default bounds [0, infinity] and a specified name.
      Parameters:
        `name` - objects.Variable name.
      Returns:
        objects.Index of the newly created variable.

    - #### intVar

          @Deprecated
          public int intVar​(double lb,
                            double ub)

      Deprecated.
      since 43.00, use `addColumn()` instead
      Create a new integer variable with specified bounds.
      Parameters:
        `lb` - Lower bound for variable.
        `ub` - Upper bound for variable.
      Returns:
        objects.Index of the newly created variable.

    - #### intVar

          @Deprecated
          public int intVar​(double lb,
                            double ub,
                            java.lang.String name)

      Deprecated.
      since 43.00, use `addColumn()` instead
      Create a new integer variable with specified bounds and name.
      Parameters:
        `lb` - Lower bound for variable.
        `ub` - Upper bound for variable.
        `name` - objects.Variable name.
      Returns:
        objects.Index of the newly created variable.

    - #### intVarArray

          @Deprecated
          public int[] intVarArray​(int count,
                                   double lb,
                                   double ub,
                                   java.util.function.Function<java.lang.Integer,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of integer variables. All the variables created by this function have the same types and bounds.
      Parameters:
        `count` - Number of variables to create.
        `lb` - The lower bound for the variables.
        `ub` - The upper bound for the variables.
        `name` - Function that creates a name from an index. This will be invoked with arguments 0..count-1 to obtain a name for the newly created variables. Can be `null` in which case the variables will not have names.
      Returns:
        The indices of the newly created variables.

    - #### intVarArray

          @Deprecated
          public int[] intVarArray​(int count,
                                   double[] lb,
                                   double[] ub,
                                   java.lang.String[] name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of integer variables.
      Parameters:
        `count` - Number of variables to create.
        `lb` - Lower bound for the variables, must match `count`.
        `ub` - Upper bound for the variables, must match `count`.
        `name` - Names for the variables, must match `count`. If `null` variables will be unnamed.
      Returns:
        The indices of the newly created variables.

    - #### intVarArray

          @Deprecated
          public int[] intVarArray​(int count,
                                   java.util.function.Function<java.lang.Integer,​java.lang.Double> lb,
                                   java.util.function.Function<java.lang.Integer,​java.lang.Double> ub,
                                   java.util.function.Function<java.lang.Integer,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of integer variables.
      Parameters:
        `count` - Number of variables to create.
        `lb` - Function to create a lower bound from an index. This will be invoked with 0..count-1 to create a lower bound for each variable.
        `ub` - Function to create an upper bound from an index. This will be invoked with 0..count-1 to create an upper bound for each variable.
        `name` - Function that creates a name from an index. This will be invoked with arguments 0..count-1 to obtain a name for the newly created variables. Can be `null` in which case the variables will not have names.
      Returns:
        The indices of the newly created variables.

    - #### intVarArray

          @Deprecated
          public <T> int[] intVarArray​(java.util.Collection<T> objs,
                                       double lb,
                                       double ub,
                                       java.util.function.Function<T,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of integer variables. All the variables created by this function have the same types and bounds. The function will create one variable for each of the objects listed in `objs`.
      Type Parameters:
        `T` - The type of objects
      Parameters:
        `objs` - The objects. One variable will be created for each object in this collection.
        `lb` - Lower bound for new variables.
        `ub` - Upper bound for new variables.
        `name` - Function to create a name from an object. This function will be invoked for all the objects from `objs` to generate a name for the respective variable. If `null` then variables will be unnamed.
      Returns:
        The indices of the newly created variables.

    - #### intVarArray

          @Deprecated
          public <T> int[] intVarArray​(java.util.Collection<T> objs,
                                       java.util.function.Function<T,​java.lang.Double> lb,
                                       java.util.function.Function<T,​java.lang.Double> ub,
                                       java.util.function.Function<T,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of integer variables. The function will create one variable for each of the objects listed in `objs`.
      Type Parameters:
        `T` - Type of the objects
      Parameters:
        `objs` - Objects for which to create variables.
        `lb` - Function to create a lower bound for a variable. This will be invoked for each object in `objs` to generate a lower bound for the respective variable.
        `ub` - Function to create a lower bound for a variable. This will be invoked for each object in `objs` to generate a lower bound for the respective variable.
        `name` - Function to create a name for a variable. This function will be invoked for all the objects from `objs` to generate a name for the respective variable. If `null` then variables will be unnamed.
      Returns:
        Indices of the newly created variables.

    - #### intVarMap

          @Deprecated
          public <T> java.util.Map<T,​java.lang.Integer> intVarMap​(java.util.Collection<T> objs,
                                                                        java.util.function.Function<T,​java.lang.Double> lb,
                                                                        java.util.function.Function<T,​java.lang.Double> ub,
                                                                        java.util.function.Function<T,​java.lang.String> name,
                                                                        java.util.Map<T,​java.lang.Integer> map)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create a map of integer variables. The function creates a new variable for each object in `objs`. For each object o it puts the pair (o, idx) into `map` where idx is the index of the variable that was created for o.
      Type Parameters:
        `T` - The type of objects.
      Parameters:
        `objs` - Objects for which to create variables.
        `lb` - Function to create lower bound for variables. This will be invoked for each object in `objs` to generate a lower bound for the corresponding variable.
        `ub` - Function to create lower bound for variables. This will be invoked for each object in `objs` to generate an upper bound for the corresponding variable.
        `name` - Function to create a variable name. This will be invoked for each object in `objs` to create a name for the corresponding variable. If `null` then variables will be unnamed.
        `map` - The map to which new object,index pairs are added.
      Returns:
        Returns `map`.

    - #### intVarMap

          @Deprecated
          public <T> java.util.Map<T,​java.lang.Integer> intVarMap​(java.util.Collection<T> objs,
                                                                        java.util.function.Function<T,​java.lang.Double> lb,
                                                                        java.util.function.Function<T,​java.lang.Double> ub,
                                                                        java.util.function.Function<T,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create a map of integer variables. The function creates a new variable for each object in `objs`. It returns a hash map in which each object in `objs` maps to the index of the variable that was created for it.
      Type Parameters:
        `T` - The type of objects.
      Parameters:
        `objs` - Objects for which to create variables.
        `lb` - Function to create lower bound for variables. This will be invoked for each object in `objs` to generate a lower bound for the corresponding variable.
        `ub` - Function to create lower bound for variables. This will be invoked for each object in `objs` to generate an upper bound for the corresponding variable.
        `name` - Function to create a variable name. This will be invoked for each object in `objs` to create a name for the corresponding variable. If `null` then variables will be unnamed.
      Returns:
        Mapping of objects to variable indices.

    - #### binVar

          @Deprecated
          public int binVar()

      Deprecated.
      since 43.00, use `addColumn()` instead
      Create a new binary variable.
      Returns:
        objects.Index of the newly created variable.

    - #### binVar

          @Deprecated
          public int binVar​(java.lang.String name)

      Deprecated.
      since 43.00, use `addColumn()` instead
      Create a new binary variable with the specified name.
      Parameters:
        `name` - objects.Variable name.
      Returns:
        objects.Index of the newly created variable.

    - #### binVarArray

          @Deprecated
          public int[] binVarArray​(int count,
                                   java.util.function.Function<java.lang.Integer,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of binary variables.
      Parameters:
        `count` - Number of variables to create.
        `name` - Function that creates a name from an index. This will be invoked with arguments 0..count-1 to obtain a name for the newly created variables. Can be `null` in which case the variables will not have names.
      Returns:
        The indices of the newly created variables.

    - #### binVarArray

          @Deprecated
          public <T> int[] binVarArray​(java.util.Collection<T> objs,
                                       java.util.function.Function<T,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create an array of binary variables. The function will create one variable for each of the objects listed in `objs`.
      Type Parameters:
        `T` - The type of objects
      Parameters:
        `objs` - The objects. One variable will be created for each object in this collection.
        `name` - Function to create a name from an object. This function will be invoked for all the objects from `objs` to generate a name for the respective variable. If `null` then variables will be unnamed.
      Returns:
        The indices of the newly created variables.

    - #### binVarMap

          @Deprecated
          public <T> java.util.Map<T,​java.lang.Integer> binVarMap​(java.util.Collection<T> objs,
                                                                        java.util.function.Function<T,​java.lang.String> name,
                                                                        java.util.Map<T,​java.lang.Integer> map)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create a map of binary variables. The function creates a new variable for each object in `objs`. For each object o it puts the pair (o, idx) into `map` where idx is the index of the variable that was created for o.
      Type Parameters:
        `T` - The type of objects.
      Parameters:
        `objs` - Objects for which to create variables.
        `name` - Function to create a variable name. This will be invoked for each object in `objs` to create a name for the corresponding variable. If `null` then variables will be unnamed.
        `map` - The map to which new object,index pairs are added.
      Returns:
        Returns `map`.

    - #### binVarMap

          @Deprecated
          public <T> java.util.Map<T,​java.lang.Integer> binVarMap​(java.util.Collection<T> objs,
                                                                        java.util.function.Function<T,​java.lang.String> name)

      Deprecated.
      since 43.00, use `addColumns()` instead
      Create a map of binary variables. The function creates a new variable for each object in `objs`. It returns a hash map in which each object in `objs` maps to the index of the variable that was created for it.
      Type Parameters:
        `T` - The type of objects.
      Parameters:
        `objs` - Objects for which to create variables.
        `name` - Function to create a variable name. This will be invoked for each object in `objs` to create a name for the corresponding variable. If `null` then variables will be unnamed.
      Returns:
        Mapping of objects to variable indices.

    - #### getGenCons

          public XPRSprob.GeneralConstraintInfo getGenCons​(int first,
                                                           int last)

      Query a range of general constraints.
      Parameters:
        `first` - First constraint index to query (inclusive).
        `last` - Last constraint index to query (inclusive).
      Returns:
        The queried constraints.

    - #### getNames

          public void getNames​(XPRSenumerations.Namespaces type,
                               java.lang.String[] names,
                               int first,
                               int last)
                        throws XPRSexception

      Get names. Retrieves names for a certain type of objects.
      Parameters:
        `type` - The type of object for which names should be retrieved.
        `names` - Where to put the requested names.
        `first` - objects.Index of first name to be retrieved.
        `last` - objects.Index of last name to be retrieved.
      Throws:
        `XPRSexception`
      Since:
        43.00
      See Also:
        `getNames(int, String[], int, int)`

    - #### getNames

          public java.lang.String[] getNames​(int type,
                                             int first,
                                             int last)
                                      throws XPRSexception

      Get names. Retrieves names for a certain type of objects.
      Parameters:
        `type` - The type of object for which names should be retrieved.
        `first` - objects.Index of first name to be retrieved.
        `last` - objects.Index of last name to be retrieved.
      Returns:
        The requested names
      Throws:
        `XPRSexception`
      See Also:
        `getNames(int, String[], int, int)`

    - #### getNames

          public java.lang.String[] getNames​(XPRSenumerations.Namespaces type,
                                             int first,
                                             int last)
                                      throws XPRSexception

      Get names. Retrieves names for a certain type of objects.
      Parameters:
        `type` - The type of object for which names should be retrieved.
        `first` - objects.Index of first name to be retrieved.
        `last` - objects.Index of last name to be retrieved.
      Returns:
        The requested names
      Throws:
        `XPRSexception`
      Since:
        43.00
      See Also:
        `getNames(int, String[], int, int)`

    - #### getName

          public java.lang.String getName​(int type,
                                          int elt)
                                   throws XPRSexception

      Get the name of a single element.

      Examples using `getName`:

      - BinBurglar.java
      - ContractAllocation.java
      - CuttingStock.java
      - FolioHeuristic.java
      - FolioIIS.java
      - FolioInit.java
      - FolioMip1.java
      - FolioMip2.java
      - FolioMipIIS.java
      - FolioQC.java
      - FolioQP.java
      - MultipleProblems.java
      - PolygonObjects.java
      - QuadraticProgramming.java
      - RecursiveFinancialPlanning.java
      Parameters:
        `type` - The type of the element.
        `elt` - The index of the element.
      Returns:
        the element's name.
      Throws:
        `XPRSexception`
      See Also:
        `getNames(int, String[], int, int)`

    - #### getName

          public java.lang.String getName​(XPRSenumerations.Namespaces type,
                                          int elt)
                                   throws XPRSexception

      Get the name of a single element.

      Examples using `getName`:

      - BinBurglar.java
      - ContractAllocation.java
      - CuttingStock.java
      - FolioHeuristic.java
      - FolioIIS.java
      - FolioInit.java
      - FolioMip1.java
      - FolioMip2.java
      - FolioMipIIS.java
      - FolioQC.java
      - FolioQP.java
      - MultipleProblems.java
      - PolygonObjects.java
      - QuadraticProgramming.java
      - RecursiveFinancialPlanning.java
      Parameters:
        `type` - The type of the element.
        `elt` - The index of the element.
      Returns:
        the element's name.
      Throws:
        `XPRSexception`
      Since:
        43.00
      See Also:
        `getNames(int, String[], int, int)`

    - #### getRowNames

          public java.lang.String[] getRowNames​(int first,
                                                int last)
                                         throws XPRSexception

      Get names of rows.

      Examples using `getRowNames`:

      - Tableau.java
      Parameters:
        `first` - First row index (inclusive).
        `last` - Last row index (inclusive).
      Returns:
        The names for the specified rows.
      Throws:
        `XPRSexception`

    - #### getRowName

          public java.lang.String getRowName​(int index)
                                      throws XPRSexception

      Get a row name.

      Examples using `getRowName`:

      - Repair.java
      - Tableau.java
      Parameters:
        `index` - objects.Index of the row.
      Returns:
        The requested row's name.
      Throws:
        `XPRSexception`

    - #### getColumnNames

          public java.lang.String[] getColumnNames​(int first,
                                                   int last)
                                            throws XPRSexception

      Get names of columns.

      Examples using `getColumnNames`:

      - Tableau.java
      Parameters:
        `first` - First column index (inclusive).
        `last` - Last column index (inclusive).
      Returns:
        The names for the specified columns.
      Throws:
        `XPRSexception`

    - #### getColumnName

          public java.lang.String getColumnName​(int index)
                                         throws XPRSexception

      Get a column name.

      Examples using `getColumnName`:

      - Repair.java
      - Tableau.java
      Parameters:
        `index` - objects.Index of the column.
      Returns:
        The requested column's name.
      Throws:
        `XPRSexception`

    - #### getSetNames

          public java.lang.String[] getSetNames​(int first,
                                                int last)
                                         throws XPRSexception

      Get names of sets (SOS).
      Parameters:
        `first` - First set index (inclusive).
        `last` - Last set index (inclusive).
      Returns:
        The names for the specified sets.
      Throws:
        `XPRSexception`

    - #### getSetName

          public java.lang.String getSetName​(int index)
                                      throws XPRSexception

      Get a set (SOS) name.
      Parameters:
        `index` - objects.Index of the set.
      Returns:
        The requested sets's name.
      Throws:
        `XPRSexception`

    - #### getPWLNames

          public java.lang.String[] getPWLNames​(int first,
                                                int last)
                                         throws XPRSexception

      Get names of PWL constraints.
      Parameters:
        `first` - First PWL index (inclusive).
        `last` - Last PWL index (inclusive).
      Returns:
        The names for the specified PWL constraints.
      Throws:
        `XPRSexception`

    - #### getPWLName

          public java.lang.String getPWLName​(int index)
                                      throws XPRSexception

      Get a PWL constraint name.
      Parameters:
        `index` - objects.Index of the PWL constraint.
      Returns:
        The requested PWL constraint's name.
      Throws:
        `XPRSexception`

    - #### getGenConsNames

          public java.lang.String[] getGenConsNames​(int first,
                                                    int last)
                                             throws XPRSexception

      Get names of general constraints.
      Parameters:
        `first` - First general constraint index (inclusive).
        `last` - Last general constraint index (inclusive).
      Returns:
        The names for the specified general constraints.
      Throws:
        `XPRSexception`

    - #### getGenConsName

          public java.lang.String getGenConsName​(int index)
                                          throws XPRSexception

      Get a general constraint name.
      Parameters:
        `index` - objects.Index of the general constraint.
      Returns:
        The requested general constraint's name.
      Throws:
        `XPRSexception`

    - #### getIISData

          public XPRSprob.IISData getIISData​(int number)

      Get information about an IIS.

      Examples using `getIISData`:

      - IISExample.java
      Parameters:
        `number` - The index of the IIS to query.
      Returns:
        Information about the queried IIS.

    - #### IISStatus

          public XPRSprob.IISStatusInfo IISStatus()

      Get the IIS status.

      Examples using `IISStatus`:

      - FolioIIS.java
      - FolioMipIIS.java
      - IISExample.java
      Returns:
        IIS status information. If there are no IISs then the returned object will have all empty arrays.

    - #### getMIPEntities

          public XPRSprob.MIPEntityInfo getMIPEntities()

      Get information about MIP entities and SOS.
      Returns:
        The requested information.
      Since:
        43.00

    - #### getDiscreteCols

          public XPRSprob.MIPEntityInfo getDiscreteCols()

      Get information about MIP entities.

      Examples using `getDiscreteCols`:

      - AddMipSol.java
      - FixBV.java
      - RoundInt.java
      Returns:
        The requested information.
      Since:
        43.00

    - #### getSets

          @Deprecated
          public XPRSprob.MIPEntityInfo getSets()

      Deprecated.
      since 44.00, use getSetDefinitions() instead
      Get information about SOS.

      Examples using `getSets`:

      - Repair.java
      Returns:
        The requested information.
      Since:
        43.00

    - #### getSetDefinitions

          public XPRSprob.MIPEntityInfo getSetDefinitions()

      Get information about SOS.
      Returns:
        The requested information.
      Since:
        44.00

    - #### addColumns

          public VariableBuilder.ColumnArrayBuilder addColumns​(int dim)

      Create an 1-dimensional array of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toArray()` function.

             // Create a multi-dimensional array of binary columns
             int[]  x = prob.addColumns(dim)
                            .withType(com.dashoptimization.objects.ColumnType.Binary)
                            .toArray();

      See `VariableBuilder.ColumnArrayBuilder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Parameters:
        `dim` - Dimension.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public <K1> VariableBuilder.ColumnMapBuilder<K1> addColumns​(java.lang.Iterable<K1> iterable1)

      Create an 1-dimensional map of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toMap()` function.

             // Create a multi-dimensional array of binary columns
             java.util.HashMap<K1 ,Integer> x = prob.addColumns(iterable1 )
                                                .withType(com.dashoptimization.objects.ColumnType.Binary)
                                                .toMap();

      See `VariableBuilder.ColumnMapBuilder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Type Parameters:
        `K1` - Data type for dimension 1.
      Parameters:
        `iterable1` - Data for dimension 1.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public <K1> VariableBuilder.ColumnMapBuilder<K1> addColumns​(K1[] arr1)

      Create an 1-dimensional map of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toMap()` function.

             // Create a multi-dimensional array of binary columns
             java.util.HashMap<K1 ,Integer> x = prob.addColumns(COLL_PASS)
                                                .withType(com.dashoptimization.objects.ColumnType.Binary)
                                                .toMap();

      See `VariableBuilder.ColumnMapBuilder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Type Parameters:
        `K1` - Data type for dimension 1.
      Parameters:
        `arr1` - Data for the builder.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public <K1> VariableBuilder.ColumnMapBuilder<K1> addColumns​(java.util.stream.Stream<K1> strm)

      Create an 1-dimensional map of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toMap()` function.

             // Create a multi-dimensional array of binary columns
             java.util.HashMap<K1 ,Integer> x = prob.addColumns(COLL_PASS)
                                                .withType(com.dashoptimization.objects.ColumnType.Binary)
                                                .toMap();

      See `VariableBuilder.ColumnMapBuilder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Type Parameters:
        `K1` - Data type for dimension 1.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumn

          public int addColumn​(double lb,
                               double ub,
                               ColumnType type,
                               java.lang.String name)

      Add a single column to this problem.

      Examples using `addColumn`:

      - GoalProg.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      - TSP.java
      Parameters:
        `lb` - Lower bound for new column.
        `ub` - Upper bound for new column.
        `type` - Type for new column.
        `name` - Name for new column, can be `null`.
      Since:
        43.00

    - #### addColumns

          public VariableBuilder.ColumnArray2Builder addColumns​(int dim1,
                                                                int dim2)

      Create an 2-dimensional array of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toArray()` function.

             // Create a multi-dimensional array of binary columns
             int[] [] x = prob.addColumns(dim1 ,dim2)
                            .withType(com.dashoptimization.objects.ColumnType.Binary)
                            .toArray();

      See `VariableBuilder.ColumnArray2Builder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Parameters:
        `dim1` - Dimension 1.
        `dim2` - Dimension 2.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public <K1,​K2> VariableBuilder.ColumnMap2Builder<K1,​K2> addColumns​(java.lang.Iterable<K1> iterable1,
                                                                                         java.lang.Iterable<K2> iterable2)

      Create an 2-dimensional map of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toMap()` function.

             // Create a multi-dimensional array of binary columns
             com.dashoptimization.maps.HashMap2<K1 ,K2,Integer> x = prob.addColumns(iterable1 ,iterable2)
                                                .withType(com.dashoptimization.objects.ColumnType.Binary)
                                                .toMap();

      See `VariableBuilder.ColumnMap2Builder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Type Parameters:
        `K1` - Data type for dimension 1.
        `K2` - Data type for dimension 2.
      Parameters:
        `iterable1` - Data for dimension 1.
        `iterable2` - Data for dimension 2.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public <K1,​K2> VariableBuilder.ColumnMap2Builder<K1,​K2> addColumns​(K1[] arr1,
                                                                                         K2[] arr2)

      Create an 2-dimensional map of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toMap()` function.

             // Create a multi-dimensional array of binary columns
             com.dashoptimization.maps.HashMap2<K1 ,K2,Integer> x = prob.addColumns(COLL_PASS)
                                                .withType(com.dashoptimization.objects.ColumnType.Binary)
                                                .toMap();

      See `VariableBuilder.ColumnMap2Builder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Type Parameters:
        `K1` - Data type for dimension 1.
        `K2` - Data type for dimension 2.
      Parameters:
        `arr1` - Data for the builder.
        `arr2` - Data for the builder.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public VariableBuilder.ColumnArray3Builder addColumns​(int dim1,
                                                                int dim2,
                                                                int dim3)

      Create an 3-dimensional array of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toArray()` function.

             // Create a multi-dimensional array of binary columns
             int[] [] [] x = prob.addColumns(dim1 ,dim2 ,dim3)
                            .withType(com.dashoptimization.objects.ColumnType.Binary)
                            .toArray();

      See `VariableBuilder.ColumnArray3Builder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Parameters:
        `dim1` - Dimension 1.
        `dim2` - Dimension 2.
        `dim3` - Dimension 3.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public <K1,​K2,​K3> VariableBuilder.ColumnMap3Builder<K1,​K2,​K3> addColumns​(java.lang.Iterable<K1> iterable1,
                                                                                                           java.lang.Iterable<K2> iterable2,
                                                                                                           java.lang.Iterable<K3> iterable3)

      Create an 3-dimensional map of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toMap()` function.

             // Create a multi-dimensional array of binary columns
             com.dashoptimization.maps.HashMap3<K1 ,K2 ,K3,Integer> x = prob.addColumns(iterable1 ,iterable2 ,iterable3)
                                                .withType(com.dashoptimization.objects.ColumnType.Binary)
                                                .toMap();

      See `VariableBuilder.ColumnMap3Builder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Type Parameters:
        `K1` - Data type for dimension 1.
        `K2` - Data type for dimension 2.
        `K3` - Data type for dimension 3.
      Parameters:
        `iterable1` - Data for dimension 1.
        `iterable2` - Data for dimension 2.
        `iterable3` - Data for dimension 3.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public <K1,​K2,​K3> VariableBuilder.ColumnMap3Builder<K1,​K2,​K3> addColumns​(K1[] arr1,
                                                                                                           K2[] arr2,
                                                                                                           K3[] arr3)

      Create an 3-dimensional map of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toMap()` function.

             // Create a multi-dimensional array of binary columns
             com.dashoptimization.maps.HashMap3<K1 ,K2 ,K3,Integer> x = prob.addColumns(COLL_PASS)
                                                .withType(com.dashoptimization.objects.ColumnType.Binary)
                                                .toMap();

      See `VariableBuilder.ColumnMap3Builder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Type Parameters:
        `K1` - Data type for dimension 1.
        `K2` - Data type for dimension 2.
        `K3` - Data type for dimension 3.
      Parameters:
        `arr1` - Data for the builder.
        `arr2` - Data for the builder.
        `arr3` - Data for the builder.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public VariableBuilder.ColumnArray4Builder addColumns​(int dim1,
                                                                int dim2,
                                                                int dim3,
                                                                int dim4)

      Create an 4-dimensional array of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toArray()` function.

             // Create a multi-dimensional array of binary columns
             int[] [] [] [] x = prob.addColumns(dim1 ,dim2 ,dim3 ,dim4)
                            .withType(com.dashoptimization.objects.ColumnType.Binary)
                            .toArray();

      See `VariableBuilder.ColumnArray4Builder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Parameters:
        `dim1` - Dimension 1.
        `dim2` - Dimension 2.
        `dim3` - Dimension 3.
        `dim4` - Dimension 4.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public <K1,​K2,​K3,​K4> VariableBuilder.ColumnMap4Builder<K1,​K2,​K3,​K4> addColumns​(java.lang.Iterable<K1> iterable1,
                                                                                                                             java.lang.Iterable<K2> iterable2,
                                                                                                                             java.lang.Iterable<K3> iterable3,
                                                                                                                             java.lang.Iterable<K4> iterable4)

      Create an 4-dimensional map of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toMap()` function.

             // Create a multi-dimensional array of binary columns
             com.dashoptimization.maps.HashMap4<K1 ,K2 ,K3 ,K4,Integer> x = prob.addColumns(iterable1 ,iterable2 ,iterable3 ,iterable4)
                                                .withType(com.dashoptimization.objects.ColumnType.Binary)
                                                .toMap();

      See `VariableBuilder.ColumnMap4Builder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Type Parameters:
        `K1` - Data type for dimension 1.
        `K2` - Data type for dimension 2.
        `K3` - Data type for dimension 3.
        `K4` - Data type for dimension 4.
      Parameters:
        `iterable1` - Data for dimension 1.
        `iterable2` - Data for dimension 2.
        `iterable3` - Data for dimension 3.
        `iterable4` - Data for dimension 4.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public <K1,​K2,​K3,​K4> VariableBuilder.ColumnMap4Builder<K1,​K2,​K3,​K4> addColumns​(K1[] arr1,
                                                                                                                             K2[] arr2,
                                                                                                                             K3[] arr3,
                                                                                                                             K4[] arr4)

      Create an 4-dimensional map of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toMap()` function.

             // Create a multi-dimensional array of binary columns
             com.dashoptimization.maps.HashMap4<K1 ,K2 ,K3 ,K4,Integer> x = prob.addColumns(COLL_PASS)
                                                .withType(com.dashoptimization.objects.ColumnType.Binary)
                                                .toMap();

      See `VariableBuilder.ColumnMap4Builder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Type Parameters:
        `K1` - Data type for dimension 1.
        `K2` - Data type for dimension 2.
        `K3` - Data type for dimension 3.
        `K4` - Data type for dimension 4.
      Parameters:
        `arr1` - Data for the builder.
        `arr2` - Data for the builder.
        `arr3` - Data for the builder.
        `arr4` - Data for the builder.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public VariableBuilder.ColumnArray5Builder addColumns​(int dim1,
                                                                int dim2,
                                                                int dim3,
                                                                int dim4,
                                                                int dim5)

      Create an 5-dimensional array of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toArray()` function.

             // Create a multi-dimensional array of binary columns
             int[] [] [] [] [] x = prob.addColumns(dim1 ,dim2 ,dim3 ,dim4 ,dim5)
                            .withType(com.dashoptimization.objects.ColumnType.Binary)
                            .toArray();

      See `VariableBuilder.ColumnArray5Builder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Parameters:
        `dim1` - Dimension 1.
        `dim2` - Dimension 2.
        `dim3` - Dimension 3.
        `dim4` - Dimension 4.
        `dim5` - Dimension 5.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public <K1,​K2,​K3,​K4,​K5> VariableBuilder.ColumnMap5Builder<K1,​K2,​K3,​K4,​K5> addColumns​(java.lang.Iterable<K1> iterable1,
                                                                                                                                               java.lang.Iterable<K2> iterable2,
                                                                                                                                               java.lang.Iterable<K3> iterable3,
                                                                                                                                               java.lang.Iterable<K4> iterable4,
                                                                                                                                               java.lang.Iterable<K5> iterable5)

      Create an 5-dimensional map of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toMap()` function.

             // Create a multi-dimensional array of binary columns
             com.dashoptimization.maps.HashMap5<K1 ,K2 ,K3 ,K4 ,K5,Integer> x = prob.addColumns(iterable1 ,iterable2 ,iterable3 ,iterable4 ,iterable5)
                                                .withType(com.dashoptimization.objects.ColumnType.Binary)
                                                .toMap();

      See `VariableBuilder.ColumnMap5Builder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Type Parameters:
        `K1` - Data type for dimension 1.
        `K2` - Data type for dimension 2.
        `K3` - Data type for dimension 3.
        `K4` - Data type for dimension 4.
        `K5` - Data type for dimension 5.
      Parameters:
        `iterable1` - Data for dimension 1.
        `iterable2` - Data for dimension 2.
        `iterable3` - Data for dimension 3.
        `iterable4` - Data for dimension 4.
        `iterable5` - Data for dimension 5.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### addColumns

          public <K1,​K2,​K3,​K4,​K5> VariableBuilder.ColumnMap5Builder<K1,​K2,​K3,​K4,​K5> addColumns​(K1[] arr1,
                                                                                                                                               K2[] arr2,
                                                                                                                                               K3[] arr3,
                                                                                                                                               K4[] arr4,
                                                                                                                                               K5[] arr5)

      Create an 5-dimensional map of columns. This function returns a builder that generates columns according to a specification. The specification can be modified. In order to actually create the columns and get their indices, you have to call the returned builder's `toMap()` function.

             // Create a multi-dimensional array of binary columns
             com.dashoptimization.maps.HashMap5<K1 ,K2 ,K3 ,K4 ,K5,Integer> x = prob.addColumns(COLL_PASS)
                                                .withType(com.dashoptimization.objects.ColumnType.Binary)
                                                .toMap();

      See `VariableBuilder.ColumnMap5Builder` for details of how to modify the specification in the builder.

      Examples using `addColumns`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Type Parameters:
        `K1` - Data type for dimension 1.
        `K2` - Data type for dimension 2.
        `K3` - Data type for dimension 3.
        `K4` - Data type for dimension 4.
        `K5` - Data type for dimension 5.
      Parameters:
        `arr1` - Data for the builder.
        `arr2` - Data for the builder.
        `arr3` - Data for the builder.
        `arr4` - Data for the builder.
        `arr5` - Data for the builder.
      Returns:
        A builder that will create the columns.
      Since:
        43.00

    - #### copyProb

          public void copyProb​(XPRSprob src)
                        throws XPRSprobException

      Copy another problem over this one
      Throws:
        `XPRSprobException`

    - #### setProbname

          public void setProbname​(java.lang.String probname)
                           throws XPRSprobException

      Sets the current problem name.

      Examples using `setProbname`:

      - AddMipSol.java
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing the problem name.
      Throws:
        `XPRSprobException`

    - #### setLogFile

          public void setLogFile​(java.lang.String filename)
                          throws XPRSprobException

      This directs all Optimizer output to a log file.

      Examples using `setLogFile`:

      - FixBV.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      - Knapsack.java
      - LoadLP.java
      - MostViolated.java
      - RoundInt.java
      - Tableau.java
      - Trimloss.java
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters containing the file name to which all logging output should be written. If set to `null`, redirection of the output will stop.
      Throws:
        `XPRSprobException`

    - #### setDefaultControl

          public void setDefaultControl​(int control)
                                 throws XPRSprobException

      Sets a single control to its default value.
      Parameters:
        `control` - Integer, double or string control parameter whose default value is to be set.
      Throws:
        `XPRSprobException`

    - #### setDefaults

          public void setDefaults()
                           throws XPRSprobException

      Sets all controls to their default values.

      Examples using `setDefaults`:

      - AddMipSol.java
      Throws:
        `XPRSprobException`

    - #### readProb

          public void readProb​(java.lang.String filename,
                               java.lang.String flags)
                        throws XPRSprobException

      Reads an (X)MPS or LP format matrix from file.

      Examples using `readProb`:

      - AddMipSol.java
      - Callback.java
      - FixBV.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      - IISExample.java
      - Knapsack.java
      - MipSolEnum.java
      - MipSolPool.java
      - MostViolated.java
      - Repair.java
      - RoundInt.java
      - SaveSol.java
      - Tableau.java
      - Trimloss.java
      Parameters:
        `filename` - The path and file name from which the problem is to be read. Limited to `MAXPROBNAMELENGTH` characters. If omitted, the default problem_name is used with various extensions - see below.
        `flags` - Flags to be passed:
        - `l`: only `filename.lp` is searched for;
        - `v`: use the provided filename verbatim, without appending the `.mps`, `.mat` or `.lp` extension;
        - `z`: read a compressed input file.
      Throws:
        `XPRSprobException`

    - #### readProb

          public void readProb​(java.lang.String filename)
                        throws XPRSprobException

      Convenience wrapper for `readProb(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `readProb(String, String)`

    - #### loadLp

          public void loadLp​(java.lang.String probname,
                             int ncols,
                             int nrows,
                             byte[] rowtype,
                             double[] rhs,
                             double[] rng,
                             double[] objcoef,
                             int[] start,
                             int[] collen,
                             int[] rowind,
                             double[] rowcoef,
                             double[] lb,
                             double[] ub)
                      throws XPRSprobException

      Enables the user to pass a matrix directly to the Optimizer, rather than reading the matrix from a file.

      Examples using `loadLp`:

      - LoadLP.java
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing a name for the problem. If `probname` is `null`, the problem name will be an empty string.
        `ncols` - Number of structural columns in the matrix.
        `nrows` - Number of rows in the matrix (not including the objective). Objective coefficients must be supplied in the `objcoef` array, and the objective function should not be included in any of the other arrays.
        `rowtype` - Character array of length `nrows` containing the row types:
        - `L`: indicates a <= constraint;
        - `E`: indicates an = constraint;
        - `G`: indicates a >= constraint;
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        May be `null` if the problem contains no rows.
        `rhs` - Double array of length `nrows` containing the right hand side coefficients of the rows. The right hand side value for a range row gives the upper bound on the row. May be `null` if the problem contains no rows.
        `rng` - Double array of length `nrows` containing the range values for range rows. Values for all other rows will be ignored. May be `null` if not required. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients. This can be `null` to set all objective coefficients to 0 (zero).
        `start` - Integer array containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. This array contains one entry for each column, plus one more if `collen` is `null`. If `collen` is `null`, the last entry of `start` contains the position in the `rowind` and `rowcoef` arrays at which an extra column would start, if it were present. This value is also the length of the `rowind` and `rowcoef` arrays. May be `null` if the problem contains no coefficients.
        `collen` - Integer array of length `ncols` containing the number of nonzero elements in each column. May be `null` if not required. This array is not required if the non-zero coefficients in the `rowind` and `rowcoef` arrays are contiguous, and the `start` array has an additional entry as described above.
        `rowind` - Integer array containing the row indices for the nonzero elements in each column. May be `null` if the problem contains no coefficients. If the indices are input contiguously, with the columns in ascending order, the length of the `rowind` array is found by adding the `start` entry for the last column to the `collen` entry for the last column, or if `collen` is `null`, by the additional entry at the end of `start`.
        `rowcoef` - Double array containing the nonzero element values; length as for `rowind`. May be `null` if the problem contains no coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the columns. Use `XPRS_MINUSINFINITY` to represent a lower bound of minus infinity. If this is `null` then all lower bounds are 0 (zero).
        `ub` - Double array of length `ncols` containing the upper bounds on the columns. Use `XPRS_PLUSINFINITY` to represent an upper bound of plus infinity. If this is `null` then all upper bounds are infinite.
      Throws:
        `XPRSprobException`

    - #### loadLp

          public void loadLp​(java.lang.String probname,
                             int ncols,
                             int nrows,
                             byte[] rowtype,
                             double[] rhs,
                             double[] rng,
                             double[] objcoef,
                             long[] start,
                             int[] collen,
                             int[] rowind,
                             double[] rowcoef,
                             double[] lb,
                             double[] ub)
                      throws XPRSprobException

      Enables the user to pass a matrix directly to the Optimizer, rather than reading the matrix from a file.

      Examples using `loadLp`:

      - LoadLP.java
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing a name for the problem. If `probname` is `null`, the problem name will be an empty string.
        `ncols` - Number of structural columns in the matrix.
        `nrows` - Number of rows in the matrix (not including the objective). Objective coefficients must be supplied in the `objcoef` array, and the objective function should not be included in any of the other arrays.
        `rowtype` - Character array of length `nrows` containing the row types:
        - `L`: indicates a <= constraint;
        - `E`: indicates an = constraint;
        - `G`: indicates a >= constraint;
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        May be `null` if the problem contains no rows.
        `rhs` - Double array of length `nrows` containing the right hand side coefficients of the rows. The right hand side value for a range row gives the upper bound on the row. May be `null` if the problem contains no rows.
        `rng` - Double array of length `nrows` containing the range values for range rows. Values for all other rows will be ignored. May be `null` if not required. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients. This can be `null` to set all objective coefficients to 0 (zero).
        `start` - Integer array containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. This array contains one entry for each column, plus one more if `collen` is `null`. If `collen` is `null`, the last entry of `start` contains the position in the `rowind` and `rowcoef` arrays at which an extra column would start, if it were present. This value is also the length of the `rowind` and `rowcoef` arrays. May be `null` if the problem contains no coefficients.
        `collen` - Integer array of length `ncols` containing the number of nonzero elements in each column. May be `null` if not required. This array is not required if the non-zero coefficients in the `rowind` and `rowcoef` arrays are contiguous, and the `start` array has an additional entry as described above.
        `rowind` - Integer array containing the row indices for the nonzero elements in each column. May be `null` if the problem contains no coefficients. If the indices are input contiguously, with the columns in ascending order, the length of the `rowind` array is found by adding the `start` entry for the last column to the `collen` entry for the last column, or if `collen` is `null`, by the additional entry at the end of `start`.
        `rowcoef` - Double array containing the nonzero element values; length as for `rowind`. May be `null` if the problem contains no coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the columns. Use `XPRS_MINUSINFINITY` to represent a lower bound of minus infinity. If this is `null` then all lower bounds are 0 (zero).
        `ub` - Double array of length `ncols` containing the upper bounds on the columns. Use `XPRS_PLUSINFINITY` to represent an upper bound of plus infinity. If this is `null` then all upper bounds are infinite.
      Throws:
        `XPRSprobException`

    - #### loadQP

          public void loadQP​(java.lang.String probname,
                             int ncols,
                             int nrows,
                             byte[] rowtype,
                             double[] rhs,
                             double[] rng,
                             double[] objcoef,
                             int[] start,
                             int[] collen,
                             int[] rowind,
                             double[] rowcoef,
                             double[] lb,
                             double[] ub,
                             int nobjqcoefs,
                             int[] objqcol1,
                             int[] objqcol2,
                             double[] objqcoef)
                      throws XPRSprobException

      Used to load a quadratic problem into the Optimizer data structure. Such a problem may have quadratic terms in its objective function, although not in its constraints.
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing a name for the problem. If `probname` is `null`, the problem name will be an empty string.
        `ncols` - Number of structural columns in the matrix.
        `nrows` - Number of rows in the matrix (not including the objective row). Objective coefficients must be supplied in the `objcoef` array, and the objective function should not be included in any of the other arrays.
        `rowtype` - Character array of length `nrows` containing the row types:
        - `L`: indicates a <= constraint;
        - `E`: indicates an = constraint;
        - `G`: indicates a >= constraint;
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        May be `null` if the problem contains no rows.
        `rhs` - Double array of length `nrows` containing the right hand side coefficients of the rows. The right hand side value for a range row gives the upper bound on the row. May be `null` if the problem contains no rows.
        `rng` - Double array of length `nrows` containing the range values for range rows. Values for all other rows will be ignored. May be `null` if there are no ranged constraints. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients. This can be `null` to set all objective coefficients to 0 (zero).
        `start` - Integer array containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. This array contains one entry for each column, plus one more if `collen` is `null`. If `collen` is `null`, the last entry of `start` contains the position in the `rowind` and `rowcoef` arrays at which an extra column would start, if it were present. This value is also the length of the `rowind` and `rowcoef` arrays. May be `null` if the problem contains no coefficients.
        `collen` - Integer array of length `ncols` containing the number of nonzero elements in each column. May be `null` if not required. This array is not required if the non-zero coefficients in the `rowind` and `rowcoef` arrays are contiguous, and the `start` array has an additional entry as described above.
        `rowind` - Integer array containing the row indices for the nonzero elements in each column. May be `null` if the problem contains no coefficients. If the indices are input contiguously, with the columns in ascending order, the length of the `rowind` array is found by adding the `start` entry for the last column to the `collen` entry for the last column, or if `collen` is `null`, by the additional entry at the end of `start`.
        `rowcoef` - Double array containing the nonzero element values; length as for `rowind`. May be `null` if the problem contains no coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the columns. Use `XPRS_MINUSINFINITY` to represent a lower bound of minus infinity. If this is `null` then all lower bounds are 0 (zero).
        `ub` - Double array of length `ncols` containing the upper bounds on the columns. Use `XPRS_PLUSINFINITY` to represent an upper bound of plus infinity. If this is `null` then all upper bounds are infinite.
        `nobjqcoefs` - Number of quadratic terms.
        `objqcol1` - Integer array of size `nobjqcoefs` containing the column index of the first variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcol2` - Integer array of size `nobjqcoefs` containing the column index of the second variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcoef` - Double array of size `nobjqcoefs` containing the quadratic coefficients. May be `null` if all objective coefficients are zero.
      Throws:
        `XPRSprobException`

    - #### loadQP

          public void loadQP​(java.lang.String probname,
                             int ncols,
                             int nrows,
                             byte[] rowtype,
                             double[] rhs,
                             double[] rng,
                             double[] objcoef,
                             long[] start,
                             int[] collen,
                             int[] rowind,
                             double[] rowcoef,
                             double[] lb,
                             double[] ub,
                             long nobjqcoefs,
                             int[] objqcol1,
                             int[] objqcol2,
                             double[] objqcoef)
                      throws XPRSprobException

      Used to load a quadratic problem into the Optimizer data structure. Such a problem may have quadratic terms in its objective function, although not in its constraints.
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing a name for the problem. If `probname` is `null`, the problem name will be an empty string.
        `ncols` - Number of structural columns in the matrix.
        `nrows` - Number of rows in the matrix (not including the objective row). Objective coefficients must be supplied in the `objcoef` array, and the objective function should not be included in any of the other arrays.
        `rowtype` - Character array of length `nrows` containing the row types:
        - `L`: indicates a <= constraint;
        - `E`: indicates an = constraint;
        - `G`: indicates a >= constraint;
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        May be `null` if the problem contains no rows.
        `rhs` - Double array of length `nrows` containing the right hand side coefficients of the rows. The right hand side value for a range row gives the upper bound on the row. May be `null` if the problem contains no rows.
        `rng` - Double array of length `nrows` containing the range values for range rows. Values for all other rows will be ignored. May be `null` if there are no ranged constraints. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients. This can be `null` to set all objective coefficients to 0 (zero).
        `start` - Integer array containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. This array contains one entry for each column, plus one more if `collen` is `null`. If `collen` is `null`, the last entry of `start` contains the position in the `rowind` and `rowcoef` arrays at which an extra column would start, if it were present. This value is also the length of the `rowind` and `rowcoef` arrays. May be `null` if the problem contains no coefficients.
        `collen` - Integer array of length `ncols` containing the number of nonzero elements in each column. May be `null` if not required. This array is not required if the non-zero coefficients in the `rowind` and `rowcoef` arrays are contiguous, and the `start` array has an additional entry as described above.
        `rowind` - Integer array containing the row indices for the nonzero elements in each column. May be `null` if the problem contains no coefficients. If the indices are input contiguously, with the columns in ascending order, the length of the `rowind` array is found by adding the `start` entry for the last column to the `collen` entry for the last column, or if `collen` is `null`, by the additional entry at the end of `start`.
        `rowcoef` - Double array containing the nonzero element values; length as for `rowind`. May be `null` if the problem contains no coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the columns. Use `XPRS_MINUSINFINITY` to represent a lower bound of minus infinity. If this is `null` then all lower bounds are 0 (zero).
        `ub` - Double array of length `ncols` containing the upper bounds on the columns. Use `XPRS_PLUSINFINITY` to represent an upper bound of plus infinity. If this is `null` then all upper bounds are infinite.
        `nobjqcoefs` - Number of quadratic terms.
        `objqcol1` - Integer array of size `nobjqcoefs` containing the column index of the first variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcol2` - Integer array of size `nobjqcoefs` containing the column index of the second variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcoef` - Double array of size `nobjqcoefs` containing the quadratic coefficients. May be `null` if all objective coefficients are zero.
      Throws:
        `XPRSprobException`

    - #### loadMIQP

          public void loadMIQP​(java.lang.String probname,
                               int ncols,
                               int nrows,
                               byte[] rowtype,
                               double[] rhs,
                               double[] rng,
                               double[] objcoef,
                               int[] start,
                               int[] collen,
                               int[] rowind,
                               double[] rowcoef,
                               double[] lb,
                               double[] ub,
                               int nobjqcoefs,
                               int[] objqcol1,
                               int[] objqcol2,
                               double[] objqcoef,
                               int nentities,
                               int nsets,
                               byte[] coltype,
                               int[] entind,
                               double[] limit,
                               byte[] settype,
                               int[] setstart,
                               int[] setind,
                               double[] refval)
                        throws XPRSprobException

      Used to load a MIQP problem, hence a MIP with quadratic objective coefficients, into the Optimizer data structures. Integer, binary, partial integer, semi-continuous and semi-continuous integer variables can be defined, together with sets of type 1 and 2. The reference row values for the set members are passed as an array rather than specifying a reference row.
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing a name for the problem. If `probname` is `null`, the problem name will be an empty string.
        `ncols` - Number of structural columns in the matrix.
        `nrows` - Number of rows in the matrix (not including the objective). Objective coefficients must be supplied in the `objcoef` array, and the objective function should not be included in any of the other arrays.
        `rowtype` - Character array of length `nrows` containing the row type:
        - `L`: indicates a <= constraint;
        - `E`: indicates an = constraint;
        - `G`: indicates a >= constraint;
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        May be `null` if the problem contains no rows.
        `rhs` - Double array of length `nrows` containing the right hand side coefficients of the rows. The right hand side value for a range row gives the upper bound on the row. May be `null` if the problem contains no rows.
        `rng` - Double array of length `nrows` containing the range values for range rows. The values in the range array will only be read for `R` type rows. The entries for other type rows will be ignored. May be `null` if not required. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients. This can be `null` to set all objective coefficients to 0 (zero).
        `start` - Integer array containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. This array contains one entry for each column, plus one more if `collen` is `null`. If `collen` is `null`, the last entry of `start` contains the position in the `rowind` and `rowcoef` arrays at which an extra column would start, if it were present. This value is also the length of the `rowind` and `rowcoef` arrays. May be `null` if the problem contains no coefficients.
        `collen` - Integer array of length `ncols` containing the number of nonzero elements in each column. May be `null` if not required. This array is not required if the non-zero coefficients in the `rowind` and `rowcoef` arrays are contiguous, and the `start` array has an additional entry as described above.
        `rowind` - Integer array containing the row indices for the nonzero elements in each column. May be `null` if the problem contains no coefficients. If the indices are input contiguously, with the columns in ascending order, the length of the `rowind` array is found by adding the `start` entry for the last column to the `collen` entry for the last column, or if `collen` is `null`, by the additional entry at the end of `start`.
        `rowcoef` - Double array containing the nonzero element values; length as for `rowind`. May be `null` if the problem contains no coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the columns. Use `XPRS_MINUSINFINITY` to represent a lower bound of minus infinity. If this is `null` then all lower bounds are 0 (zero).
        `ub` - Double array of length `ncols` containing the upper bounds on the columns. Use `XPRS_PLUSINFINITY` to represent an upper bound of plus infinity. If this is `null` then all upper bounds are infinite.
        `nobjqcoefs` - Number of quadratic terms.
        `objqcol1` - Integer array of size `nobjqcoefs` containing the column index of the first variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcol2` - Integer array of size `nobjqcoefs` containing the column index of the second variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcoef` - Double array of size `nobjqcoefs` containing the quadratic coefficients. May be `null` if all objective coefficients are zero.
        `nentities` - Number of binary, integer, semi-continuous, semi-continuous integer and partial integer entities.
        `nsets` - Number of SOS1 and SOS2 sets.
        `coltype` - Character array of length `nentities` containing the entity types:
        - `B`: binary variables;
        - `I`: integer variables;
        - `P`: partial integer variables;
        - `S`: semi-continuous variables;
        - `R`: semi-continuous integers.
        May be `null` if all variables are continuous.
        `entind` - Integer array of length `nentities` containing the column indices of the MIP entities. May be `null` if the problem contains no entities.
        `limit` - Double array of length `nentities` containing the integer limits for the partial integer variables and lower bounds for semi-continuous and semi-continuous integer variables (any entries in the positions corresponding to binary and integer variables will be ignored). May be `null` if not required.
        `settype` - Character array of length `nsets` containing:
        - `1`: SOS1 type sets;
        - `2`: SOS2 type sets.
        May be `null` if not required.
        `setstart` - Integer array containing the offsets in the `setind` and `refval` arrays indicating the start of each set. This array has one entry for each set plus one extra entry containing the offset where an additional set would start, if it were present. May be `null` if not required.
        `setind` - Integer array of length `setstart[nsets]-1` containing the columns in each set. May be `null` if not required.
        `refval` - Double array of length `setstart[nsets]-1` containing the reference row entries for each member of the sets. These define the order for SOS2 constraints and may be used in branching for both types. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### loadMIQP

          public void loadMIQP​(java.lang.String probname,
                               int ncols,
                               int nrows,
                               byte[] rowtype,
                               double[] rhs,
                               double[] rng,
                               double[] objcoef,
                               long[] start,
                               int[] collen,
                               int[] rowind,
                               double[] rowcoef,
                               double[] lb,
                               double[] ub,
                               long nobjqcoefs,
                               int[] objqcol1,
                               int[] objqcol2,
                               double[] objqcoef,
                               int nentities,
                               int nsets,
                               byte[] coltype,
                               int[] entind,
                               double[] limit,
                               byte[] settype,
                               long[] setstart,
                               int[] setind,
                               double[] refval)
                        throws XPRSprobException

      Used to load a MIQP problem, hence a MIP with quadratic objective coefficients, into the Optimizer data structures. Integer, binary, partial integer, semi-continuous and semi-continuous integer variables can be defined, together with sets of type 1 and 2. The reference row values for the set members are passed as an array rather than specifying a reference row.
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing a name for the problem. If `probname` is `null`, the problem name will be an empty string.
        `ncols` - Number of structural columns in the matrix.
        `nrows` - Number of rows in the matrix (not including the objective). Objective coefficients must be supplied in the `objcoef` array, and the objective function should not be included in any of the other arrays.
        `rowtype` - Character array of length `nrows` containing the row type:
        - `L`: indicates a <= constraint;
        - `E`: indicates an = constraint;
        - `G`: indicates a >= constraint;
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        May be `null` if the problem contains no rows.
        `rhs` - Double array of length `nrows` containing the right hand side coefficients of the rows. The right hand side value for a range row gives the upper bound on the row. May be `null` if the problem contains no rows.
        `rng` - Double array of length `nrows` containing the range values for range rows. The values in the range array will only be read for `R` type rows. The entries for other type rows will be ignored. May be `null` if not required. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients. This can be `null` to set all objective coefficients to 0 (zero).
        `start` - Integer array containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. This array contains one entry for each column, plus one more if `collen` is `null`. If `collen` is `null`, the last entry of `start` contains the position in the `rowind` and `rowcoef` arrays at which an extra column would start, if it were present. This value is also the length of the `rowind` and `rowcoef` arrays. May be `null` if the problem contains no coefficients.
        `collen` - Integer array of length `ncols` containing the number of nonzero elements in each column. May be `null` if not required. This array is not required if the non-zero coefficients in the `rowind` and `rowcoef` arrays are contiguous, and the `start` array has an additional entry as described above.
        `rowind` - Integer array containing the row indices for the nonzero elements in each column. May be `null` if the problem contains no coefficients. If the indices are input contiguously, with the columns in ascending order, the length of the `rowind` array is found by adding the `start` entry for the last column to the `collen` entry for the last column, or if `collen` is `null`, by the additional entry at the end of `start`.
        `rowcoef` - Double array containing the nonzero element values; length as for `rowind`. May be `null` if the problem contains no coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the columns. Use `XPRS_MINUSINFINITY` to represent a lower bound of minus infinity. If this is `null` then all lower bounds are 0 (zero).
        `ub` - Double array of length `ncols` containing the upper bounds on the columns. Use `XPRS_PLUSINFINITY` to represent an upper bound of plus infinity. If this is `null` then all upper bounds are infinite.
        `nobjqcoefs` - Number of quadratic terms.
        `objqcol1` - Integer array of size `nobjqcoefs` containing the column index of the first variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcol2` - Integer array of size `nobjqcoefs` containing the column index of the second variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcoef` - Double array of size `nobjqcoefs` containing the quadratic coefficients. May be `null` if all objective coefficients are zero.
        `nentities` - Number of binary, integer, semi-continuous, semi-continuous integer and partial integer entities.
        `nsets` - Number of SOS1 and SOS2 sets.
        `coltype` - Character array of length `nentities` containing the entity types:
        - `B`: binary variables;
        - `I`: integer variables;
        - `P`: partial integer variables;
        - `S`: semi-continuous variables;
        - `R`: semi-continuous integers.
        May be `null` if all variables are continuous.
        `entind` - Integer array of length `nentities` containing the column indices of the MIP entities. May be `null` if the problem contains no entities.
        `limit` - Double array of length `nentities` containing the integer limits for the partial integer variables and lower bounds for semi-continuous and semi-continuous integer variables (any entries in the positions corresponding to binary and integer variables will be ignored). May be `null` if not required.
        `settype` - Character array of length `nsets` containing:
        - `1`: SOS1 type sets;
        - `2`: SOS2 type sets.
        May be `null` if not required.
        `setstart` - Integer array containing the offsets in the `setind` and `refval` arrays indicating the start of each set. This array has one entry for each set plus one extra entry containing the offset where an additional set would start, if it were present. May be `null` if not required.
        `setind` - Integer array of length `setstart[nsets]-1` containing the columns in each set. May be `null` if not required.
        `refval` - Double array of length `setstart[nsets]-1` containing the reference row entries for each member of the sets. These define the order for SOS2 constraints and may be used in branching for both types. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### fixMIPEntities

          public void fixMIPEntities​(int options)
                              throws XPRSprobException

      Fixes all the MIP entities to the values of the last found MIP solution. This is useful for finding the reduced costs for the continuous variables after the integer variables have been fixed to their optimal values.
      Parameters:
        `options` - Options how to fix the MIP entities.
        - `0`: If all MIP entities should be rounded to the nearest discrete value in the solution before being fixed.
        - `1`: If piecewise linear and general constraints as well as partial integers should be kept in the problem with only the non-convex decisions (i.e. which part of a non-convex piecewise linear function, which variable attains a maximum or the integer part of the partial integer) fixed. Otherwise all variables appearing in piecewise linear or general constraints and all partial integers will be fixed.
      Throws:
        `XPRSprobException`

    - #### loadModelCuts

          public void loadModelCuts​(int nrows,
                                    int[] rowind)
                             throws XPRSprobException

      Specifies that a set of rows in the matrix will be treated as model cuts.
      Parameters:
        `nrows` - The number of model cuts.
        `rowind` - An array of row indices to be treated as cuts.
      Throws:
        `XPRSprobException`

    - #### loadDelayedRows

          public void loadDelayedRows​(int nrows,
                                      int[] rowind)
                               throws XPRSprobException

      Specifies that a set of rows in the matrix will be treated as delayed rows during a tree search. These are rows that must be satisfied for any integer solution, but will not be loaded into the active set of constraints until required.
      Parameters:
        `nrows` - The number of delayed rows.
        `rowind` - An array of row indices to treat as delayed rows.
      Throws:
        `XPRSprobException`

    - #### loadDirs

          public void loadDirs​(int ndirs,
                               int[] colind,
                               int[] priority,
                               byte[] dir,
                               double[] uppseudo,
                               double[] downpseudo)
                        throws XPRSprobException

      Loads directives into the matrix.

      Examples using `loadDirs`:

      - Trimloss.java
      Parameters:
        `ndirs` - Number of directives.
        `colind` - Integer array of length `ndirs` containing the column numbers. A negative value indicates a set number (the first set being `-1`, the second `-2`, and so on).
        `priority` - Integer array of length `ndirs` containing the priorities for the columns or sets. Priorities must be between 0 and 1000, where columns/sets with smallest priority will be branched on first. May be `null` if not required.
        `dir` - Character array of length `ndirs` specifying the branching direction for each column or set:
        - `U`: the entity is to be forced up;
        - `D`: the entity is to be forced down;
        - `N`: not specified.
        May be `null` if not required.
        `uppseudo` - Double array of length `ndirs` containing the up pseudo costs for the columns or sets. May be `null` if not required.
        `downpseudo` - Double array of length `ndirs` containing the down pseudo costs for the columns or sets. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### loadBranchDirs

          public void loadBranchDirs​(int ncols,
                                     int[] colind,
                                     int[] dir)
                              throws XPRSprobException

      Loads directives into the current problem to specify which MIP entities the Optimizer should continue to branch on when a node solution is integer feasible.
      Parameters:
        `ncols` - Number of directives.
        `colind` - Integer array of length `ncols` containing the column numbers. A negative value indicates a set number (the first set being -1, the second -2, and so on).
        `dir` - Integer array of length `ncols` containing either 0 or 1 for the entities given in `colind`. Entities for which dir is set to 1 will be branched on until fixed before an integer feasible solution is returned. If `dir` is `null`, the branching directive will be set for all entities in `colind`.
      Throws:
        `XPRSprobException`

    - #### loadBranchDirs

          public void loadBranchDirs​(int x,
                                     int value)
                              throws XPRSprobException

      Convenience wrapper for `loadBranchDirs(int, int[], int[])`. This function only modifies a single element.
      Parameters:
        `x` - Index of element to modify.
        `value` - New value for `x`.
      Throws:
        `XPRSprobException`
      See Also:
        `loadBranchDirs(int, int[], int[])`

    - #### loadPresolveDirs

          public void loadPresolveDirs​(int ndirs,
                                       int[] colind,
                                       int[] priority,
                                       byte[] dir,
                                       double[] uppseudo,
                                       double[] downpseudo)
                                throws XPRSprobException

      Loads directives into the presolved matrix.
      Parameters:
        `ndirs` - Number of directives.
        `colind` - Integer array of length `ndirs` containing the column numbers. A negative value indicates a set number ( `-1` being the first set, `-2` the second, and so on).
        `priority` - Integer array of length `ndirs` containing the priorities for the columns or sets. May be `null` if not required.
        `dir` - Character array of length `ndirs` specifying the branching direction for each column or set:
        - `U`: the entity is to be forced up;
        - `D`: the entity is to be forced down;
        - `N`: not specified.
        May be `null` if not required.
        `uppseudo` - Double array of length `ndirs` containing the up pseudo costs for the columns or sets. May be `null` if not required.
        `downpseudo` - Double array of length `ndirs` containing the down pseudo costs for the columns or sets. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### loadMIP

          public void loadMIP​(java.lang.String probname,
                              int ncols,
                              int nrows,
                              byte[] rowtype,
                              double[] rhs,
                              double[] rng,
                              double[] objcoef,
                              int[] start,
                              int[] collen,
                              int[] rowind,
                              double[] rowcoef,
                              double[] lb,
                              double[] ub,
                              int nentities,
                              int nsets,
                              byte[] coltype,
                              int[] entind,
                              double[] limit,
                              byte[] settype,
                              int[] setstart,
                              int[] setind,
                              double[] refval)
                       throws XPRSprobException

      Used to load a MIP problem into the Optimizer data structures. Integer, binary, partial integer, semi-continuous and semi-continuous integer variables can be defined, together with sets of type 1 and 2. The reference row values for the set members are passed as an array rather than specifying a reference row.
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing a name for the problem. If `probname` is `null`, the problem name will be an empty string.
        `ncols` - Number of structural columns in the matrix.
        `nrows` - Number of rows in the matrix not (including the objective row). Objective coefficients must be supplied in the `objcoef` array, and the objective function should not be included in any of the other arrays.
        `rowtype` - Character array of length `nrows` containing the row types:
        - `L`: indicates a <= constraint;
        - `E`: indicates an = constraint;
        - `G`: indicates a >= constraint;
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        May be `null` if the problem contains no rows.
        `rhs` - Double array of length `nrows` containing the right hand side coefficients of the rows. The right hand side value for a range row gives the upper bound on the row. May be `null` if the problem contains no rows.
        `rng` - Double array of length `nrows` containing the range values for range rows. Values for all other rows will be ignored. May be `null` if not required. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients. This can be `null` to set all objective coefficients to 0 (zero).
        `start` - Integer array containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. This array contains one entry for each column, plus one more if `collen` is `null`. If `collen` is `null`, the last entry of `start` contains the position in the `rowind` and `rowcoef` arrays at which an extra column would start, if it were present. This value is also the length of the `rowind` and `rowcoef` arrays. May be `null` if the problem contains no coefficients.
        `collen` - Integer array of length `ncols` containing the number of nonzero elements in each column. May be `null` if not required. This array is not required if the non-zero coefficients in the `rowind` and `rowcoef` arrays are contiguous, and the `start` array has an additional entry as described above.
        `rowind` - Integer array containing the row indices for the nonzero elements in each column. May be `null` if the problem contains no coefficients. If the indices are input contiguously, with the columns in ascending order, the length of the `rowind` array is found by adding the `start` entry for the last column to the `collen` entry for the last column, or if `collen` is `null`, by the additional entry at the end of `start`.
        `rowcoef` - Double array containing the nonzero element values; length as for `rowind`. May be `null` if the problem contains no coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the columns. Use `XPRS_MINUSINFINITY` to represent a lower bound of minus infinity. If this is `null` then all lower bounds are 0 (zero).
        `ub` - Double array of length `ncols` containing the upper bounds on the columns. Use `XPRS_PLUSINFINITY` to represent an upper bound of plus infinity. If this is `null` then all upper bounds are infinite.
        `nentities` - Number of binary, integer, semi-continuous, semi-continuous integer and partial integer entities.
        `nsets` - Number of SOS1 and SOS2 sets.
        `coltype` - Character array of length `nentities` containing the entity types:
        - `B`: binary variables;
        - `I`: integer variables;
        - `P`: partial integer variables;
        - `S`: semi-continuous variables;
        - `R`: semi-continuous integer variables.
        May be `null` if all variables are continuous.
        `entind` - Integer array of length `nentities` containing the column indices of the MIP entities. May be `null` if the problem contains no entities.
        `limit` - Double array of length `nentities` containing the integer limits for the partial integer variables and lower bounds for semi-continuous and semi-continuous integer variables (any entries in the positions corresponding to binary and integer variables will be ignored). May be `null` if not required.
        `settype` - Character array of length `nsets` containing the set types:
        - `1`: SOS1 type sets;
        - `2`: SOS2 type sets.
        May be `null` if not required.
        `setstart` - Integer array containing the offsets in the `setind` and `refval` arrays indicating the start of each set. This array has one entry for each set plus one extra entry containing the offset where an additional set would start, if it were present. May be `null` if not required.
        `setind` - Integer array of length `setstart[nsets]-1` containing the columns in each set. May be `null` if not required.
        `refval` - Double array of length `setstart[nsets]-1` containing the reference row entries for each member of the sets. These define the order for SOS2 constraints and may be used in branching for both types. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### loadMIP

          public void loadMIP​(java.lang.String probname,
                              int ncols,
                              int nrows,
                              byte[] rowtype,
                              double[] rhs,
                              double[] rng,
                              double[] objcoef,
                              long[] start,
                              int[] collen,
                              int[] rowind,
                              double[] rowcoef,
                              double[] lb,
                              double[] ub,
                              int nentities,
                              int nsets,
                              byte[] coltype,
                              int[] entind,
                              double[] limit,
                              byte[] settype,
                              long[] setstart,
                              int[] setind,
                              double[] refval)
                       throws XPRSprobException

      Used to load a MIP problem into the Optimizer data structures. Integer, binary, partial integer, semi-continuous and semi-continuous integer variables can be defined, together with sets of type 1 and 2. The reference row values for the set members are passed as an array rather than specifying a reference row.
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing a name for the problem. If `probname` is `null`, the problem name will be an empty string.
        `ncols` - Number of structural columns in the matrix.
        `nrows` - Number of rows in the matrix not (including the objective row). Objective coefficients must be supplied in the `objcoef` array, and the objective function should not be included in any of the other arrays.
        `rowtype` - Character array of length `nrows` containing the row types:
        - `L`: indicates a <= constraint;
        - `E`: indicates an = constraint;
        - `G`: indicates a >= constraint;
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        May be `null` if the problem contains no rows.
        `rhs` - Double array of length `nrows` containing the right hand side coefficients of the rows. The right hand side value for a range row gives the upper bound on the row. May be `null` if the problem contains no rows.
        `rng` - Double array of length `nrows` containing the range values for range rows. Values for all other rows will be ignored. May be `null` if not required. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients. This can be `null` to set all objective coefficients to 0 (zero).
        `start` - Integer array containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. This array contains one entry for each column, plus one more if `collen` is `null`. If `collen` is `null`, the last entry of `start` contains the position in the `rowind` and `rowcoef` arrays at which an extra column would start, if it were present. This value is also the length of the `rowind` and `rowcoef` arrays. May be `null` if the problem contains no coefficients.
        `collen` - Integer array of length `ncols` containing the number of nonzero elements in each column. May be `null` if not required. This array is not required if the non-zero coefficients in the `rowind` and `rowcoef` arrays are contiguous, and the `start` array has an additional entry as described above.
        `rowind` - Integer array containing the row indices for the nonzero elements in each column. May be `null` if the problem contains no coefficients. If the indices are input contiguously, with the columns in ascending order, the length of the `rowind` array is found by adding the `start` entry for the last column to the `collen` entry for the last column, or if `collen` is `null`, by the additional entry at the end of `start`.
        `rowcoef` - Double array containing the nonzero element values; length as for `rowind`. May be `null` if the problem contains no coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the columns. Use `XPRS_MINUSINFINITY` to represent a lower bound of minus infinity. If this is `null` then all lower bounds are 0 (zero).
        `ub` - Double array of length `ncols` containing the upper bounds on the columns. Use `XPRS_PLUSINFINITY` to represent an upper bound of plus infinity. If this is `null` then all upper bounds are infinite.
        `nentities` - Number of binary, integer, semi-continuous, semi-continuous integer and partial integer entities.
        `nsets` - Number of SOS1 and SOS2 sets.
        `coltype` - Character array of length `nentities` containing the entity types:
        - `B`: binary variables;
        - `I`: integer variables;
        - `P`: partial integer variables;
        - `S`: semi-continuous variables;
        - `R`: semi-continuous integer variables.
        May be `null` if all variables are continuous.
        `entind` - Integer array of length `nentities` containing the column indices of the MIP entities. May be `null` if the problem contains no entities.
        `limit` - Double array of length `nentities` containing the integer limits for the partial integer variables and lower bounds for semi-continuous and semi-continuous integer variables (any entries in the positions corresponding to binary and integer variables will be ignored). May be `null` if not required.
        `settype` - Character array of length `nsets` containing the set types:
        - `1`: SOS1 type sets;
        - `2`: SOS2 type sets.
        May be `null` if not required.
        `setstart` - Integer array containing the offsets in the `setind` and `refval` arrays indicating the start of each set. This array has one entry for each set plus one extra entry containing the offset where an additional set would start, if it were present. May be `null` if not required.
        `setind` - Integer array of length `setstart[nsets]-1` containing the columns in each set. May be `null` if not required.
        `refval` - Double array of length `setstart[nsets]-1` containing the reference row entries for each member of the sets. These define the order for SOS2 constraints and may be used in branching for both types. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### scale

          public void scale​(int[] rowscale,
                            int[] colscale)
                     throws XPRSprobException

      Re-scales the current matrix.
      Parameters:
        `rowscale` - Integer array of size `ROWS` containing the powers of `2` with which to scale the rows, or `null` if not required.
        `colscale` - Integer array of size `COLS` containing the powers of `2` with which to scale the columns, or `null` if not required.
      Throws:
        `XPRSprobException`

    - #### readDirs

          public void readDirs​(java.lang.String filename)
                        throws XPRSprobException

      Reads a directives file to help direct the tree search.
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters containing the file name from which the directives are to be read. If omitted (or `null`), the default problem_name is used with a `.dir` extension.
      Throws:
        `XPRSprobException`

    - #### readDirs

          public void readDirs()
                        throws XPRSprobException

      Convenience wrapper for `readDirs(String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `readDirs(String)`

    - #### writeDirs

          public void writeDirs​(java.lang.String filename)
                         throws XPRSprobException

      Writes the tree search directives from the current problem to a directives file.
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters containing the file name to which the directives should be written. If omitted (or null), the default problem_name is used with a `.dir` extension.
      Throws:
        `XPRSprobException`

    - #### writeDirs

          public void writeDirs()
                         throws XPRSprobException

      Convenience wrapper for `writeDirs(String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writeDirs(String)`

    - #### unloadProb

          @Deprecated
          public void unloadProb()
                          throws XPRSprobException

      Deprecated.
      since 45.00.
      Unloads and frees all memory associated with the current problem. It also invalidates the current problem (as opposed to reading in an empty problem).
      Throws:
        `XPRSprobException`

    - #### setIndicators

          public void setIndicators​(int nrows,
                                    int[] rowind,
                                    int[] colind,
                                    int[] complement)
                             throws XPRSprobException

      Specifies that a set of rows in the matrix will be treated as indicator constraints during a tree search. An indicator constraint is made of a `condition` and a `constraint`. The `condition` is of the type "bin = value", where `bin` is a binary variable and `value` is either 0 or 1. The `constraint` is any matrix row (may be linear, quadratic or general nonlinear). During tree search, a row configured as an indicator constraint is enforced only when condition holds, that is only if the indicator variable `bin` has the specified value. Note that every row may only get assigned a single indicator variable and term. If a row needs to be activated by multiple different terms, the row needs to be duplicated so that each term can be assigned to a distinct row. If the indicator variable should be changed, the old term needs to be deleted first (by calling `delIndicators` or by calling this function with a comps argument of 0) before assigning a new one.
      Parameters:
        `nrows` - The number of indicator constraints.
        `rowind` - Integer array of length `nrows` containing the indices of the rows that define the constraint part for the indicator constraints.
        `colind` - Integer array of length `nrows` containing the column indices of the indicator variables.
        `complement` - Integer array of length `nrows` with the complement flags:
        - `0`: not an indicator constraint (in this case the corresponding entry in the `colind` array is ignored);
        - `1`: for indicator constraints with condition "`bin = 1`";
        - `-1`: for indicator constraints with condition "`bin = 0`".
      Throws:
        `XPRSprobException`

    - #### addPwlCons

          public void addPwlCons​(int npwls,
                                 int npoints,
                                 int[] colind,
                                 int[] resultant,
                                 int[] start,
                                 double[] xval,
                                 double[] yval)
                          throws XPRSprobException

      Adds one or more piecewise linear constraints to the problem. Each piecewise linear constraint `y = f(x)` consists of an (input) column x, a (different) resultant (output column) y and a piecewise linear function f. The piecewise linear function f is described by at least two breakpoints, which are given as combinations of x- and y-values. Discontinuous piecewise linear functions are supported, in this case both the left and right limit at a given point need to be entered as breakpoints. To differentiate between left and right limit, the breakpoints need to be given as a list with non-decreasing x-values.
      Parameters:
        `npwls` - The number of piecewise linear constraints to add.
        `npoints` - The total number of breakpoints of all piecewise linear constraints that should be added.
        `colind` - Integer array of length `npwls` containing the indices of the input variables x of the piecewise linear functions.
        `resultant` - Integer array of length `npwls` containing the indices of the output variables y of the piecewise linear functions.
        `start` - Integer array of length `npwls` containing the start index of each piecewise linear constraint in the `xval` and `yval` arrays.
        `xval` - Double array of length `npoints` containing the x-values of the breakpoints.
        `yval` - Double array of length `npoints` containing the y-values of the breakpoints.
      Throws:
        `XPRSprobException`

    - #### addPwlCons

          public void addPwlCons​(int npwls,
                                 long npoints,
                                 int[] colind,
                                 int[] resultant,
                                 long[] start,
                                 double[] xval,
                                 double[] yval)
                          throws XPRSprobException

      Adds one or more piecewise linear constraints to the problem. Each piecewise linear constraint `y = f(x)` consists of an (input) column x, a (different) resultant (output column) y and a piecewise linear function f. The piecewise linear function f is described by at least two breakpoints, which are given as combinations of x- and y-values. Discontinuous piecewise linear functions are supported, in this case both the left and right limit at a given point need to be entered as breakpoints. To differentiate between left and right limit, the breakpoints need to be given as a list with non-decreasing x-values.
      Parameters:
        `npwls` - The number of piecewise linear constraints to add.
        `npoints` - The total number of breakpoints of all piecewise linear constraints that should be added.
        `colind` - Integer array of length `npwls` containing the indices of the input variables x of the piecewise linear functions.
        `resultant` - Integer array of length `npwls` containing the indices of the output variables y of the piecewise linear functions.
        `start` - Integer array of length `npwls` containing the start index of each piecewise linear constraint in the `xval` and `yval` arrays.
        `xval` - Double array of length `npoints` containing the x-values of the breakpoints.
        `yval` - Double array of length `npoints` containing the y-values of the breakpoints.
      Throws:
        `XPRSprobException`

    - #### getPwlCons

          public void getPwlCons​(int[] colind,
                                 int[] resultant,
                                 int[] start,
                                 double[] xval,
                                 double[] yval,
                                 int maxpoints,
                                 IntHolder p_npoints,
                                 int first,
                                 int last)
                          throws XPRSprobException

      Returns the piecewise linear constraints `y = f(x)` in a given range.
      Parameters:
        `colind` - Integer array which will be filled with the indices of the input variables `x`. It must be of length `last-first+1`. May be `null` if not required.
        `resultant` - Integer array which will be filled with the indices of the output variables `y`. It must be of length `last-first+1`. May be `null` if not required.
        `start` - Integer array which will be filled with the start indices of the different constraints in the breakpoint arrays. It must be of length `last-first+2`. The `x`-values of the breakpoints of piecewise linear constraint `i < last` will be given in `xval[start[i]]` to `xval[start[i+1]]`. May be `null` if not required.
        `xval` - Double array of length `maxpoints` which will be filled with the `x`-values of the breakpoints. May be `null` if not required.
        `yval` - Double array of length `maxpoints` which will be filled with the `y`-values of the breakpoints. May be `null` if not required.
        `maxpoints` - Maximum number of breakpoints to be retrieved.
        `p_npoints` - Pointer to return the number of breakpoints in the selected constraints. If the number of breakpoints is greater than `maxpoints`, then only `maxpoints` elements will be returned in the `xval` and `yval` arrays. May be `null` if not required.
        `first` - First piecewise linear constraint in the range.
        `last` - Last piecewise linear constraint in the range.
      Throws:
        `XPRSprobException`

    - #### getPwlCons

          public void getPwlCons​(int[] colind,
                                 int[] resultant,
                                 long[] start,
                                 double[] xval,
                                 double[] yval,
                                 long maxpoints,
                                 LongHolder p_npoints,
                                 int first,
                                 int last)
                          throws XPRSprobException

      Returns the piecewise linear constraints `y = f(x)` in a given range.
      Parameters:
        `colind` - Integer array which will be filled with the indices of the input variables `x`. It must be of length `last-first+1`. May be `null` if not required.
        `resultant` - Integer array which will be filled with the indices of the output variables `y`. It must be of length `last-first+1`. May be `null` if not required.
        `start` - Integer array which will be filled with the start indices of the different constraints in the breakpoint arrays. It must be of length `last-first+2`. The `x`-values of the breakpoints of piecewise linear constraint `i < last` will be given in `xval[start[i]]` to `xval[start[i+1]]`. May be `null` if not required.
        `xval` - Double array of length `maxpoints` which will be filled with the `x`-values of the breakpoints. May be `null` if not required.
        `yval` - Double array of length `maxpoints` which will be filled with the `y`-values of the breakpoints. May be `null` if not required.
        `maxpoints` - Maximum number of breakpoints to be retrieved.
        `p_npoints` - Pointer to return the number of breakpoints in the selected constraints. If the number of breakpoints is greater than `maxpoints`, then only `maxpoints` elements will be returned in the `xval` and `yval` arrays. May be `null` if not required.
        `first` - First piecewise linear constraint in the range.
        `last` - Last piecewise linear constraint in the range.
      Throws:
        `XPRSprobException`

    - #### addGenCons

          public void addGenCons​(int ncons,
                                 int ncols,
                                 int nvals,
                                 XPRSenumerations.GenConsType[] contype,
                                 int[] resultant,
                                 int[] colstart,
                                 int[] colind,
                                 int[] valstart,
                                 double[] val)
                          throws XPRSprobException

      Adds one or more general constraints to the problem. Each general constraint `y = f(x1, ..., xn, c1, ..., cn)` consists of one or more (input) columns xi, zero or more constant values ci and a resultant (output column) y, different from all xi. General constraints include `maximum` and `minimum` (arbitrary number of input columns of any type and arbitrary number of input values, at least one total), `and` and `or` (at least one binary input column, no constant values, binary resultant) and `absolute value` (exactly one input column of arbitrary type, no constant values).
      Parameters:
        `ncons` - The number of general constraints to add.
        `ncols` - The total number of input variables in general constraints that should be added.
        `nvals` - The total number of constant values in general constraints that should be added.
        `contype` - Integer array of length `ncons` containing the types of the general constraints:
        - `XPRS_GENCONS_MAX (0)`: indicates a `maximum` constraint;
        - `XPRS_GENCONS_MIN (1)`: indicates a `minimum` constraint;
        - `XPRS_GENCONS_AND (2)`: indicates an `and` constraint.
        - `XPRS_GENCONS_OR (3)`: indicates an `or` constraint;
        - `XPRS_GENCONS_ABS (4)`: indicates an `absolute value` constraint.
        `resultant` - Integer array of length `ncons` containing the indices of the output variables of the general constraints.
        `colstart` - Integer array of length `ncons` containing the start index of each general constraint in the `colind` array.
        `colind` - Integer array of length `ncols` containing the input variables in all general constraints.
        `valstart` - Integer array of length `ncons` containing the start index of each general constraint in the `val` array (may be `null`if `nvals = 0`).
        `val` - Double array of length `nvals` containing the constant values in all general constraints (may be `null`if `nvals = 0`).
      Throws:
        `XPRSprobException`

    - #### addGenCons

          public void addGenCons​(int ncons,
                                 long ncols,
                                 long nvals,
                                 XPRSenumerations.GenConsType[] contype,
                                 int[] resultant,
                                 long[] colstart,
                                 int[] colind,
                                 long[] valstart,
                                 double[] val)
                          throws XPRSprobException

      Adds one or more general constraints to the problem. Each general constraint `y = f(x1, ..., xn, c1, ..., cn)` consists of one or more (input) columns xi, zero or more constant values ci and a resultant (output column) y, different from all xi. General constraints include `maximum` and `minimum` (arbitrary number of input columns of any type and arbitrary number of input values, at least one total), `and` and `or` (at least one binary input column, no constant values, binary resultant) and `absolute value` (exactly one input column of arbitrary type, no constant values).
      Parameters:
        `ncons` - The number of general constraints to add.
        `ncols` - The total number of input variables in general constraints that should be added.
        `nvals` - The total number of constant values in general constraints that should be added.
        `contype` - Integer array of length `ncons` containing the types of the general constraints:
        - `XPRS_GENCONS_MAX (0)`: indicates a `maximum` constraint;
        - `XPRS_GENCONS_MIN (1)`: indicates a `minimum` constraint;
        - `XPRS_GENCONS_AND (2)`: indicates an `and` constraint.
        - `XPRS_GENCONS_OR (3)`: indicates an `or` constraint;
        - `XPRS_GENCONS_ABS (4)`: indicates an `absolute value` constraint.
        `resultant` - Integer array of length `ncons` containing the indices of the output variables of the general constraints.
        `colstart` - Integer array of length `ncons` containing the start index of each general constraint in the `colind` array.
        `colind` - Integer array of length `ncols` containing the input variables in all general constraints.
        `valstart` - Integer array of length `ncons` containing the start index of each general constraint in the `val` array (may be `null`if `nvals = 0`).
        `val` - Double array of length `nvals` containing the constant values in all general constraints (may be `null`if `nvals = 0`).
      Throws:
        `XPRSprobException`

    - #### getGenCons

          public void getGenCons​(XPRSenumerations.GenConsType[] contype,
                                 int[] resultant,
                                 int[] colstart,
                                 int[] colind,
                                 int maxcols,
                                 IntHolder p_ncols,
                                 int[] valstart,
                                 double[] val,
                                 int maxvals,
                                 IntHolder p_nvals,
                                 int first,
                                 int last)
                          throws XPRSprobException

      Returns the general constraints `y = f(x1, ..., xn, c1, ..., cm)` in a given range.
      Parameters:
        `contype` - An integer array of length `last-first+1` which will be filled with the types of the general constraints:
        - `XPRS_GENCONS_MAX (0)`: indicates a `maximum` constraint;
        - `XPRS_GENCONS_MIN (1)`: indicates a `minimum` constraint;
        - `XPRS_GENCONS_AND (2)`: indicates an `and` constraint.
        - `XPRS_GENCONS_OR (3)`: indicates an `or` constraint;
        - `XPRS_GENCONS_ABS (4)`: indicates an `absolute value` constraint.
        May be `null` if not required.
        `resultant` - Integer array which will be filled with the indices of the output variables `y`. It must be of length `last-first+1`. May be `null` if not required.
        `colstart` - Integer array of length `last-first+2` which will be filled with the start index of each general constraint in the `colind` array. May be `null` if not required.
        `colind` - Integer array which will be filled with the indices of the input variables `xi`. May be `null` if not required.
        `maxcols` - Maximum number of input columns to be retrieved.
        `p_ncols` - Pointer to return the number of input columns in the `colind` array. If the number of input columns is greater than `maxcols`, then only `maxcols` elements will be returned. May be `null` if not required.
        `valstart` - Integer array of length `last-first+2` which will be filled with the start index of each general constraint in the `val` array. May be `null` if not required.
        `val` - Integer array which will be filled with the constant values `ci`. May be `null` if not required.
        `maxvals` - Maximum number of constant values to be retrieved.
        `p_nvals` - Pointer to return the number of constant values in the `val` array. If the number of constant values is greater than `maxvals`, then only `maxvals` elements will be returned.May be `null` if not required.
        `first` - First general constraint in the range.
        `last` - Last general constraint in the range.
      Throws:
        `XPRSprobException`

    - #### getGenCons

          public void getGenCons​(XPRSenumerations.GenConsType[] contype,
                                 int[] resultant,
                                 long[] colstart,
                                 int[] colind,
                                 long maxcols,
                                 LongHolder p_ncols,
                                 long[] valstart,
                                 double[] val,
                                 long maxvals,
                                 LongHolder p_nvals,
                                 int first,
                                 int last)
                          throws XPRSprobException

      Returns the general constraints `y = f(x1, ..., xn, c1, ..., cm)` in a given range.
      Parameters:
        `contype` - An integer array of length `last-first+1` which will be filled with the types of the general constraints:
        - `XPRS_GENCONS_MAX (0)`: indicates a `maximum` constraint;
        - `XPRS_GENCONS_MIN (1)`: indicates a `minimum` constraint;
        - `XPRS_GENCONS_AND (2)`: indicates an `and` constraint.
        - `XPRS_GENCONS_OR (3)`: indicates an `or` constraint;
        - `XPRS_GENCONS_ABS (4)`: indicates an `absolute value` constraint.
        May be `null` if not required.
        `resultant` - Integer array which will be filled with the indices of the output variables `y`. It must be of length `last-first+1`. May be `null` if not required.
        `colstart` - Integer array of length `last-first+2` which will be filled with the start index of each general constraint in the `colind` array. May be `null` if not required.
        `colind` - Integer array which will be filled with the indices of the input variables `xi`. May be `null` if not required.
        `maxcols` - Maximum number of input columns to be retrieved.
        `p_ncols` - Pointer to return the number of input columns in the `colind` array. If the number of input columns is greater than `maxcols`, then only `maxcols` elements will be returned. May be `null` if not required.
        `valstart` - Integer array of length `last-first+2` which will be filled with the start index of each general constraint in the `val` array. May be `null` if not required.
        `val` - Integer array which will be filled with the constant values `ci`. May be `null` if not required.
        `maxvals` - Maximum number of constant values to be retrieved.
        `p_nvals` - Pointer to return the number of constant values in the `val` array. If the number of constant values is greater than `maxvals`, then only `maxvals` elements will be returned.May be `null` if not required.
        `first` - First general constraint in the range.
        `last` - Last general constraint in the range.
      Throws:
        `XPRSprobException`

    - #### delPwlCons

          public void delPwlCons​(int npwls,
                                 int[] pwlind)
                          throws XPRSprobException

      Delete piecewise linear constraints from a problem.
      Parameters:
        `npwls` - Number of piecewise linear constraints to delete.
        `pwlind` - An integer array of length `npwls` containing the piecewise linear constraints to delete.
      Throws:
        `XPRSprobException`

    - #### delGenCons

          public void delGenCons​(int ncons,
                                 int[] conind)
                          throws XPRSprobException

      Delete general constraints from a problem.
      Parameters:
        `ncons` - Number of general constraints to delete.
        `conind` - An integer array of length `ncons` containing the general constraints to delete.
      Throws:
        `XPRSprobException`

    - #### dumpControls

          public void dumpControls()
                            throws XPRSprobException

      Displays the list of controls and their current value for those controls that have been set to a non default value.
      Throws:
        `XPRSprobException`

    - #### getIndicators

          public void getIndicators​(int[] colind,
                                    int[] complement,
                                    int first,
                                    int last)
                             throws XPRSprobException

      Returns the indicator constraint condition (indicator variable and complement flag) associated to the rows in a given range.
      Parameters:
        `colind` - Integer array of length `last-first+1` where the column indices of the indicator variables are to be placed. May be `null`.
        `complement` - Integer array of length `last-first+1` where the indicator complement flags will be returned:
        - `0`: not an indicator constraint (in this case the corresponding entry in the `colind` array is ignored);
        - `1`: for indicator constraints with condition "`bin = 1`";
        - `-1`: for indicator constraints with condition "`bin = 0`".
        May be `null`.
        `first` - First row in the range.
        `last` - Last row in the range (inclusive).
      Throws:
        `XPRSprobException`

    - #### delIndicators

          public void delIndicators​(int first,
                                    int last)
                             throws XPRSprobException

      Delete indicator constraints. This turns the specified rows into normal rows (not controlled by indicator variables).
      Parameters:
        `first` - First row in the range.
        `last` - Last row in the range (inclusive).
      Throws:
        `XPRSprobException`

    - #### minim

          @Deprecated
          public void minim​(java.lang.String flags)
                     throws XPRSprobException

      Deprecated.
      since 38.00, use `optimize()` instead
      Throws:
        `XPRSprobException`

    - #### minim

          @Deprecated
          public void minim()
                     throws XPRSprobException

      Deprecated.
      since 38.00, use `optimize()` instead.
      Convenience wrapper for `minim(String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `minim(String)`

    - #### maxim

          @Deprecated
          public void maxim​(java.lang.String flags)
                     throws XPRSprobException

      Deprecated.
      since 38.00, use `optimize()` instead
      Throws:
        `XPRSprobException`

    - #### maxim

          @Deprecated
          public void maxim()
                     throws XPRSprobException

      Deprecated.
      since 38.00, use `optimize()` instead.
      Convenience wrapper for `maxim(String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `maxim(String)`

    - #### lpOptimize

          public void lpOptimize​(java.lang.String flags)
                          throws XPRSprobException

      This function begins a search for the optimal continuous (LP) solution. The direction of optimization is given by `OBJSENSE`. The status of the problem when the function completes can be checked using `LPSTATUS`. Any MIP entities in the problem will be ignored.

      Examples using `lpOptimize`:

      - CuttingStock.java
      - ELS.java
      - FolioHeuristic.java
      - RecursiveFinancialPlanning.java
      - RoundInt.java
      Parameters:
        `flags` - Flags to pass to `lpOptimize` ( `LPOPTIMIZE`). The default is `""` or `null`, in which case the algorithm used is determined by the `DEFAULTALG` control. If the argument includes:
        - `b`: the problem will be solved using the Newton barrier method, or the Hybrid gradient method if `BARALG` is set to 4;
        - `p`: the problem will be solved using the primal simplex algorithm;
        - `d`: the problem will be solved using the dual simplex algorithm;
        - `n`: the network part of the problem will be identified and solved using the network simplex algorithm;
      Throws:
        `XPRSprobException`

    - #### lpOptimize

          public void lpOptimize()
                          throws XPRSprobException

      Convenience wrapper for `lpOptimize(String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `lpOptimize(String)`

    - #### mipOptimize

          public void mipOptimize​(java.lang.String flags)
                           throws XPRSprobException

      This function begins a tree search for the optimal MIP solution. The direction of optimization is given by `OBJSENSE`. The status of the problem when the function completes can be checked using `MIPSTATUS`.

      Examples using `mipOptimize`:

      - FolioHeuristic.java
      Parameters:
        `flags` - Flags to pass to `mipOptimize` ( `MIPOPTIMIZE`), which specifies how to solve the initial continuous problem where the MIP entities are relaxed. The default is `""` or `null`, in which case the choice of the LP algorithm is left to the solver. If the argument includes:
        - `b`: the initial continuous relaxation will be solved using the Newton barrier method (or the hybrid gradient method if `BARALG` is set to 4);
        - `p`: the initial continuous relaxation will be solved using the primal simplex algorithm;
        - `d`: the initial continuous relaxation will be solved using the dual simplex algorithm;
        - `n`: the network part of the initial continuous relaxation will be identified and solved using the network simplex algorithm;
        - `l`: stop after having solved the initial continous relaxation.
      Throws:
        `XPRSprobException`

    - #### mipOptimize

          public void mipOptimize()
                           throws XPRSprobException

      Convenience wrapper for `mipOptimize(String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `mipOptimize(String)`

    - #### optimize

          public void optimize​(java.lang.String flags,
                               IntHolder solvestatus,
                               IntHolder solstatus)
                        throws XPRSprobException

      This function begins a search for the optimal solution of the problem. The direction of optimization is given by `OBJSENSE`.

      Examples using `optimize`:

      - AddMipSol.java
      - BinBurglar.java
      - BoolVars.java
      - Boxes02.java
      - Callback.java
      - Capbgt2l.java
      - CapitalBudgeting.java
      - Catenary.java
      - ContractAllocation.java
      - CuttingStock.java
      - ELSCut.java
      - ELSManagedCuts.java
      - FacilityLocationArray.java
      - FacilityLocationCollection.java
      - FixBV.java
      - Folio.java
      - FolioCB.java
      - FolioHeuristic.java
      - FolioIIS.java
      - FolioInit.java
      - FolioMip1.java
      - FolioMip2.java
      - FolioMipIIS.java
      - FolioQC.java
      - FolioQP.java
      - GeneralConstraints.java
      - Glidert.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      - GoalProg.java
      - IISExample.java
      - Knapsack.java
      - LoadLP.java
      - MipSolPool.java
      - MostViolated.java
      - MultipleKnapsack_Arrays.java
      - MultipleKnapsack_Collections.java
      - MultipleProblems.java
      - PiecewiseLinear.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonObjects.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      - Pplan.java
      - Pplan2.java
      - ProductionPlanning_Index.java
      - PurchasePWL.java
      - PurchaseSOS2.java
      - QuadraticProgramming.java
      - RecursiveFinancialPlanning.java
      - RoundInt.java
      - Sangraalind.java
      - SaveSol.java
      - SpecialOrderedSets.java
      - SpecialOrderedSetsQuadratic.java
      - TSP.java
      - Tableau.java
      - TravelingSalesPerson.java
      - Trimloss.java
      - Wagon.java
      Parameters:
        `flags` - Flags to pass to `optimize` ( `OPTIMIZE`). The default is `""` or `null`. If the argument includes:
        - `s`: solve the problem to local optimality;
        - `x`: solve the problem to global optimality;
        - `l`: if a branch and bound search is necessary to solve the problem, stop after solving the root node.
        `solvestatus` - The solve status after termination. Takes the same values as `SOLVESTATUS`
        `solstatus` - The solution status after termination. Takes the same values as `SOLSTATUS`
      Throws:
        `XPRSprobException`

    - #### readSlxSol

          public void readSlxSol​(java.lang.String filename,
                                 java.lang.String flags)
                          throws XPRSprobException

      Reads an ASCII solution file [ `.slx`] created by the `writeSlxSol` function.
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters containing the file name to which the solution is to be read. If omitted, the default problem_name is used with a `.slx` extension.
        `flags` - Flags to pass to `readSlxSol` ( `READSLXSOL`):
        - `l`: read the solution as an LP solution in case of a MIP problem;
        - `m`: read the solution as a solution for the MIP problem;
        - `a`: read multiple MIP solutions from the `.slx` file and add them to the MIP problem;
        - `v`: use the provided filename verbatim, without appending the `.slx` extension;
        - `z`: read a compressed input file.
      Throws:
        `XPRSprobException`

    - #### readSlxSol

          public void readSlxSol​(java.lang.String filename)
                          throws XPRSprobException

      Convenience wrapper for `readSlxSol(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `readSlxSol(String, String)`

    - #### readSlxSol

          public void readSlxSol()
                          throws XPRSprobException

      Convenience wrapper for `readSlxSol(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `readSlxSol(String, String)`

    - #### alter

          @Deprecated
          public void alter​(java.lang.String filename)
                     throws XPRSprobException

      Deprecated.
      since 45.00, use functions to directly manipulate matrix data.
      Alters or changes matrix elements, right hand sides and constraint senses in the current problem.
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters specifying the file to be read. If omitted, the default problem_name is used with a `.alt` extension.
      Throws:
        `XPRSprobException`

    - #### readBasis

          public void readBasis​(java.lang.String filename,
                                java.lang.String flags)
                         throws XPRSprobException

      Instructs the Optimizer to read in a previously saved basis from a file.

      Examples using `readBasis`:

      - AddMipSol.java
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters containing the file name from which the basis is to be read. If omitted, the default problem_name is used with a `.bss` extension.
        `flags` - Flags to pass to `readBasis` ( `READBASIS`):
        - `n`: input basis file containing basic solution values;
        - `t`: input a compact advanced form of the basis;
        - `v`: use the provided filename verbatim, without appending the `.bss` extension;
        - `z`: read a compressed input file.
      Throws:
        `XPRSprobException`

    - #### readBasis

          public void readBasis​(java.lang.String filename)
                         throws XPRSprobException

      Convenience wrapper for `readBasis(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `readBasis(String, String)`

    - #### readBasis

          public void readBasis()
                         throws XPRSprobException

      Convenience wrapper for `readBasis(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `readBasis(String, String)`

    - #### readBinSol

          public void readBinSol​(java.lang.String filename,
                                 java.lang.String flags)
                          throws XPRSprobException

      Reads a solution from a binary solution file.
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters containing the file name from which the solution is to be read. If omitted, the default problem_name is used with a `.sol` extension.
        `flags` - Flags to pass to `readBinSol` ( `READBINSOL`):
        - `m`: load the solution as a solution for the MIP;
        - `x`: load the solution as a solution for the LP;
        - `v`: use the provided filename verbatim, without appending the `.sol` extension;
        - `z`: read a compressed input file.
      Throws:
        `XPRSprobException`

    - #### readBinSol

          public void readBinSol​(java.lang.String filename)
                          throws XPRSprobException

      Convenience wrapper for `readBinSol(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `readBinSol(String, String)`

    - #### readBinSol

          public void readBinSol()
                          throws XPRSprobException

      Convenience wrapper for `readBinSol(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `readBinSol(String, String)`

    - #### getInfeas

          public void getInfeas​(IntHolder p_nprimalcols,
                                IntHolder p_nprimalrows,
                                IntHolder p_ndualrows,
                                IntHolder p_ndualcols,
                                int[] x,
                                int[] slack,
                                int[] duals,
                                int[] djs)
                         throws XPRSprobException

      Returns a list of infeasible primal and dual variables.
      Parameters:
        `p_nprimalcols` - Pointer to an integer where the number of primal infeasible variables is returned.
        `p_nprimalrows` - Pointer to an integer where the number of primal infeasible rows is returned.
        `p_ndualrows` - Pointer to an integer where the number of dual infeasible rows is returned.
        `p_ndualcols` - Pointer to an integer where the number of dual infeasible variables is returned.
        `x` - Integer array of length `p_nprimalcols` where the indices of the primal infeasible variables will be returned. May be `null` if not required.
        `slack` - Integer array of length `p_nprimalrows` where the indices of the primal infeasible rows will be returned. May be `null` if not required.
        `duals` - Integer array of length `p_ndualrows` where the indices of the dual infeasible rows will be returned. May be `null` if not required.
        `djs` - Integer array of length `p_ndualcols` where the indices of the dual infeasible variables will be returned. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getScaledInfeas

          public void getScaledInfeas​(IntHolder p_nprimalcols,
                                      IntHolder p_nprimalrows,
                                      IntHolder p_ndualrows,
                                      IntHolder p_ndualcols,
                                      int[] x,
                                      int[] slack,
                                      int[] duals,
                                      int[] djs)
                               throws XPRSprobException

      Returns a list primal and dual variables that are infeasible for the scaled original problem. If the problem is currently presolved, it is postsolved before the function returns.
      Parameters:
        `p_nprimalcols` - Number of primal infeasible variables.
        `p_nprimalrows` - Number of primal infeasible rows.
        `p_ndualrows` - Number of dual infeasible rows.
        `p_ndualcols` - Number of dual infeasible variables.
        `x` - Integer array of length `p_nprimalcols` where the indices of the primal infeasible variables will be returned. May be `null` if not required.
        `slack` - Integer array of length `p_nprimalrows` where the indices of the primal infeasible rows will be returned. May be `null` if not required.
        `duals` - Integer array of length `p_ndualrows` where the indices of the dual infeasible rows will be returned. May be `null` if not required.
        `djs` - Integer array of length `p_ndualcols` where the indices of the dual infeasible variables will be returned. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getUnbVec

          public void getUnbVec​(IntHolder p_seq)
                         throws XPRSprobException

      Returns the index vector which causes the primal simplex or dual simplex algorithm to determine that a matrix is primal or dual unbounded respectively.
      Parameters:
        `p_seq` - Pointer to an integer where the vector causing the problem to be detected as being primal or dual unbounded will be returned. In the dual simplex case, the vector is the leaving row for which the dual simplex detected dual unboundedness. In the primal simplex case, the vector is the entering row `p_seq` (if `p_seq` is in the range `0` to `ROWS` `-1`) or column (variable) `p_seq-ROWS-` `SPAREROWS` (if `p_seq` is between `ROWS+SPAREROWS` and `ROWS+SPAREROWS+` `COLS` `-1`) for which the primal simplex detected primal unboundedness.
      Throws:
        `XPRSprobException`

    - #### getUnbVec

          public int getUnbVec()

      Convenience wrapper for `getUnbVec(com.dashoptimization.IntHolder)` that returns the output argument.
      Returns:
        The value that the wrapped function would return in p_seq.

    - #### crossoverLpSol

          public void crossoverLpSol​(IntHolder p_status)
                              throws XPRSprobException

      Provides a basic optimal solution for a given solution of an LP problem. This function behaves like the crossover after the barrier algorithm.
      Parameters:
        `p_status` - Pointer to an `int` where the status will be returned. The status is one of:
        - `0`: The crossover is successful.
        - `1`: The crossover is not performed because the problem has no solution.
      Throws:
        `XPRSprobException`

    - #### crossoverLpSol

          public int crossoverLpSol()

      Convenience wrapper for `crossoverLpSol(com.dashoptimization.IntHolder)` that returns the output argument.
      Returns:
        The value that the wrapped function would return in p_status.

    - #### tune

          public void tune​(java.lang.String flags)
                    throws XPRSprobException

      This function begins a tuner session for the current problem. The tuner will solve the problem multiple times while evaluating a list of control settings and promising combinations of them. When finished, the tuner will select and set the best control setting on the problem. Note that the direction of optimization is given by `OBJSENSE`.
      Parameters:
        `flags` - Flags to pass to `tune`, which specify whether to tune the current problem as an LP or a MIP problem, and the algorithm for solving the LP problem or the initial LP relaxation of the MIP. The flags are optional. If the argument includes:
        - `l`: will tune the problem as an LP (mutually exclusive with flag `g`);
        - `g`: will tune the problem as a MIP (mutually exclusive with flag `l`);
        - `x`: will tune the problem as a Global Optimization problem with Xpress Global;
        - `d`: will use the dual simplex method;
        - `p`: will use the primal simplex method;
        - `b`: will use the barrier method;
        - `n`: will use the network simplex method.
      Throws:
        `XPRSprobException`

    - #### tuneProbSetFile

          public void tuneProbSetFile​(java.lang.String setfile,
                                      int ifmip,
                                      int sense)
                               throws XPRSprobException

      This function begins a tuner session for a set of problems. The tuner will solve the problems multiple times while evaluating a list of control settings and promising combinations of them. When finished, the tuner will select and set the best control setting on the problems.
      Parameters:
        `setfile` - A plain text file which contains a list of problem filenames.
        `ifmip` -
        - `-1`: to automatically determine whether to solve the problem set as LP or MIP;
        - `0`: to force the tuner to tune the problem set as LP;
        - `1`: to force the tuner to tune the problem set as MIP.
        `sense` -
        - `0`: to automatically determine the sense of each problem;
        - `1`: to force the tuner to minimize each problem;
        - `-1`: to force the tuner to maximize each problem.
      Throws:
        `XPRSprobException`

    - #### tunerWriteMethod

          public void tunerWriteMethod​(java.lang.String methodfile)
                                throws XPRSprobException

      This function writes the current tuner method to a given file or prints it to the console.
      Parameters:
        `methodfile` - The method file name, to which the tuner will write the current tuner method. If the input is `"stdout"` or `"STDOUT"`, then the tuner will print the method to the console instead.
      Throws:
        `XPRSprobException`

    - #### tunerReadMethod

          public void tunerReadMethod​(java.lang.String methodfile)
                               throws XPRSprobException

      This function loads a user defined tuner method from the given file.
      Parameters:
        `methodfile` - The method file name, from which the tuner can load a user-defined tuner method.
      Throws:
        `XPRSprobException`

    - #### getBarNumStability

          @Deprecated
          public void getBarNumStability​(int[] colstab,
                                         int[] rowstab)
                                  throws XPRSprobException

      Deprecated.
      since 45.00.
      Throws:
        `XPRSprobException`

    - #### getLastBarSol

          public void getLastBarSol​(double[] x,
                                    double[] slack,
                                    double[] duals,
                                    double[] djs,
                                    IntHolder p_status)
                             throws XPRSprobException

      Used to obtain the last barrier solution values following optimization that used the barrier solver.
      Parameters:
        `x` - Double array of length `ORIGINALCOLS` where the values of the primal variables will be returned. May be `null` if not required.
        `slack` - Double array of length `ORIGINALROWS` where the values of the slack variables will be returned. May be `null` if not required.
        `duals` - Double array of length `ORIGINALROWS` where the values of the dual variables ( `cBTB-1`) will be returned. May be `null` if not required.
        `djs` - Double array of length `ORIGINALCOLS` where the reduced cost for each variable ( `cT-cBTB-1A`) will be returned. May be `null` if not required.
        `p_status` - Status of the last barrier solve. Value matches that of `LPSTATUS` should the solve have been stopped immediately after the barrier.
      Throws:
        `XPRSprobException`

    - #### clearIIS

          public void clearIIS()
                        throws XPRSprobException

      Resets the search for Irreducible Infeasible Sets (IIS).
      Throws:
        `XPRSprobException`

    - #### firstIIS

          public void firstIIS​(int mode,
                               IntHolder p_status)
                        throws XPRSprobException

      Initiates a search for an Irreducible Infeasible Set (IIS) in an infeasible problem.

      Examples using `firstIIS`:

      - FolioIIS.java
      - FolioMipIIS.java
      - IISExample.java
      Parameters:
        `mode` - The IIS search mode:
        - `0`: stops after finding the initial infeasible subproblem;
        - `1`: find an IIS, emphasizing simplicity of the IIS;
        - `2`: find an IIS, emphasizing a quick result.
        `p_status` - The status after the search:
        - `0`: success;
        - `1`: feasible problem;
        - `2`: error;
        - `3`: timeout or interruption.
      Throws:
        `XPRSprobException`

    - #### firstIIS

          public int firstIIS​(int mode)

      Convenience wrapper for `firstIIS(int,com.dashoptimization.IntHolder)` that returns the output argument.

      Examples using `firstIIS`:

      - FolioIIS.java
      - FolioMipIIS.java
      - IISExample.java
      Parameters:
        `mode` - The IIS search mode:
        - `0`: stops after finding the initial infeasible subproblem;
        - `1`: find an IIS, emphasizing simplicity of the IIS;
        - `2`: find an IIS, emphasizing a quick result.
      Returns:
        The value that the wrapped function would return in p_status.

    - #### nextIIS

          public void nextIIS​(IntHolder p_status)
                       throws XPRSprobException

      Continues the search for further Irreducible Infeasible Sets (IIS), or calls `firstIIS` ( `IIS`) if no IIS has been identified yet.

      Examples using `nextIIS`:

      - FolioIIS.java
      - IISExample.java
      Parameters:
        `p_status` - The status after the search:
        - `0`: success;
        - `1`: no more IIS could be found, or problem is feasible if no `firstIIS` call preceded;
        - `2`: on error (when the function returns nonzero).
      Throws:
        `XPRSprobException`

    - #### nextIIS

          public int nextIIS()

      Convenience wrapper for `nextIIS(com.dashoptimization.IntHolder)` that returns the output argument.

      Examples using `nextIIS`:

      - FolioIIS.java
      - IISExample.java
      Returns:
        The value that the wrapped function would return in p_status.

    - #### printIIS

          public void printIIS​(int iis)
                        throws XPRSprobException

      Prints a given Irreducible Infeasible Set (IIS) in the log. If 0 is passed as the IIS number parameter, the initial infeasible subproblem is printed.
      Parameters:
        `iis` - The ordinal number of the IIS to be printed.
      Throws:
        `XPRSprobException`

    - #### IISStatus

          public void IISStatus​(IntHolder p_niis,
                                int[] nrows,
                                int[] ncols,
                                double[] suminfeas,
                                int[] numinfeas)
                         throws XPRSprobException

      Returns statistics on the Irreducible Infeasible Sets (IIS) found so far by `firstIIS` ( `IIS`), `nextIIS` ( `IIS` `-n`) or `iISAll` ( `IIS` `-a`).

      Examples using `IISStatus`:

      - FolioIIS.java
      - FolioMipIIS.java
      - IISExample.java
      Parameters:
        `p_niis` - The number of IISs found so far.
        `nrows` - Array containing the number of rows in each IIS. May be `null` if not required.
        `ncols` - Array containing the number of bounds in each IIS. May be `null` if not required.
        `suminfeas` - Array containing the sum of infeasibilities in each IIS after the first phase simplex. May be `null` if not required.
        `numinfeas` - Array containing the number of infeasible variables in each IIS after the first phase simplex. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### IISAll

          public void IISAll()
                      throws XPRSprobException

      Performs an automated search for independent Irreducible Infeasible Sets (IIS) in an infeasible problem.

      Examples using `IISAll`:

      - IISExample.java
      Throws:
        `XPRSprobException`

    - #### writeIIS

          public void writeIIS​(int iis,
                               java.lang.String filename,
                               int filetype,
                               java.lang.String flags)
                        throws XPRSprobException

      Writes an LP/MPS/CSV file containing a given Irreducible Infeasible Set (IIS). If 0 is passed as the IIS number parameter, the initial infeasible subproblem is written.

      Examples using `writeIIS`:

      - IISExample.java
      Parameters:
        `iis` - The ordinal number of the IIS to be written.
        `filename` - The name of the file to be created. If omitted (or `null`), the default problem_name.
        `filetype` - Type of file to be created:
        - `0`: creates an lp/mps file containing the IIS as a linear programming problem;
        - `1`: creates a comma separated (csv) file containing the description and supplementary information on the given IIS.
        `flags` - Flags passed to the `writeProb` function.
      Throws:
        `XPRSprobException`

    - #### writeIIS

          public void writeIIS​(int iis,
                               java.lang.String filename,
                               int filetype)
                        throws XPRSprobException

      Convenience wrapper for `writeIIS(int, String, int, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writeIIS(int, String, int, String)`

    - #### IISIsolations

          public void IISIsolations​(int iis)
                             throws XPRSprobException

      Performs the isolation identification procedure for an Irreducible Infeasible Set (IIS). This function applies only to linear problems.
      Parameters:
        `iis` - The number of the IIS identified by either `firstIIS` ( `IIS`), `nextIIS` ( `IIS` `-n`) or `iISAll` ( `IIS` `-a`) in which the isolations should be identified.
      Throws:
        `XPRSprobException`

    - #### getIISData

          public void getIISData​(int iis,
                                 IntHolder p_nrows,
                                 IntHolder p_ncols,
                                 int[] rowind,
                                 int[] colind,
                                 byte[] contype,
                                 byte[] bndtype,
                                 double[] duals,
                                 double[] djs,
                                 byte[] isolationrows,
                                 byte[] isolationcols)
                          throws XPRSprobException

      Returns information for an Irreducible Infeasible Set: size, variables and constraints (row and column vectors), and conflicting sides of the variables. For pure linear problems there is also information on duals, reduced costs and isolations.

      Examples using `getIISData`:

      - IISExample.java
      Parameters:
        `iis` - The ordinal number of the IIS to get data for.
        `p_nrows` - Pointer to an integer where the number of rows in the IIS will be returned.
        `p_ncols` - Pointer to an integer where the number of bounds in the IIS will be returned.
        `rowind` - Indices of rows/sets/piecewise linear constraints/general constraints in the IIS. Can be `null` if not required.
        `colind` - Indices of bounds (columns) in the IIS. Can be `null` if not required.
        `contype` - Sense of rows in the IIS:
        - `L`: for less or equal row;
        - `G`: for greater or equal row.
        - `E`: for an equality row (for a non LP IIS);
        - `1`: for a SOS1 row;
        - `2`: for a SOS2 row;
        - `W`: for a piecewise linear constraint;
        - `X`: for a general constraint;
        - `I`: for an indicator row.
        Can be `null` if not required.
        `bndtype` - Sense of bound in the IIS:
        - `U`: for upper bound;
        - `L`: for lower bound.
        - `F`: for fixed columns (for a non LP IIS);
        - `B`: for a binary column;
        - `I`: for an integer column;
        - `P`: for a partial integer columns;
        - `S`: for a semi-continuous column;
        - `R`: for a semi-continuous integer column.
        Can be `null` if not required.
        `duals` - The dual multipliers associated with the rows. Can be `null` if not required.
        `djs` - The dual multipliers (reduced costs) associated with the bounds. Can be `null` if not required.
        `isolationrows` - The isolation status of the rows:
        - `-1`: if isolation information is not available for row (run iis isolations);
        - `0`: if row is not in isolation;
        - `1`: if row is in isolation.
        Can be `null` if not required.
        `isolationcols` - The isolation status of the bounds:
        - `-1`: if isolation information is not available for column (run iis isolations);
        - `0`: if column is not in isolation;
        - `1`: if column is in isolation.
        Can be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### loadPresolveBasis

          public void loadPresolveBasis​(int[] rowstat,
                                        int[] colstat)
                                 throws XPRSprobException

      Loads a presolved basis from the user's areas.
      Parameters:
        `rowstat` - Integer array of length `ROWS` containing the basis status of the slack, surplus or artificial variable associated with each row. The status must be one of:
        - `XPRS_BASISSTATUS_NONBASIC_LOWER (0)`: slack, surplus or artificial is non-basic at lower bound;
        - `XPRS_BASISSTATUS_BASIC (1)`: slack, surplus or artificial is basic;
        - `XPRS_BASISSTATUS_NONBASIC_UPPER (2)`: slack or surplus is non-basic at upper bound.
        `colstat` - Integer array of length `COLS` containing the basis status of each of the columns in the matrix. The status must be one of:
        - `XPRS_BASISSTATUS_NONBASIC_LOWER (0)`: variable is non-basic at lower bound or superbasic at zero if the variable has no lower bound;
        - `XPRS_BASISSTATUS_BASIC (1)`: variable is basic;
        - `XPRS_BASISSTATUS_NONBASIC_UPPER (2)`: variable is at upper bound;
        - `XPRS_BASISSTATUS_SUPERBASIC (3)`: variable is super-basic.
      Throws:
        `XPRSprobException`

    - #### loadSecureVecs

          public void loadSecureVecs​(int nrows,
                                     int ncols,
                                     int[] rowind,
                                     int[] colind)
                              throws XPRSprobException

      Allows the user to mark rows and columns in order to prevent the presolve removing these rows and columns from the matrix.
      Parameters:
        `nrows` - Number of rows to be marked.
        `ncols` - Number of columns to be marked.
        `rowind` - Integer array of length `nrows` containing the rows to be marked. May be `null` if not required.
        `colind` - Integer array of length `ncols` containing the columns to be marked. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### addRows

          public void addRows​(int nrows,
                              int ncoefs,
                              byte[] rowtype,
                              double[] rhs,
                              double[] rng,
                              int[] start,
                              int[] colind,
                              double[] rowcoef)
                       throws XPRSprobException

      Adds rows to the optimizer matrix.

      Examples using `addRows`:

      - LoadLP.java
      - Trimloss.java
      Parameters:
        `nrows` - Number of new rows.
        `ncoefs` - Number of new nonzeros in the added rows.
        `rowtype` - Character array of length nrows containing the row types:
        - `L`: indicates a <= row;
        - `G`: indicates >= row;
        - `E`: indicates an = row.
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        `rhs` - Double array of length `nrows` containing the right hand side elements.
        `rng` - Double array of length `nrows` containing the row range elements. This may be `null` if there are no ranged constraints. The values in the `rng` array will only be read for `R` type rows. The entries for other type rows will be ignored. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `start` - Integer array of length `nrows` containing the offsets in the `colind` and `rowcoef` arrays of the start of the elements for each row. May be `null` if none of the rows contain nonzero coefficients.
        `colind` - Integer array of length `ncoefs` containing the (contiguous) column indices for the elements in each row. May be `null` if none of the rows contain nonzero coefficients.
        `rowcoef` - Double array of length `ncoefs` containing the (contiguous) element values. May be `null` if none of the rows contain nonzero coefficients.
      Throws:
        `XPRSprobException`

    - #### addRows

          public void addRows​(int nrows,
                              int ncoefs,
                              byte[] rowtype,
                              double[] rhs,
                              int[] start,
                              int[] colind,
                              double[] rowcoef)
                       throws XPRSprobException

      Convenience wrapper for `addRows(int, int, byte[], double[], double[], int[], int[], double[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `addRows(int, int, byte[], double[], double[], int[], int[], double[])`

    - #### addRows

          public void addRows​(int nrows,
                              long ncoefs,
                              byte[] rowtype,
                              double[] rhs,
                              double[] rng,
                              long[] start,
                              int[] colind,
                              double[] rowcoef)
                       throws XPRSprobException

      Adds rows to the optimizer matrix.

      Examples using `addRows`:

      - LoadLP.java
      - Trimloss.java
      Parameters:
        `nrows` - Number of new rows.
        `ncoefs` - Number of new nonzeros in the added rows.
        `rowtype` - Character array of length nrows containing the row types:
        - `L`: indicates a <= row;
        - `G`: indicates >= row;
        - `E`: indicates an = row.
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        `rhs` - Double array of length `nrows` containing the right hand side elements.
        `rng` - Double array of length `nrows` containing the row range elements. This may be `null` if there are no ranged constraints. The values in the `rng` array will only be read for `R` type rows. The entries for other type rows will be ignored. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `start` - Integer array of length `nrows` containing the offsets in the `colind` and `rowcoef` arrays of the start of the elements for each row. May be `null` if none of the rows contain nonzero coefficients.
        `colind` - Integer array of length `ncoefs` containing the (contiguous) column indices for the elements in each row. May be `null` if none of the rows contain nonzero coefficients.
        `rowcoef` - Double array of length `ncoefs` containing the (contiguous) element values. May be `null` if none of the rows contain nonzero coefficients.
      Throws:
        `XPRSprobException`

    - #### addRows

          public void addRows​(int nrows,
                              long ncoefs,
                              byte[] rowtype,
                              double[] rhs,
                              long[] start,
                              int[] colind,
                              double[] rowcoef)
                       throws XPRSprobException

      Convenience wrapper for `addRows(int, long, byte[], double[], double[], long[], int[], double[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `addRows(int, long, byte[], double[], double[], long[], int[], double[])`

    - #### delRows

          public void delRows​(int nrows,
                              int[] rowind)
                       throws XPRSprobException

      Delete rows from a matrix.
      Parameters:
        `nrows` - Number of rows to delete.
        `rowind` - An integer array of length `nrows` containing the rows to delete.
      Throws:
        `XPRSprobException`

    - #### addCols

          public void addCols​(int ncols,
                              int ncoefs,
                              double[] objcoef,
                              int[] start,
                              int[] rowind,
                              double[] rowcoef,
                              double[] lb,
                              double[] ub)
                       throws XPRSprobException

      Adds columns to the optimizer matrix.

      Examples using `addCols`:

      - Trimloss.java
      Parameters:
        `ncols` - Number of new columns.
        `ncoefs` - Number of new nonzeros in the added columns.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients of the new columns. As of version 43.00 this can be `null` to indicate that all newly created variables have an objective coefficient of 0 (zero).
        `start` - Integer array of length `ncols` containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. May be `null` if none of the columns contain nonzero coefficients.
        `rowind` - Integer array of length `ncoefs` containing the row indices for the elements in each column. May be `null` if none of the columns contain nonzero coefficients.
        `rowcoef` - Double array of length `ncoefs` containing the element values. May be `null` if none of the columns contain nonzero coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the added columns. This can be `null` in which case all variables will have a lower bound of 0.
        `ub` - Double array of length `ncols` containing the upper bounds on the added columns. This can be `null` in which case all variables will have an infinite upper bound.
      Throws:
        `XPRSprobException`

    - #### addCols

          public void addCols​(int ncols,
                              long ncoefs,
                              double[] objcoef,
                              long[] start,
                              int[] rowind,
                              double[] rowcoef,
                              double[] lb,
                              double[] ub)
                       throws XPRSprobException

      Adds columns to the optimizer matrix.

      Examples using `addCols`:

      - Trimloss.java
      Parameters:
        `ncols` - Number of new columns.
        `ncoefs` - Number of new nonzeros in the added columns.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients of the new columns. As of version 43.00 this can be `null` to indicate that all newly created variables have an objective coefficient of 0 (zero).
        `start` - Integer array of length `ncols` containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. May be `null` if none of the columns contain nonzero coefficients.
        `rowind` - Integer array of length `ncoefs` containing the row indices for the elements in each column. May be `null` if none of the columns contain nonzero coefficients.
        `rowcoef` - Double array of length `ncoefs` containing the element values. May be `null` if none of the columns contain nonzero coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the added columns. This can be `null` in which case all variables will have a lower bound of 0.
        `ub` - Double array of length `ncols` containing the upper bounds on the added columns. This can be `null` in which case all variables will have an infinite upper bound.
      Throws:
        `XPRSprobException`

    - #### delCols

          public void delCols​(int ncols,
                              int[] colind)
                       throws XPRSprobException

      Delete columns from a matrix.
      Parameters:
        `ncols` - Number of columns to delete.
        `colind` - Integer array of length `ncols` containing the columns to delete.
      Throws:
        `XPRSprobException`

    - #### chgColType

          public void chgColType​(int ncols,
                                 int[] colind,
                                 byte[] coltype)
                          throws XPRSprobException

      Used to change the type of a specified set of columns in the matrix.

      Examples using `chgColType`:

      - Trimloss.java
      Parameters:
        `ncols` - Number of columns to change.
        `colind` - Integer array of length `ncols` containing the indices of the columns.
        `coltype` - Character array of length `ncols` giving the new column types:
        - `C`: indicates a continuous column;
        - `B`: indicates a binary column;
        - `I`: indicates an integer column.
        - `S`: indicates a semi—continuous column. The semi—continuous lower bound will be set to `1.0`.
        - `R`: indicates a semi—integer column. The semi—integer lower bound will be set to `1.0`.
        - `P`: indicates a partial integer column. The partial integer limit will be set to `1.0`.
      Throws:
        `XPRSprobException`

    - #### chgColType

          public void chgColType​(int x,
                                 byte value)
                          throws XPRSprobException

      Convenience wrapper for `chgColType(int, int[], byte[])`. This function only modifies a single element.

      Examples using `chgColType`:

      - Trimloss.java
      Parameters:
        `x` - Index of element to modify.
        `value` - New value for `x`.
      Throws:
        `XPRSprobException`
      See Also:
        `chgColType(int, int[], byte[])`

    - #### loadBasis

          public void loadBasis​(int[] rowstat,
                                int[] colstat)
                         throws XPRSprobException

      Loads a basis from the user's areas.

      Examples using `loadBasis`:

      - CuttingStock.java
      - FolioHeuristic.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      Parameters:
        `rowstat` - Integer array of length `ROWS` containing the basis status of the slack, surplus or artificial variable associated with each row. The status must be one of:
        - `XPRS_BASISSTATUS_NONBASIC_LOWER (0)`: slack, surplus or artificial is non-basic at lower bound;
        - `XPRS_BASISSTATUS_BASIC (1)`: slack, surplus or artificial is basic;
        - `XPRS_BASISSTATUS_NONBASIC_UPPER (2)`: slack or surplus is non-basic at upper bound.
        - `XPRS_BASISSTATUS_SUPERBASIC (3)`: slack or surplus is super-basic.
        `colstat` - Integer array of length `COLS` containing the basis status of each of the columns in the constraint matrix. The status must be one of:
        - `XPRS_BASISSTATUS_NONBASIC_LOWER (0)`: variable is non-basic at lower bound or superbasic at zero if the variable has no lower bound;
        - `XPRS_BASISSTATUS_BASIC (1)`: variable is basic;
        - `XPRS_BASISSTATUS_NONBASIC_UPPER (2)`: variable is at upper bound;
        - `XPRS_BASISSTATUS_SUPERBASIC (3)`: variable is super-basic.
      Throws:
        `XPRSprobException`

    - #### postSolve

          public void postSolve()
                         throws XPRSprobException

      Postsolve the current matrix when it is in a presolved state.

      Examples using `postSolve`:

      - AddMipSol.java
      Throws:
        `XPRSprobException`

    - #### delSets

          public void delSets​(int nsets,
                              int[] setind)
                       throws XPRSprobException

      Delete sets from a problem.
      Parameters:
        `nsets` - Number of sets to delete.
        `setind` - An integer array of length `nsets` containing the sets to delete.
      Throws:
        `XPRSprobException`

    - #### addSets

          public void addSets​(int nsets,
                              int nelems,
                              byte[] settype,
                              int[] start,
                              int[] colind,
                              double[] refval)
                       throws XPRSprobException

      Allows sets to be added to the problem after passing it to the Optimizer using the input routines.
      Parameters:
        `nsets` - Number of new sets.
        `nelems` - Number of new nonzeros in the added sets.
        `settype` - Character array of length nsets containing the set types:
        - `1`: indicates a SOS1;
        - `2`: indicates a SOS2;
        `start` - Integer array of length `nsets` containing the offsets in the `colind` and `refval` arrays of the start of the elements for each set.
        `colind` - Integer array of length `nelems` containing the (contiguous) column indices for the elements in each set.
        `refval` - Double array of length `nelems` containing the (contiguous) reference values. These define the order for SOS2 constraints and may be used in branching for both types.
      Throws:
        `XPRSprobException`

    - #### addSets

          public void addSets​(int nsets,
                              long nelems,
                              byte[] settype,
                              long[] start,
                              int[] colind,
                              double[] refval)
                       throws XPRSprobException

      Allows sets to be added to the problem after passing it to the Optimizer using the input routines.
      Parameters:
        `nsets` - Number of new sets.
        `nelems` - Number of new nonzeros in the added sets.
        `settype` - Character array of length nsets containing the set types:
        - `1`: indicates a SOS1;
        - `2`: indicates a SOS2;
        `start` - Integer array of length `nsets` containing the offsets in the `colind` and `refval` arrays of the start of the elements for each set.
        `colind` - Integer array of length `nelems` containing the (contiguous) column indices for the elements in each set.
        `refval` - Double array of length `nelems` containing the (contiguous) reference values. These define the order for SOS2 constraints and may be used in branching for both types.
      Throws:
        `XPRSprobException`

    - #### strongBranch

          public void strongBranch​(int nbounds,
                                   int[] colind,
                                   byte[] bndtype,
                                   double[] bndval,
                                   int iterlim,
                                   double[] objval,
                                   int[] status)
                            throws XPRSprobException

      Performs strong branching iterations on all specified bound changes. For each candidate bound change, `strongBranch` performs dual simplex iterations starting from the current optimal solution of the base LP, and returns both the status and objective value reached after these iterations.
      Parameters:
        `nbounds` - Number of bound changes to try.
        `colind` - Integer array of size `nbounds` containing the indices of the columns on which the bounds will change.
        `bndtype` - Character array of length `nbounds` indicating the type of bound to change:
        - `U`: indicates change the upper bound;
        - `L`: indicates change the lower bound;
        - `B`: indicates change both bounds, i.e. fix the column.
        `bndval` - Double array of length `nbounds` giving the new bound values.
        `iterlim` - Maximum number of LP iterations to perform for each bound change.
        `objval` - Objective value of each LP after performing the strong branching iterations.
        `status` - Status of each LP after performing the strong branching iterations, as detailed for the `LPSTATUS` attribute.
      Throws:
        `XPRSprobException`

    - #### estimateRowDualRanges

          public void estimateRowDualRanges​(int nrows,
                                            int[] rowind,
                                            int iterlim,
                                            double[] mindual,
                                            double[] maxdual)
                                     throws XPRSprobException

      Performs a dual side range sensitivity analysis, i.e. calculates estimates for the possible ranges for dual values.
      Parameters:
        `nrows` - The number of rows to analyze.
        `rowind` - Row indices to analyze.
        `iterlim` - Effort limit expressed as simplex iterations per row.
        `mindual` - Estimated lower bounds on the possible dual ranges.
        `maxdual` - Estimated upper bounds on the possible dual ranges.
      Throws:
        `XPRSprobException`

    - #### setMessageStatus

          public void setMessageStatus​(int msgcode,
                                       int status)
                                throws XPRSprobException

      Manages suppression of messages.
      Parameters:
        `msgcode` - The id number of the message. Refer to for a list of possible message numbers.
        `status` - Non-zero if the message is not suppressed; `0` otherwise.
      Throws:
        `XPRSprobException`

    - #### getMessageStatus

          public void getMessageStatus​(int msgcode,
                                       IntHolder p_status)
                                throws XPRSprobException

      Retrieves the current suppression status of a message.
      Parameters:
        `msgcode` - The id number of the message. Refer to Chapter for a list of possible message numbers.
        `p_status` - Non-zero if the message is not suppressed; `0` otherwise.
      Throws:
        `XPRSprobException`

    - #### getMessageStatus

          public int getMessageStatus​(int msgcode)

      Convenience wrapper for `getMessageStatus(int,com.dashoptimization.IntHolder)` that returns the output argument.
      Parameters:
        `msgcode` - The id number of the message. Refer to Chapter for a list of possible message numbers.
      Returns:
        The value that the wrapped function would return in p_status.

    - #### chgObjSense

          public void chgObjSense​(XPRSenumerations.ObjSense objsense)
                           throws XPRSprobException

      Changes the problem's objective function sense to minimize or maximize.

      Examples using `chgObjSense`:

      - FixBV.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      - Knapsack.java
      - LoadLP.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      - SaveSol.java
      - Tableau.java
      Parameters:
        `objsense` - `XPRS_OBJ_MINIMIZE` to change into a minimization, or `XPRS_OBJ_MAXIMIZE` to change into a maximization problem.
      Throws:
        `XPRSprobException`

    - #### chgGlbLimit

          public void chgGlbLimit​(int ncols,
                                  int[] colind,
                                  double[] limit)
                           throws XPRSprobException

      Used to change semi-continuous or semi-integer lower bounds, or upper limits on partial integers.
      Parameters:
        `ncols` - Number of column limits to change.
        `colind` - Integer array of size `ncols` containing the indices of the semi-continuous, semi-integer or partial integer columns that should have their limits changed.
        `limit` - Double array of length `ncols` giving the new limit values.
      Throws:
        `XPRSprobException`

    - #### chgGlbLimit

          public void chgGlbLimit​(int x,
                                  double value)
                           throws XPRSprobException

      Convenience wrapper for `chgGlbLimit(int, int[], double[])`. This function only modifies a single element.
      Parameters:
        `x` - Index of element to modify.
        `value` - New value for `x`.
      Throws:
        `XPRSprobException`
      See Also:
        `chgGlbLimit(int, int[], double[])`

    - #### save

          public void save()
                    throws XPRSprobException

      Saves the current data structures, i.e. matrices, control settings and problem attribute settings to file and terminates the run so that optimization can be resumed later.
      Throws:
        `XPRSprobException`

    - #### saveAs

          public void saveAs​(java.lang.String filename)
                      throws XPRSprobException

      Saves the current data structures, i.e. matrices, control settings and problem attribute settings to file and terminates the run so that optimization can be resumed later.
      Parameters:
        `filename` - The name of the file (without .svf) to save to.
      Throws:
        `XPRSprobException`

    - #### restore

          public void restore​(java.lang.String probname,
                              java.lang.String flags)
                       throws XPRSprobException

      Restores the Optimizer's data structures from a file created by `saveAs` ( `SAVE`). Optimization may then recommence from the point at which the file was created.
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing the problem name.
        `flags` - Additional flags
        - `h`: Do not restore hardware information from the file;
        - `v`: use the provided filename verbatim, without appending the `.svf` extension.
      Throws:
        `XPRSprobException`

    - #### restore

          public void restore()
                       throws XPRSprobException

      Convenience wrapper for `restore(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `restore(String, String)`

    - #### restore

          public void restore​(java.lang.String probname)
                       throws XPRSprobException

      Convenience wrapper for `restore(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `restore(String, String)`

    - #### pivot

          public void pivot​(int enter,
                            int leave)
                     throws XPRSprobException

      Performs a simplex pivot by bringing variable `enter` into the basis and removing `leave`.
      Parameters:
        `enter` - Index of row or column to enter basis.
        `leave` - Index of row or column to leave basis.
      Throws:
        `XPRSprobException`

    - #### loadLPSol

          public void loadLPSol​(double[] x,
                                double[] slack,
                                double[] duals,
                                double[] djs,
                                IntHolder p_status)
                         throws XPRSprobException

      Loads an LP solution for the problem into the Optimizer.
      Parameters:
        `x` - Optional: Double array of length `COLS` (for the original problem and not the presolve problem) containing the values of the variables. May be `null`, see further information.
        `slack` - Optional: double array of length `ROWS` containing the values of slack variables. May be `null`, see further information.
        `duals` - Optional: double array of length `ROWS` containing the values of dual variables. May be `null`, see further information.
        `djs` - Optional: double array of length `COLS` containing the values of reduced costs. May be `null`, see further information.
        `p_status` - Pointer to an `int` where the status will be returned. The status is one of:
        - `0`: Solution is loaded.
        - `1`: Solution is not loaded because the problem is in presolved status.
      Throws:
        `XPRSprobException`

    - #### loadLPSol

          public int loadLPSol​(double[] x,
                               double[] slack,
                               double[] duals,
                               double[] djs)

      Convenience wrapper for `loadLPSol(double[],double[],double[],double[],com.dashoptimization.IntHolder)` that returns the output argument.
      Parameters:
        `x` - Optional: Double array of length `COLS` (for the original problem and not the presolve problem) containing the values of the variables. May be `null`, see further information.
        `slack` - Optional: double array of length `ROWS` containing the values of slack variables. May be `null`, see further information.
        `duals` - Optional: double array of length `ROWS` containing the values of dual variables. May be `null`, see further information.
        `djs` - Optional: double array of length `COLS` containing the values of reduced costs. May be `null`, see further information.
      Returns:
        The value that the wrapped function would return in p_status.

    - #### basisCondition

          @Deprecated
          public void basisCondition​(DoubleHolder p_cond,
                                     DoubleHolder p_scaledcond)
                              throws XPRSprobException

      Deprecated.
      since 38.00, use `basisStability()` instead.
      Calculates the condition number of the current basis after solving the LP relaxation.
      Parameters:
        `p_cond` - The returned condition number of the current basis.
        `p_scaledcond` - The returned condition number of the current basis for the scaled problem.
      Throws:
        `XPRSprobException`

    - #### repairWeightedInfeas

          public void repairWeightedInfeas​(IntHolder p_status,
                                           double[] lepref,
                                           double[] gepref,
                                           double[] lbpref,
                                           double[] ubpref,
                                           char phase2,
                                           double delta,
                                           java.lang.String flags)
                                    throws XPRSprobException

      By relaxing a set of selected constraints and bounds of an infeasible problem, it attempts to identify a 'solution' that violates the selected set of constraints and bounds minimally, while satisfying all other constraints and bounds. Among such solution candidates, it selects one that is optimal regarding the original objective function.

      Examples using `repairWeightedInfeas`:

      - Repair.java
      Parameters:
        `p_status` - The status after the relaxation:
        - `0`: relaxed optimum found;
        - `1`: relaxed problem is infeasible;
        - `2`: relaxed problem is unbounded;
        - `3`: solution of the relaxed problem regarding the original objective is nonoptimal;
        - `4`: error (when return code is nonzero);
        - `5`: numerical instability;
        - `6`: analysis of an infeasible relaxation was performed, but the relaxation is feasible.
        `lepref` - Array of size `ROWS` containing the preferences for relaxing the less or equal side of row.
        `gepref` - Array of size `ROWS` containing the preferences for relaxing the greater or equal side of a row.
        `lbpref` - Array of size `COLS` containing the preferences for relaxing lower bounds.
        `ubpref` - Array of size `COLS` containing preferences for relaxing upper bounds.
        `phase2` - Controls the second phase of optimization:
        - `o`: use the objective sense of the original problem (default);
        - `x`: maximize the relaxed problem using the original objective;
        - `f`: skip optimization regarding the original objective;
        - `n`: minimize the relaxed problem using the original objective;
        - `i`: if the relaxation is infeasible, generate an irreducible infeasible subset for the analys of the problem;
        - `a`: if the relaxation is infeasible, generate all irreducible infeasible subsets for the analys of the problem.
        `delta` - The relaxation multiplier in the second phase -1.
        `flags` - Specifies flags to be passed to optimize.
      Throws:
        `XPRSprobException`

    - #### repairWeightedInfeas

          public int repairWeightedInfeas​(double[] lepref,
                                          double[] gepref,
                                          double[] lbpref,
                                          double[] ubpref,
                                          char phase2,
                                          double delta,
                                          java.lang.String flags)

      Convenience wrapper for `repairWeightedInfeas(com.dashoptimization.IntHolder,double[],double[],double[],double[],char,double,String)` that returns the output argument.

      Examples using `repairWeightedInfeas`:

      - Repair.java
      Parameters:
        `lepref` - Array of size `ROWS` containing the preferences for relaxing the less or equal side of row.
        `gepref` - Array of size `ROWS` containing the preferences for relaxing the greater or equal side of a row.
        `lbpref` - Array of size `COLS` containing the preferences for relaxing lower bounds.
        `ubpref` - Array of size `COLS` containing preferences for relaxing upper bounds.
        `phase2` - Controls the second phase of optimization:
        - `o`: use the objective sense of the original problem (default);
        - `x`: maximize the relaxed problem using the original objective;
        - `f`: skip optimization regarding the original objective;
        - `n`: minimize the relaxed problem using the original objective;
        - `i`: if the relaxation is infeasible, generate an irreducible infeasible subset for the analys of the problem;
        - `a`: if the relaxation is infeasible, generate all irreducible infeasible subsets for the analys of the problem.
        `delta` - The relaxation multiplier in the second phase -1.
        `flags` - Specifies flags to be passed to optimize.
      Returns:
        The value that the wrapped function would return in p_status.

    - #### repairWeightedInfeasBounds

          public void repairWeightedInfeasBounds​(IntHolder p_status,
                                                 double[] lepref,
                                                 double[] gepref,
                                                 double[] lbpref,
                                                 double[] ubpref,
                                                 double[] lerelax,
                                                 double[] gerelax,
                                                 double[] lbrelax,
                                                 double[] ubrelax,
                                                 char phase2,
                                                 double delta,
                                                 java.lang.String flags)
                                          throws XPRSprobException

      An extended version of `repairWeightedInfeas` that allows for bounding the level of relaxation allowed.
      Parameters:
        `p_status` - The status after the relaxation:
        - `0`: relaxed optimum found;
        - `1`: relaxed problem is infeasible;
        - `2`: relaxed problem is unbounded;
        - `3`: solution of the relaxed problem regarding the original objective is nonoptimal;
        - `4`: error (when return code is nonzero);
        - `5`: numerical instability;
        - `6`: analysis of an infeasible relaxation was performed, but the relaxation is feasible.
        `lepref` - Array of size `ROWS` containing the preferences for relaxing the less or equal side of row. For the console use `-lrp` value.
        `gepref` - Array of size `ROWS` containing the preferences for relaxing the greater or equal side of a row. For the console use `-grp` value.
        `lbpref` - Array of size `COLS` containing the preferences for relaxing lower bounds. For the console use `-lbp` value.
        `ubpref` - Array of size `COLS` containing preferences for relaxing upper bounds. For the console use `-ubp` value.
        `lerelax` - Array of size `ROWS` containing the upper bounds on the amount the less or equal side of a row can be relaxed. For the console use `-lrb` value.
        `gerelax` - Array of size `ROWS` containing the upper bounds on the amount the greater or equal side of a row can be relaxed. For the console use `-grb` value.
        `lbrelax` - Array of size `COLS` containing the upper bounds on the amount the lower bounds can be relaxed. For the console use `-lbb` value.
        `ubrelax` - Array of size `COLS` containing the upper bounds on the amount the upper bounds can be relaxed. For the console use `-ubb` value.
        `phase2` - Controls the second phase of optimization:
        - `o`: use the objective sense of the original problem (default);
        - `x`: maximize the relaxed problem using the original objective;
        - `f`: skip optimization regarding the original objective;
        - `n`: minimize the relaxed problem using the original objective;
        - `i`: if the relaxation is infeasible, generate an irreducible infeasible subset for the analys of the problem;
        - `a`: if the relaxation is infeasible, generate all irreducible infeasible subsets for the analys of the problem.
        `delta` - The relaxation multiplier in the second phase -1.
        `flags` - Specifies flags to be passed to optimize.
      Throws:
        `XPRSprobException`

    - #### repairWeightedInfeasBounds

          public int repairWeightedInfeasBounds​(double[] lepref,
                                                double[] gepref,
                                                double[] lbpref,
                                                double[] ubpref,
                                                double[] lerelax,
                                                double[] gerelax,
                                                double[] lbrelax,
                                                double[] ubrelax,
                                                char phase2,
                                                double delta,
                                                java.lang.String flags)

      Convenience wrapper for `repairWeightedInfeasBounds(com.dashoptimization.IntHolder,double[],double[],double[],double[],double[],double[],double[],double[],char,double,String)` that returns the output argument.
      Parameters:
        `lepref` - Array of size `ROWS` containing the preferences for relaxing the less or equal side of row. For the console use `-lrp` value.
        `gepref` - Array of size `ROWS` containing the preferences for relaxing the greater or equal side of a row. For the console use `-grp` value.
        `lbpref` - Array of size `COLS` containing the preferences for relaxing lower bounds. For the console use `-lbp` value.
        `ubpref` - Array of size `COLS` containing preferences for relaxing upper bounds. For the console use `-ubp` value.
        `lerelax` - Array of size `ROWS` containing the upper bounds on the amount the less or equal side of a row can be relaxed. For the console use `-lrb` value.
        `gerelax` - Array of size `ROWS` containing the upper bounds on the amount the greater or equal side of a row can be relaxed. For the console use `-grb` value.
        `lbrelax` - Array of size `COLS` containing the upper bounds on the amount the lower bounds can be relaxed. For the console use `-lbb` value.
        `ubrelax` - Array of size `COLS` containing the upper bounds on the amount the upper bounds can be relaxed. For the console use `-ubb` value.
        `phase2` - Controls the second phase of optimization:
        - `o`: use the objective sense of the original problem (default);
        - `x`: maximize the relaxed problem using the original objective;
        - `f`: skip optimization regarding the original objective;
        - `n`: minimize the relaxed problem using the original objective;
        - `i`: if the relaxation is infeasible, generate an irreducible infeasible subset for the analys of the problem;
        - `a`: if the relaxation is infeasible, generate all irreducible infeasible subsets for the analys of the problem.
        `delta` - The relaxation multiplier in the second phase -1.
        `flags` - Specifies flags to be passed to optimize.
      Returns:
        The value that the wrapped function would return in p_status.

    - #### repairInfeas

          public void repairInfeas​(IntHolder p_status,
                                   char penalty,
                                   char phase2,
                                   char flags,
                                   double lepref,
                                   double gepref,
                                   double lbpref,
                                   double ubpref,
                                   double delta)
                            throws XPRSprobException

      Provides a simplified interface for `repairWeightedInfeas`.
      Parameters:
        `p_status` - The status after the relaxation:
        - `0`: relaxed optimum found;
        - `1`: relaxed problem is infeasible;
        - `2`: relaxed problem is unbounded;
        - `3`: solution of the relaxed problem regarding the original objective is nonoptimal;
        - `4`: error (when return code is nonzero);
        - `5`: numerical instability;
        - `6`: analysis of an infeasible relaxation was performed, but the relaxation is feasible.
        `penalty` - The type of penalties created from the preferences:
        - `c`: each penalty is the reciprocal of the preference (default);
        - `s`: the penalties are placed in the scaled problem.
        `phase2` - Controls the second phase of optimization:
        - `o`: use the objective sense of the original problem (default);
        - `x`: maximize the relaxed problem using the original objective;
        - `f`: skip optimization regarding the original objective;
        - `n`: minimize the relaxed problem using the original objective;
        - `i`: if the relaxation is infeasible, generate an irreducible infeasible subset for the analys of the problem;
        - `a`: if the relaxation is infeasible, generate all irreducible infeasible subsets for the analys of the problem.
        `flags` - Specifies flags to be passed to optimize.
        `lepref` - Preference for relaxing the less or equal side of row.
        `gepref` - Preference for relaxing the greater or equal side of a row.
        `lbpref` - Preferences for relaxing lower bounds.
        `ubpref` - Preferences for relaxing upper bounds.
        `delta` - The relaxation multiplier in the second phase -1. For console use `-d` value. A positive value means a relative relaxation by multiplying the first phase objective with ( `delta-1`), while a negative value means an absolute relaxation, by adding `abs(delta)` to the first phase objective.
      Throws:
        `XPRSprobException`

    - #### repairInfeas

          public int repairInfeas​(char penalty,
                                  char phase2,
                                  char flags,
                                  double lepref,
                                  double gepref,
                                  double lbpref,
                                  double ubpref,
                                  double delta)

      Convenience wrapper for `repairInfeas(com.dashoptimization.IntHolder,char,char,char,double,double,double,double,double)` that returns the output argument.
      Parameters:
        `penalty` - The type of penalties created from the preferences:
        - `c`: each penalty is the reciprocal of the preference (default);
        - `s`: the penalties are placed in the scaled problem.
        `phase2` - Controls the second phase of optimization:
        - `o`: use the objective sense of the original problem (default);
        - `x`: maximize the relaxed problem using the original objective;
        - `f`: skip optimization regarding the original objective;
        - `n`: minimize the relaxed problem using the original objective;
        - `i`: if the relaxation is infeasible, generate an irreducible infeasible subset for the analys of the problem;
        - `a`: if the relaxation is infeasible, generate all irreducible infeasible subsets for the analys of the problem.
        `flags` - Specifies flags to be passed to optimize.
        `lepref` - Preference for relaxing the less or equal side of row.
        `gepref` - Preference for relaxing the greater or equal side of a row.
        `lbpref` - Preferences for relaxing lower bounds.
        `ubpref` - Preferences for relaxing upper bounds.
        `delta` - The relaxation multiplier in the second phase -1. For console use `-d` value. A positive value means a relative relaxation by multiplying the first phase objective with ( `delta-1`), while a negative value means an absolute relaxation, by adding `abs(delta)` to the first phase objective.
      Returns:
        The value that the wrapped function would return in p_status.

    - #### basisStability

          public void basisStability​(int type,
                                     int norm,
                                     int scaled,
                                     DoubleHolder p_value)
                              throws XPRSprobException

      Calculates various measures for the stability of the current basis, including the basis condition number.
      Parameters:
        `type` -
        - `0`: Condition number of the basis.
        - `1`: Stability measure for the solution relative to the current basis.
        - `2`: Stability measure for the duals relative to the current basis.
        - `3`: Stability measure for the right hand side relative to the current basis.
        - `4`: Stability measure for the basic part of the objective relative to the current basis.
        `norm` -
        - `0`: Use the infinity norm.
        - `1`: Use the 1 norm.
        - `2`: Use the Euclidian norm for vectors, and the Frobenius norm for matrices.
        `scaled` - If the stability values are to be calculated in the scaled, or the unscaled matrix.
        `p_value` - Pointer to a double, where the calculated value is to be returned.
      Throws:
        `XPRSprobException`

    - #### basisStability

          public double basisStability​(int type,
                                       int norm,
                                       int scaled)

      Convenience wrapper for `basisStability(int,int,int,com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `type` -
        - `0`: Condition number of the basis.
        - `1`: Stability measure for the solution relative to the current basis.
        - `2`: Stability measure for the duals relative to the current basis.
        - `3`: Stability measure for the right hand side relative to the current basis.
        - `4`: Stability measure for the basic part of the objective relative to the current basis.
        `norm` -
        - `0`: Use the infinity norm.
        - `1`: Use the 1 norm.
        - `2`: Use the Euclidian norm for vectors, and the Frobenius norm for matrices.
        `scaled` - If the stability values are to be calculated in the scaled, or the unscaled matrix.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### objSA

          public void objSA​(int ncols,
                            int[] colind,
                            double[] lower,
                            double[] upper)
                     throws XPRSprobException

      Returns upper and lower sensitivity ranges for specified objective function coefficients. If the objective coefficients are varied within these ranges the current basis remains optimal and the reduced costs remain valid.
      Parameters:
        `ncols` - Number of objective function coefficients whose sensitivity is sought.
        `colind` - Integer array of length `ncols` containing the indices of the columns whose objective function coefficients sensitivity ranges are required.
        `lower` - Double array of length `ncols` where the objective function lower range values are to be returned.
        `upper` - Double array of length `ncols` where the objective function upper range values are to be returned.
      Throws:
        `XPRSprobException`

    - #### bndsa

          public void bndsa​(int ncols,
                            int[] colind,
                            double[] lblower,
                            double[] lbupper,
                            double[] ublower,
                            double[] ubupper)
                     throws XPRSprobException

      Returns upper and lower sensitivity ranges for specified variables' lower and upper bounds. If the bounds are varied within these ranges the current basis remains optimal and feasible.
      Parameters:
        `ncols` - Number of variables whose sensitivity is sought.
        `colind` - Integer array of length `ncols` containing the indices of the columns whose bounds' ranges are required.
        `lblower` - Double array of length `ncols` where the variable lower bound lower range values are to be returned.
        `lbupper` - Double array of length `ncols` where the variable lower bound upper range values are to be returned.
        `ublower` - Double array of length `ncols` where the variable upper bound lower range values are to be returned.
        `ubupper` - Double array of length `ncols` where the variable upper bound upper range values are to be returned.
      Throws:
        `XPRSprobException`

    - #### rhsSA

          public void rhsSA​(int nrows,
                            int[] rowind,
                            double[] lower,
                            double[] upper)
                     throws XPRSprobException

      Returns upper and lower sensitivity ranges for specified right hand side (RHS) function coefficients. If the RHS coefficients are varied within these ranges the current basis remains optimal and the reduced costs remain valid.
      Parameters:
        `nrows` - The number of RHS coefficients for which sensitivity ranges are required.
        `rowind` - Integer array of length `nrows` containing the indices of the rows whose RHS coefficients sensitivity ranges are required.
        `lower` - Double array of length `nrows` where the RHS lower range values are to be returned.
        `upper` - Double array of length `nrows` where the RHS upper range values are to be returned.
      Throws:
        `XPRSprobException`

    - #### addQMatrix

          public void addQMatrix​(int row,
                                 int ncoefs,
                                 int[] rowqcol1,
                                 int[] rowqcol2,
                                 double[] rowqcoef)
                          throws XPRSprobException

      Adds a new quadratic matrix into a row defined by triplets.
      Parameters:
        `row` - Index of the row where the quadratic matrix is to be added.
        `ncoefs` - Number of triplets used to define the quadratic matrix. This may be less than the number of coefficients in the quadratic matrix, since off diagonals and their transposed pairs are defined by one triplet.
        `rowqcol1` - First index in the triplets.
        `rowqcol2` - Second index in the triplets.
        `rowqcoef` - Coefficients in the triplets.
      Throws:
        `XPRSprobException`

    - #### addQMatrix

          public void addQMatrix​(int row,
                                 long ncoefs,
                                 int[] rowqcol1,
                                 int[] rowqcol2,
                                 double[] rowqcoef)
                          throws XPRSprobException

      Adds a new quadratic matrix into a row defined by triplets.
      Parameters:
        `row` - Index of the row where the quadratic matrix is to be added.
        `ncoefs` - Number of triplets used to define the quadratic matrix. This may be less than the number of coefficients in the quadratic matrix, since off diagonals and their transposed pairs are defined by one triplet.
        `rowqcol1` - First index in the triplets.
        `rowqcol2` - Second index in the triplets.
        `rowqcoef` - Coefficients in the triplets.
      Throws:
        `XPRSprobException`

    - #### delQMatrix

          public void delQMatrix​(int row)
                          throws XPRSprobException

      Deletes the quadratic part of a row or of the objective function.
      Parameters:
        `row` - Index of row from which the quadratic part is to be deleted.
      Throws:
        `XPRSprobException`

    - #### loadQCQP

          public void loadQCQP​(java.lang.String probname,
                               int ncols,
                               int nrows,
                               byte[] rowtype,
                               double[] rhs,
                               double[] rng,
                               double[] objcoef,
                               int[] start,
                               int[] collen,
                               int[] rowind,
                               double[] rowcoef,
                               double[] lb,
                               double[] ub,
                               int nobjqcoefs,
                               int[] objqcol1,
                               int[] objqcol2,
                               double[] objqcoef,
                               int nqrows,
                               int[] qrowind,
                               int[] nrowqcoefs,
                               int[] rowqcol1,
                               int[] rowqcol2,
                               double[] rowqcoef)
                        throws XPRSprobException

      Used to load a quadratic problem with quadratic side constraints into the Optimizer data structure. Such a problem may have quadratic terms in its objective function as well as in its constraints.
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing a name for the problem. If `probname` is `null`, the problem name will be an empty string.
        `ncols` - Number of structural columns in the matrix.
        `nrows` - Number of rows in the matrix (not including the objective row). Objective coefficients must be supplied in the `objcoef` array, and the objective function should not be included in any of the other arrays.
        `rowtype` - Character array of length `nrows` containing the row types:
        - `L`: indicates a `<=` constraint (use this one for quadratic constraints as well);
        - `E`: indicates an `=` constraint;
        - `G`: indicates a `>=` constraint;
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        May be `null` if the problem contains no rows.
        `rhs` - Double array of length `nrows` containing the right hand side coefficients of the rows. The right hand side value for a range row gives the upper bound on the row. May be `null` if the problem contains no rows.
        `rng` - Double array of length `nrows` containing the range values for range rows. Values for all other rows will be ignored. May be `null` if there are no ranged constraints. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients. This can be `null` to set all objective coefficients to 0 (zero).
        `start` - Integer array containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. This array contains one entry for each column, plus one more if `collen` is `null`. If `collen` is `null`, the last entry of `start` contains the position in the `rowind` and `rowcoef` arrays at which an extra column would start, if it were present. This value is also the length of the `rowind` and `rowcoef` arrays. May be `null` if the problem contains no coefficients.
        `collen` - Integer array of length `ncols` containing the number of nonzero elements in each column. May be `null` if not required. This array is not required if the non-zero coefficients in the `rowind` and `rowcoef` arrays are contiguous, and the `start` array has an additional entry as described above.
        `rowind` - Integer array containing the row indices for the nonzero elements in each column. May be `null` if the problem contains no coefficients. If the indices are input contiguously, with the columns in ascending order, the length of the `rowind` array is found by adding the `start` entry for the last column to the `collen` entry for the last column, or if `collen` is `null`, by the additional entry at the end of `start`.
        `rowcoef` - Double array containing the nonzero element values; length as for `rowind`. May be `null` if the problem contains no coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the columns. Use `XPRS_MINUSINFINITY` to represent a lower bound of minus infinity. If this is `null` then all lower bounds are 0 (zero).
        `ub` - Double array of length `ncols` containing the upper bounds on the columns. Use `XPRS_PLUSINFINITY` to represent an upper bound of plus infinity. If this is `null` then all upper bounds are infinite.
        `nobjqcoefs` - Number of quadratic terms.
        `objqcol1` - Integer array of size `nobjqcoefs` containing the column index of the first variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcol2` - Integer array of size `nobjqcoefs` containing the column index of the second variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcoef` - Double array of size `nobjqcoefs` containing the quadratic coefficients. May be `null` if all objective coefficients are zero.
        `nqrows` - Number of rows containing quadratic matrices.
        `qrowind` - Integer array of size `nqrows`, containing the indices of rows with quadratic matrices in them. Note that the rows are expected to be defined in `rowtype` as type `L`. May be `null` if the problem contains no quadratic constraints.
        `nrowqcoefs` - Integer array of size `nqrows`, containing the number of nonzeros in each quadratic constraint matrix. May be `null` if the problem contains no quadratic constraints.
        `rowqcol1` - Integer array of size `nqcelem`, where `nqcelem` equals the sum of the elements in `nrowqcoefs` (i.e. the total number of quadratic matrix elements in all the constraints). It contains the first column indices of the quadratic matrices. Indices for the first matrix are listed from `0` to `nrowqcoefs[0]-1`, for the second matrix from `nrowqcoefs[0]` to `nrowqcoefs[0]+ nrowqcoefs[1]-1`, etc. May be `null` if the problem contains no quadratic constraints.
        `rowqcol2` - Integer array of size `nqcelem`, containing the second index for the quadratic constraint matrices. May be `null` if the problem contains no quadratic constraints.
        `rowqcoef` - Integer array of size `nqcelem`, containing the coefficients for the quadratic constraint matrices. May be `null` if the problem contains no quadratic constraints.
      Throws:
        `XPRSprobException`

    - #### loadQCQP

          public void loadQCQP​(java.lang.String probname,
                               int ncols,
                               int nrows,
                               byte[] rowtype,
                               double[] rhs,
                               double[] rng,
                               double[] objcoef,
                               long[] start,
                               int[] collen,
                               int[] rowind,
                               double[] rowcoef,
                               double[] lb,
                               double[] ub,
                               long nobjqcoefs,
                               int[] objqcol1,
                               int[] objqcol2,
                               double[] objqcoef,
                               int nqrows,
                               int[] qrowind,
                               long[] nrowqcoefs,
                               int[] rowqcol1,
                               int[] rowqcol2,
                               double[] rowqcoef)
                        throws XPRSprobException

      Used to load a quadratic problem with quadratic side constraints into the Optimizer data structure. Such a problem may have quadratic terms in its objective function as well as in its constraints.
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing a name for the problem. If `probname` is `null`, the problem name will be an empty string.
        `ncols` - Number of structural columns in the matrix.
        `nrows` - Number of rows in the matrix (not including the objective row). Objective coefficients must be supplied in the `objcoef` array, and the objective function should not be included in any of the other arrays.
        `rowtype` - Character array of length `nrows` containing the row types:
        - `L`: indicates a `<=` constraint (use this one for quadratic constraints as well);
        - `E`: indicates an `=` constraint;
        - `G`: indicates a `>=` constraint;
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        May be `null` if the problem contains no rows.
        `rhs` - Double array of length `nrows` containing the right hand side coefficients of the rows. The right hand side value for a range row gives the upper bound on the row. May be `null` if the problem contains no rows.
        `rng` - Double array of length `nrows` containing the range values for range rows. Values for all other rows will be ignored. May be `null` if there are no ranged constraints. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients. This can be `null` to set all objective coefficients to 0 (zero).
        `start` - Integer array containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. This array contains one entry for each column, plus one more if `collen` is `null`. If `collen` is `null`, the last entry of `start` contains the position in the `rowind` and `rowcoef` arrays at which an extra column would start, if it were present. This value is also the length of the `rowind` and `rowcoef` arrays. May be `null` if the problem contains no coefficients.
        `collen` - Integer array of length `ncols` containing the number of nonzero elements in each column. May be `null` if not required. This array is not required if the non-zero coefficients in the `rowind` and `rowcoef` arrays are contiguous, and the `start` array has an additional entry as described above.
        `rowind` - Integer array containing the row indices for the nonzero elements in each column. May be `null` if the problem contains no coefficients. If the indices are input contiguously, with the columns in ascending order, the length of the `rowind` array is found by adding the `start` entry for the last column to the `collen` entry for the last column, or if `collen` is `null`, by the additional entry at the end of `start`.
        `rowcoef` - Double array containing the nonzero element values; length as for `rowind`. May be `null` if the problem contains no coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the columns. Use `XPRS_MINUSINFINITY` to represent a lower bound of minus infinity. If this is `null` then all lower bounds are 0 (zero).
        `ub` - Double array of length `ncols` containing the upper bounds on the columns. Use `XPRS_PLUSINFINITY` to represent an upper bound of plus infinity. If this is `null` then all upper bounds are infinite.
        `nobjqcoefs` - Number of quadratic terms.
        `objqcol1` - Integer array of size `nobjqcoefs` containing the column index of the first variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcol2` - Integer array of size `nobjqcoefs` containing the column index of the second variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcoef` - Double array of size `nobjqcoefs` containing the quadratic coefficients. May be `null` if all objective coefficients are zero.
        `nqrows` - Number of rows containing quadratic matrices.
        `qrowind` - Integer array of size `nqrows`, containing the indices of rows with quadratic matrices in them. Note that the rows are expected to be defined in `rowtype` as type `L`. May be `null` if the problem contains no quadratic constraints.
        `nrowqcoefs` - Integer array of size `nqrows`, containing the number of nonzeros in each quadratic constraint matrix. May be `null` if the problem contains no quadratic constraints.
        `rowqcol1` - Integer array of size `nqcelem`, where `nqcelem` equals the sum of the elements in `nrowqcoefs` (i.e. the total number of quadratic matrix elements in all the constraints). It contains the first column indices of the quadratic matrices. Indices for the first matrix are listed from `0` to `nrowqcoefs[0]-1`, for the second matrix from `nrowqcoefs[0]` to `nrowqcoefs[0]+ nrowqcoefs[1]-1`, etc. May be `null` if the problem contains no quadratic constraints.
        `rowqcol2` - Integer array of size `nqcelem`, containing the second index for the quadratic constraint matrices. May be `null` if the problem contains no quadratic constraints.
        `rowqcoef` - Integer array of size `nqcelem`, containing the coefficients for the quadratic constraint matrices. May be `null` if the problem contains no quadratic constraints.
      Throws:
        `XPRSprobException`

    - #### loadMIQCQP

          public void loadMIQCQP​(java.lang.String probname,
                                 int ncols,
                                 int nrows,
                                 byte[] rowtype,
                                 double[] rhs,
                                 double[] rng,
                                 double[] objcoef,
                                 int[] start,
                                 int[] collen,
                                 int[] rowind,
                                 double[] rowcoef,
                                 double[] lb,
                                 double[] ub,
                                 int nobjqcoefs,
                                 int[] objqcol1,
                                 int[] objqcol2,
                                 double[] objqcoef,
                                 int nqrows,
                                 int[] qrowind,
                                 int[] nrowqcoefs,
                                 int[] rowqcol1,
                                 int[] rowqcol2,
                                 double[] rowqcoef,
                                 int nentities,
                                 int nsets,
                                 byte[] coltype,
                                 int[] entind,
                                 double[] limit,
                                 byte[] settype,
                                 int[] setstart,
                                 int[] setind,
                                 double[] refval)
                          throws XPRSprobException

      Used to load a mixed integer quadratic problem with quadratic constraints into the Optimizer data structure. Such a problem may have quadratic terms in its objective function as well as in its constraints. Integer, binary, partial integer, semi-continuous and semi-continuous integer variables can be defined, together with sets of type 1 and 2. The reference row values for the set members are passed as an array rather than specifying a reference row.
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing a name for the problem. If `probname` is `null`, the problem name will be an empty string.
        `ncols` - Number of structural columns in the matrix.
        `nrows` - Number of rows in the matrix (not including the objective row). Objective coefficients must be supplied in the `objcoef` array, and the objective function should not be included in any of the other arrays.
        `rowtype` - Character array of length `nrows` containing the row types:
        - `L`: indicates a `<=` constraint (use this one for quadratic constraints as well);
        - `E`: indicates an `=` constraint;
        - `G`: indicates a `>=` constraint;
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        May be `null` if the problem contains no rows.
        `rhs` - Double array of length `nrows` containing the right hand side coefficients of the rows. The right hand side value for a range row gives the upper bound on the row. May be `null` if the problem contains no rows.
        `rng` - Double array of length `nrows` containing the range values for range rows. Values for all other rows will be ignored. May be `null` if there are no ranged constraints. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients. This can be `null` to set all objective coefficients to 0 (zero).
        `start` - Integer array containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. This array contains one entry for each column, plus one more if `collen` is `null`. If `collen` is `null`, the last entry of `start` contains the position in the `rowind` and `rowcoef` arrays at which an extra column would start, if it were present. This value is also the length of the `rowind` and `rowcoef` arrays. May be `null` if the problem contains no coefficients.
        `collen` - Integer array of length `ncols` containing the number of nonzero elements in each column. May be `null` if not required. This array is not required if the non-zero coefficients in the `rowind` and `rowcoef` arrays are contiguous, and the `start` array has an additional entry as described above.
        `rowind` - Integer array containing the row indices for the nonzero elements in each column. May be `null` if the problem contains no coefficients. If the indices are input contiguously, with the columns in ascending order, the length of the `rowind` array is found by adding the `start` entry for the last column to the `collen` entry for the last column, or if `collen` is `null`, by the additional entry at the end of `start`.
        `rowcoef` - Double array containing the nonzero element values; length as for `rowind`. May be `null` if the problem contains no coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the columns. Use `XPRS_MINUSINFINITY` to represent a lower bound of minus infinity. If this is `null` then all lower bounds are 0 (zero).
        `ub` - Double array of length `ncols` containing the upper bounds on the columns. Use `XPRS_PLUSINFINITY` to represent an upper bound of plus infinity. If this is `null` then all upper bounds are infinite.
        `nobjqcoefs` - Number of quadratic terms.
        `objqcol1` - Integer array of size `nobjqcoefs` containing the column index of the first variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcol2` - Integer array of size `nobjqcoefs` containing the column index of the second variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcoef` - Double array of size `nobjqcoefs` containing the quadratic coefficients. May be `null` if all objective coefficients are zero.
        `nqrows` - Number of rows containing quadratic matrices.
        `qrowind` - Integer array of size `nqrows`, containing the indices of rows with quadratic matrices in them. Note that the rows are expected to be defined in `rowtype` as type `L`. May be `null` if the problem contains no quadratic constraints.
        `nrowqcoefs` - Integer array of size `nqrows`, containing the number of nonzeros in each quadratic constraint matrix. May be `null` if the problem contains no quadratic constraints.
        `rowqcol1` - Integer array of size `nqcelem`, where `nqcelem` equals the sum of the elements in `nrowqcoefs` (i.e. the total number of quadratic matrix elements in all the constraints). It contains the first column indices of the quadratic matrices. Indices for the first matrix are listed from `0` to `nrowqcoefs[0]-1`, for the second matrix from `nrowqcoefs[0]` to `nrowqcoefs[0]+ nrowqcoefs[1]-1`, etc. May be `null` if the problem contains no quadratic constraints.
        `rowqcol2` - Integer array of size `nqcelem`, containing the second index for the quadratic constraint matrices. May be `null` if the problem contains no quadratic constraints.
        `rowqcoef` - Integer array of size `nqcelem`, containing the coefficients for the quadratic constraint matrices. May be `null` if the problem contains no quadratic constraints.
        `nentities` - Number of binary, integer, semi-continuous, semi-continuous integer and partial integer entities.
        `nsets` - Number of SOS1 and SOS2 sets.
        `coltype` - Character array of length `nentities` containing the entity types:
        - `B`: binary variables;
        - `I`: integer variables;
        - `P`: partial integer variables;
        - `S`: semi-continuous variables;
        - `R`: semi-continuous integer variables.
        May be `null` if all variables are continuous.
        `entind` - Integer array of length `nentities` containing the column indices of the MIP entities. May be `null` if the problem contains no entities.
        `limit` - Double array of length `nentities` containing the integer limits for the partial integer variables and lower bounds for semi-continuous and semi-continuous integer variables (any entries in the positions corresponding to binary and integer variables will be ignored). May be `null` if not required.
        `settype` - Character array of length `nsets` containing the set types:
        - `1`: SOS1 type sets;
        - `2`: SOS2 type sets.
        May be `null` if not required.
        `setstart` - Integer array containing the offsets in the `setind` and `refval` arrays indicating the start of each set. This array has one entry for each set plus one extra entry containing the offset where an additional set would start, if it were present. May be `null` if not required.
        `setind` - Integer array of length `setstart[nsets]-1` containing the columns in each set. May be `null` if not required.
        `refval` - Double array of length `setstart[nsets]-1` containing the reference row entries for each member of the sets. These define the order for SOS2 constraints and may be used in branching for both types. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### loadMIQCQP

          public void loadMIQCQP​(java.lang.String probname,
                                 int ncols,
                                 int nrows,
                                 byte[] rowtype,
                                 double[] rhs,
                                 double[] rng,
                                 double[] objcoef,
                                 long[] start,
                                 int[] collen,
                                 int[] rowind,
                                 double[] rowcoef,
                                 double[] lb,
                                 double[] ub,
                                 long nobjqcoefs,
                                 int[] objqcol1,
                                 int[] objqcol2,
                                 double[] objqcoef,
                                 int nqrows,
                                 int[] qrowind,
                                 long[] nrowqcoefs,
                                 int[] rowqcol1,
                                 int[] rowqcol2,
                                 double[] rowqcoef,
                                 int nentities,
                                 int nsets,
                                 byte[] coltype,
                                 int[] entind,
                                 double[] limit,
                                 byte[] settype,
                                 long[] setstart,
                                 int[] setind,
                                 double[] refval)
                          throws XPRSprobException

      Used to load a mixed integer quadratic problem with quadratic constraints into the Optimizer data structure. Such a problem may have quadratic terms in its objective function as well as in its constraints. Integer, binary, partial integer, semi-continuous and semi-continuous integer variables can be defined, together with sets of type 1 and 2. The reference row values for the set members are passed as an array rather than specifying a reference row.
      Parameters:
        `probname` - A string of up to `MAXPROBNAMELENGTH` characters containing a name for the problem. If `probname` is `null`, the problem name will be an empty string.
        `ncols` - Number of structural columns in the matrix.
        `nrows` - Number of rows in the matrix (not including the objective row). Objective coefficients must be supplied in the `objcoef` array, and the objective function should not be included in any of the other arrays.
        `rowtype` - Character array of length `nrows` containing the row types:
        - `L`: indicates a `<=` constraint (use this one for quadratic constraints as well);
        - `E`: indicates an `=` constraint;
        - `G`: indicates a `>=` constraint;
        - `R`: indicates a range constraint;
        - `N`: indicates a nonbinding constraint.
        May be `null` if the problem contains no rows.
        `rhs` - Double array of length `nrows` containing the right hand side coefficients of the rows. The right hand side value for a range row gives the upper bound on the row. May be `null` if the problem contains no rows.
        `rng` - Double array of length `nrows` containing the range values for range rows. Values for all other rows will be ignored. May be `null` if there are no ranged constraints. The lower bound on a range row is the right hand side value minus the range value. The sign of the range value is ignored - the absolute value is used in all cases.
        `objcoef` - Double array of length `ncols` containing the objective function coefficients. This can be `null` to set all objective coefficients to 0 (zero).
        `start` - Integer array containing the offsets in the `rowind` and `rowcoef` arrays of the start of the elements for each column. This array contains one entry for each column, plus one more if `collen` is `null`. If `collen` is `null`, the last entry of `start` contains the position in the `rowind` and `rowcoef` arrays at which an extra column would start, if it were present. This value is also the length of the `rowind` and `rowcoef` arrays. May be `null` if the problem contains no coefficients.
        `collen` - Integer array of length `ncols` containing the number of nonzero elements in each column. May be `null` if not required. This array is not required if the non-zero coefficients in the `rowind` and `rowcoef` arrays are contiguous, and the `start` array has an additional entry as described above.
        `rowind` - Integer array containing the row indices for the nonzero elements in each column. May be `null` if the problem contains no coefficients. If the indices are input contiguously, with the columns in ascending order, the length of the `rowind` array is found by adding the `start` entry for the last column to the `collen` entry for the last column, or if `collen` is `null`, by the additional entry at the end of `start`.
        `rowcoef` - Double array containing the nonzero element values; length as for `rowind`. May be `null` if the problem contains no coefficients.
        `lb` - Double array of length `ncols` containing the lower bounds on the columns. Use `XPRS_MINUSINFINITY` to represent a lower bound of minus infinity. If this is `null` then all lower bounds are 0 (zero).
        `ub` - Double array of length `ncols` containing the upper bounds on the columns. Use `XPRS_PLUSINFINITY` to represent an upper bound of plus infinity. If this is `null` then all upper bounds are infinite.
        `nobjqcoefs` - Number of quadratic terms.
        `objqcol1` - Integer array of size `nobjqcoefs` containing the column index of the first variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcol2` - Integer array of size `nobjqcoefs` containing the column index of the second variable in each quadratic term. May be `null` if all objective coefficients are zero.
        `objqcoef` - Double array of size `nobjqcoefs` containing the quadratic coefficients. May be `null` if all objective coefficients are zero.
        `nqrows` - Number of rows containing quadratic matrices.
        `qrowind` - Integer array of size `nqrows`, containing the indices of rows with quadratic matrices in them. Note that the rows are expected to be defined in `rowtype` as type `L`. May be `null` if the problem contains no quadratic constraints.
        `nrowqcoefs` - Integer array of size `nqrows`, containing the number of nonzeros in each quadratic constraint matrix. May be `null` if the problem contains no quadratic constraints.
        `rowqcol1` - Integer array of size `nqcelem`, where `nqcelem` equals the sum of the elements in `nrowqcoefs` (i.e. the total number of quadratic matrix elements in all the constraints). It contains the first column indices of the quadratic matrices. Indices for the first matrix are listed from `0` to `nrowqcoefs[0]-1`, for the second matrix from `nrowqcoefs[0]` to `nrowqcoefs[0]+ nrowqcoefs[1]-1`, etc. May be `null` if the problem contains no quadratic constraints.
        `rowqcol2` - Integer array of size `nqcelem`, containing the second index for the quadratic constraint matrices. May be `null` if the problem contains no quadratic constraints.
        `rowqcoef` - Integer array of size `nqcelem`, containing the coefficients for the quadratic constraint matrices. May be `null` if the problem contains no quadratic constraints.
        `nentities` - Number of binary, integer, semi-continuous, semi-continuous integer and partial integer entities.
        `nsets` - Number of SOS1 and SOS2 sets.
        `coltype` - Character array of length `nentities` containing the entity types:
        - `B`: binary variables;
        - `I`: integer variables;
        - `P`: partial integer variables;
        - `S`: semi-continuous variables;
        - `R`: semi-continuous integer variables.
        May be `null` if all variables are continuous.
        `entind` - Integer array of length `nentities` containing the column indices of the MIP entities. May be `null` if the problem contains no entities.
        `limit` - Double array of length `nentities` containing the integer limits for the partial integer variables and lower bounds for semi-continuous and semi-continuous integer variables (any entries in the positions corresponding to binary and integer variables will be ignored). May be `null` if not required.
        `settype` - Character array of length `nsets` containing the set types:
        - `1`: SOS1 type sets;
        - `2`: SOS2 type sets.
        May be `null` if not required.
        `setstart` - Integer array containing the offsets in the `setind` and `refval` arrays indicating the start of each set. This array has one entry for each set plus one extra entry containing the offset where an additional set would start, if it were present. May be `null` if not required.
        `setind` - Integer array of length `setstart[nsets]-1` containing the columns in each set. May be `null` if not required.
        `refval` - Double array of length `setstart[nsets]-1` containing the reference row entries for each member of the sets. These define the order for SOS2 constraints and may be used in branching for both types. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### addObj

          public void addObj​(int ncols,
                             int[] colind,
                             double[] objcoef,
                             int priority,
                             double weight)
                      throws XPRSprobException

      Appends an objective function with the given coefficients to a multi-objective problem. The weight and priority of the objective are set to the given values.
      Parameters:
        `ncols` - Number of objective function coefficient elements to add.
        `colind` - Integer array of length `ncols` containing the indices of the columns whose objective coefficients will change. An index of `-1` indicates that the fixed part of the objective function on the right hand side should change.
        `objcoef` - Double array of length `ncols` giving the new objective function coefficients.
        `priority` - An integer defining the relative priority for the new objective (only relevant for multi-objective problems). Higher values mean higher priority. During optimization, objectives with the same priority are combined together in a weighted sum.
        `weight` - A double defining the weight for the new objective (only relevant for multi-objective problems). If the weight is negative, the sense of this objective is reversed.
      Throws:
        `XPRSprobException`

    - #### chgObjN

          public void chgObjN​(int objidx,
                              int ncols,
                              int[] colind,
                              double[] objcoef)
                       throws XPRSprobException

      Modifies one or more coefficients of an objective function in a multi-objective problem. If the objective already exists, any coefficients not present in the `colind` and `objcoef` arrays will unchanged. If the objective does not exist, it will be added to the problem.

      Examples using `chgObjN`:

      - GoalProg.java
      Parameters:
        `objidx` - Index of the objective function to add or modify.
        `ncols` - Number of objective function coefficient elements to change.
        `colind` - Integer array of length `ncols` containing the indices of the columns whose objective coefficients will change. An index of `-1` indicates that the fixed part of the objective function on the right hand side should change.
        `objcoef` - Double array of length `ncols` giving the new objective function coefficients.
      Throws:
        `XPRSprobException`

    - #### delObj

          public void delObj​(int objidx)
                      throws XPRSprobException

      Removes an objective function from the problem. Any objectives with `index > objidx` will be shifted down.
      Parameters:
        `objidx` - Index of the objective to remove.
      Throws:
        `XPRSprobException`

    - #### copyCallBacks

          public void copyCallBacks​(XPRSprob src)
                             throws XPRSprobException

      Copies callback functions defined for one problem to another.
      Parameters:
        `src` - The problem from which the callbacks are copied.
      Throws:
        `XPRSprobException`

    - #### copyControls

          public void copyControls​(XPRSprob src)
                            throws XPRSprobException

      Copies controls defined for one problem to another.
      Parameters:
        `src` - The problem from which the controls are copied.
      Throws:
        `XPRSprobException`

    - #### destroyProb

          @Deprecated
          public void destroyProb()
                           throws XPRSprobException

      Deprecated.
      use `close()` instead.
      Throws:
        `XPRSprobException`

    - #### interrupt

          public void interrupt​(XPRSenumerations.StopType reason)
                         throws XPRSprobException

      Interrupts the Optimizer algorithms.
      Parameters:
        `reason` - The reason for stopping. Possible reasons are:
        - `XPRS_STOP_NONE`: do not stop;
        - `XPRS_STOP_TIMELIMIT`: time limit hit;
        - `XPRS_STOP_WORKLIMIT`: work limit hit;
        - `XPRS_STOP_CTRLC`: control C hit;
        - `XPRS_STOP_NODELIMIT`: node limit hit;
        - `XPRS_STOP_ITERLIMIT`: iteration limit hit;
        - `XPRS_STOP_MIPGAP`: MIP gap is sufficiently small;
        - `XPRS_STOP_SOLLIMIT`: solution limit hit;
        - `XPRS_STOP_USER`: user interrupt;
        - `XPRS_STOP_NEXTOBJECTIVE`: stop the current solve, but continue with solving the next objective (see below);
        - `>= 1000`: user defined value.
      Throws:
        `XPRSprobException`

    - #### interrupt

          public void interrupt()
                         throws XPRSprobException

      Convenience wrapper for `interrupt(XPRSenumerations.StopType)`.
      Throws:
        `XPRSprobException`
      See Also:
        `interrupt(XPRSenumerations.StopType)`

    - #### getProbName

          public void getProbName​(StringHolder name)
                           throws XPRSprobException

      Returns the current problem name.

      Examples using `getProbName`:

      - AddMipSol.java
      - Tableau.java
      Parameters:
        `name` - A buffer of `MAXPROBNAMELENGTH`+1 bytes to contain the current problem name.
      Throws:
        `XPRSprobException`

    - #### getProbName

          public java.lang.String getProbName()
                                       throws XPRSprobException

      Convenience wrapper for `getProbName(com.dashoptimization.StringHolder)`.
      Returns:
        The value that would be returned by `getProbName(com.dashoptimization.StringHolder)` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getProbName(com.dashoptimization.StringHolder)`

    - #### setIntControl

          public void setIntControl​(int control,
                                    int value)
                             throws XPRSprobException

      Sets the value of a given integer control parameter.

      Examples using `setIntControl`:

      - Callback.java
      - IISExample.java
      Parameters:
        `control` - Control parameter whose value is to be set. A full list of all controls may be found in , or from the list in the `xprs.h` header file.
        `value` - Value to which the control parameter is to be set.
      Throws:
        `XPRSprobException`

    - #### setLongControl

          public void setLongControl​(int control,
                                     long value)
                              throws XPRSprobException

      Sets the value of a given integer control parameter.
      Parameters:
        `control` - Control parameter whose value is to be set. A full list of all controls may be found in , or from the list in the `xprs.h` header file.
        `value` - Value to which the control parameter is to be set.
      Throws:
        `XPRSprobException`

    - #### setDblControl

          public void setDblControl​(int control,
                                    double value)
                             throws XPRSprobException

      Sets the value of a given double control parameter.
      Parameters:
        `control` - Control parameter whose value is to be set. A full list of all controls may be found in , or from the list in the `xprs.h` header file.
        `value` - Value to which the control parameter is to be set.
      Throws:
        `XPRSprobException`

    - #### setStrControl

          public void setStrControl​(int control,
                                    java.lang.String value)
                             throws XPRSprobException

      Used to set the value of a given string control parameter.
      Parameters:
        `control` - Control parameter whose value is to be set. A full list of all controls may be found in , or from the list in the `xprs.h` header file.
        `value` - A string containing the value to which the control is to be set (plus a null terminator).
      Throws:
        `XPRSprobException`

    - #### getIntControl

          public void getIntControl​(int control,
                                    IntHolder p_value)
                             throws XPRSprobException

      Enables users to recover the values of various integer control parameters
      Parameters:
        `control` - Control parameter whose value is to be returned. A full list of all controls may be found in Chapter , or from the list in the `xprs.h` header file.
        `p_value` - Pointer to an integer where the value of the control will be returned.
      Throws:
        `XPRSprobException`

    - #### getIntControl

          public int getIntControl​(int control)

      Convenience wrapper for `getIntControl(int,com.dashoptimization.IntHolder)` that returns the output argument.
      Parameters:
        `control` - Control parameter whose value is to be returned. A full list of all controls may be found in Chapter , or from the list in the `xprs.h` header file.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### getLongControl

          public void getLongControl​(int control,
                                     LongHolder p_value)
                              throws XPRSprobException

      Enables users to recover the values of various integer control parameters
      Parameters:
        `control` - Control parameter whose value is to be returned. A full list of all controls may be found in Chapter , or from the list in the `xprs.h` header file.
        `p_value` - Pointer to an integer where the value of the control will be returned.
      Throws:
        `XPRSprobException`

    - #### getLongControl

          public long getLongControl​(int control)

      Convenience wrapper for `getLongControl(int,com.dashoptimization.LongHolder)` that returns the output argument.
      Parameters:
        `control` - Control parameter whose value is to be returned. A full list of all controls may be found in Chapter , or from the list in the `xprs.h` header file.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### getDblControl

          public void getDblControl​(int control,
                                    DoubleHolder p_value)
                             throws XPRSprobException

      Retrieves the value of a given double control parameter.
      Parameters:
        `control` - Control parameter whose value is to be returned. A full list of all controls may be found in Chapter , or from the list in the `xprs.h` header file.
        `p_value` - Pointer to the location where the control value will be returned.
      Throws:
        `XPRSprobException`

    - #### getDblControl

          public double getDblControl​(int control)

      Convenience wrapper for `getDblControl(int,com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `control` - Control parameter whose value is to be returned. A full list of all controls may be found in Chapter , or from the list in the `xprs.h` header file.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### getStringControl

          public void getStringControl​(int control,
                                       StringHolder value,
                                       int maxbytes,
                                       IntHolder p_nbytes)
                                throws XPRSprobException

      Returns the value of a given string control parameters.
      Parameters:
        `control` - Control parameter whose value is to be returned. A full list of all controls may be found in , or from the list in the `xprs.h` header file.
        `value` - Pointer to a string where the value of the control (plus null terminator) will be returned. May be `null` when `maxbytes` is zero, in order to retrieve the length of the control.
        `maxbytes` - Maximum number of bytes to be written into the value argument.
        `p_nbytes` - Returns the length of the string control including the null terminator.
      Throws:
        `XPRSprobException`

    - #### getIntAttrib

          public void getIntAttrib​(int attrib,
                                   IntHolder p_value)
                            throws XPRSprobException

      Enables users to recover the values of various integer problem attributes. Problem attributes are set during loading and optimization of a problem.

      Examples using `getIntAttrib`:

      - IISExample.java
      Parameters:
        `attrib` - Problem attribute whose value is to be returned. A full list of all problem attributes may be found in Chapter , or from the list in the `xprs.h` header file.
        `p_value` - Pointer to an integer where the value of the problem attribute will be returned.
      Throws:
        `XPRSprobException`

    - #### getIntAttrib

          public int getIntAttrib​(int attrib)

      Convenience wrapper for `getIntAttrib(int,com.dashoptimization.IntHolder)` that returns the output argument.

      Examples using `getIntAttrib`:

      - IISExample.java
      Parameters:
        `attrib` - Problem attribute whose value is to be returned. A full list of all problem attributes may be found in Chapter , or from the list in the `xprs.h` header file.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### getLongAttrib

          public void getLongAttrib​(int attrib,
                                    LongHolder p_value)
                             throws XPRSprobException

      Enables users to recover the values of various integer problem attributes. Problem attributes are set during loading and optimization of a problem.
      Parameters:
        `attrib` - Problem attribute whose value is to be returned. A full list of all problem attributes may be found in Chapter , or from the list in the `xprs.h` header file.
        `p_value` - Pointer to an integer where the value of the problem attribute will be returned.
      Throws:
        `XPRSprobException`

    - #### getLongAttrib

          public long getLongAttrib​(int attrib)

      Convenience wrapper for `getLongAttrib(int,com.dashoptimization.LongHolder)` that returns the output argument.
      Parameters:
        `attrib` - Problem attribute whose value is to be returned. A full list of all problem attributes may be found in Chapter , or from the list in the `xprs.h` header file.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### getStrStringAttrib

          public void getStrStringAttrib​(int attrib,
                                         StringHolder value,
                                         int maxbytes,
                                         IntHolder p_nbytes)
                                  throws XPRSprobException

      Enables users to recover the values of various string problem attributes. Problem attributes are set during loading and optimization of a problem.
      Parameters:
        `attrib` - Problem attribute whose value is to be returned. A full list of all problem attributes may be found in , or from the list in the `xprs.h` header file.
        `value` - Pointer to a string where the value of the attribute (plus null terminator) will be returned. May be `null` when `maxbytes` is zero, in order to retrieve the length of the attribute.
        `maxbytes` - Maximum number of bytes to be written into the cgval argument.
        `p_nbytes` - Returns the length of the string control including the null terminator.
      Throws:
        `XPRSprobException`

    - #### getDblAttrib

          public void getDblAttrib​(int attrib,
                                   DoubleHolder p_value)
                            throws XPRSprobException

      Enables users to retrieve the values of various double problem attributes. Problem attributes are set during loading and optimization of a problem.
      Parameters:
        `attrib` - Problem attribute whose value is to be returned. A full list of all available problem attributes may be found in Chapter , or from the list in the `xprs.h` header file.
        `p_value` - Pointer to a double where the value of the problem attribute will be returned.
      Throws:
        `XPRSprobException`

    - #### getDblAttrib

          public double getDblAttrib​(int attrib)

      Convenience wrapper for `getDblAttrib(int,com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `attrib` - Problem attribute whose value is to be returned. A full list of all available problem attributes may be found in Chapter , or from the list in the `xprs.h` header file.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### getControlInfo

          public void getControlInfo​(java.lang.String name,
                                     IntHolder p_id,
                                     XPRSenumerationHolders.ParameterType p_type)
                              throws XPRSprobException

      Accesses the id number and the type information of a control given its name. A control name may be for example `XPRS_PRESOLVE`. Names are case-insensitive and may or may not have the `XPRS_` prefix. The id number is the constant used to identify the control in the C API. The type information returned will be one of the below integer constants. The function will return an id number of `0` and a type value of `XPRS_TYPE_NOTDEFINED` if the name is not recognized as a control name. Note that this will occur if the name is an attribute name and not a control name.
      Parameters:
        `name` - The name of the control to be queried. Names are case-insensitive and may or may not have the `XPRS_` prefix. A full list of all controls may be found in , or from the list in the `xprs.h` header file.
        `p_id` - Pointer to an integer where the id number will be returned.
        `p_type` - Pointer to an integer where the type information will be returned. The returned value will be one of the following constants from `xprs.h`:

        XPRS_TYPE_NOTDEFINED | The name was not recognized.
        XPRS_TYPE_INT | 32-bit integer.
        XPRS_TYPE_INT64 | 64-bit integer.
        XPRS_TYPE_DOUBLE | Double precision floating point.
        XPRS_TYPE_STRING | String.

      Throws:
        `XPRSprobException`

    - #### getAttribInfo

          public void getAttribInfo​(java.lang.String name,
                                    IntHolder p_id,
                                    XPRSenumerationHolders.ParameterType p_type)
                             throws XPRSprobException

      Accesses the id number and the type information of an attribute given its name. An attribute name may be for example `XPRS_ROWS`. Names are case-insensitive and may or may not have the `XPRS_` prefix. The id number is the constant used to identify the attribute in the C API. The type information returned will be one of the below integer constants. The function will return an id number of 0 and a type value of `XPRS_TYPE_NOTDEFINED` if the name is not recognized as an attribute name. Note that this will occur if the name is a control name and not an attribute name.
      Parameters:
        `name` - The name of the attribute to be queried. Names are case-insensitive and may or may not have the `XPRS_` prefix. A full list of all attributes may be found in Chapter , or from the list in the `xprs.h` header file.
        `p_id` - Pointer to an integer where the id number will be returned.
        `p_type` - Pointer to an integer where the type id will be returned. The value will be one of the following constants from `xprs.h`:

        XPRS_TYPE_NOTDEFINED | The name was not recognized.
        XPRS_TYPE_INT | 32-bit integer.
        XPRS_TYPE_INT64 | 64-bit integer.
        XPRS_TYPE_DOUBLE | Double precision floating point.
        XPRS_TYPE_STRING | String.

      Throws:
        `XPRSprobException`

    - #### getIndex

          public void getIndex​(int type,
                               java.lang.String name,
                               IntHolder p_index)
                        throws XPRSprobException

      Returns the index for a specified row or column name.

      Examples using `getIndex`:

      - BinBurglar.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      Parameters:
        `type` -
        - `XPRS_NAMES_ROW`: `(=1)` if row index is required;
        - `XPRS_NAMES_COLUMN`: `(=2)` if column index is required;
        - `XPRS_NAMES_SET`: `(=3)` if set index is required;
        - `XPRS_NAMES_PWLCONS`: `(=4)` if piecewise linear constraint index is required;
        - `XPRS_NAMES_GENCONS`: `(=5)` if general constraint index is required;
        - `XPRS_NAMES_OBJECTIVE`: `(=6)` if objective index is required;
        - `XPRS_NAMES_USERFUNC`: `(=7)` if user function index is required;
        - `XPRS_NAMES_INTERNALFUNC`: `(=8)` if an internal function index is required.
        `name` - Null terminated string.
        `p_index` - Pointer of the integer where the row or column index number will be returned. A value of `-1` will be returned if the row or column does not exist.
      Throws:
        `XPRSprobException`

    - #### getIndex

          public int getIndex​(int type,
                              java.lang.String name)

      Convenience wrapper for `getIndex(int,String,com.dashoptimization.IntHolder)` that returns the output argument.

      Examples using `getIndex`:

      - BinBurglar.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      Parameters:
        `type` -
        - `XPRS_NAMES_ROW`: `(=1)` if row index is required;
        - `XPRS_NAMES_COLUMN`: `(=2)` if column index is required;
        - `XPRS_NAMES_SET`: `(=3)` if set index is required;
        - `XPRS_NAMES_PWLCONS`: `(=4)` if piecewise linear constraint index is required;
        - `XPRS_NAMES_GENCONS`: `(=5)` if general constraint index is required;
        - `XPRS_NAMES_OBJECTIVE`: `(=6)` if objective index is required;
        - `XPRS_NAMES_USERFUNC`: `(=7)` if user function index is required;
        - `XPRS_NAMES_INTERNALFUNC`: `(=8)` if an internal function index is required.
        `name` - Null terminated string.
      Returns:
        The value that the wrapped function would return in p_index.

    - #### getLastError

          public void getLastError​(StringHolder errmsg)
                            throws XPRSprobException

      Returns the error message corresponding to the last error encountered by a library function.
      Parameters:
        `errmsg` - A 512 character buffer where the last error message will be returned. If the message is longer than 512 characters then it will be truncated. The message will always be terminated by a `NUL` character.
      Throws:
        `XPRSprobException`

    - #### getLastError

          public java.lang.String getLastError()
                                        throws XPRSprobException

      Convenience wrapper for `getLastError(com.dashoptimization.StringHolder)`.
      Specified by:
        `getLastError` in class `XPRSobject`
      Returns:
        The value that would be returned by `getLastError(com.dashoptimization.StringHolder)` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getLastError(com.dashoptimization.StringHolder)`

    - #### setObjIntControl

          public void setObjIntControl​(int objidx,
                                       XPRSenumerations.ObjControl control,
                                       int value)
                                throws XPRSprobException

      Sets the value of a given integer control parameter associated with an objective. These parameters control how the objective is treated during multi-objective optimization.

      Examples using `setObjIntControl`:

      - CapitalBudgeting.java
      - GoalProg.java
      Parameters:
        `objidx` - Index of the objective to modify.
        `control` - Control parameter whose value is to be modified. Must be one of:
        - `XPRS_OBJECTIVE_PRIORITY`: set the priority of the given objective.
        `value` - Value to which the control parameter is to be set.
      Throws:
        `XPRSprobException`

    - #### setObjDblControl

          public void setObjDblControl​(int objidx,
                                       XPRSenumerations.ObjControl control,
                                       double value)
                                throws XPRSprobException

      Sets the value of a given double control parameter associated with an objective. These parameters control how the objective is treated during multi-objective optimization.

      Examples using `setObjDblControl`:

      - GoalProg.java
      Parameters:
        `objidx` - Index of the objective to modify.
        `control` - Control parameter whose value is to be modified. Must be one of:
        - `XPRS_OBJECTIVE_WEIGHT`: set the weight of the given objective;
        - `XPRS_OBJECTIVE_ABSTOL`: set the absolute tolerance of the given objective;
        - `XPRS_OBJECTIVE_RELTOL`: set the relative tolerance of the given objective;
        - `XPRS_OBJECTIVE_RHS`: set the constant term of the given objective.
        `value` - Value to which the control parameter is to be set.
      Throws:
        `XPRSprobException`

    - #### getObjIntControl

          public void getObjIntControl​(int objidx,
                                       XPRSenumerations.ObjControl control,
                                       IntHolder p_value)
                                throws XPRSprobException

      Retrieves the value of a given integer control parameter associated with an objective. These parameters control how the objective is treated during multi-objective optimization.
      Parameters:
        `objidx` - Index of the objective to query.
        `control` - Control parameter whose value is to be returned. Must be one of:
        - `XPRS_OBJECTIVE_PRIORITY`: get the priority of the given objective.
        `p_value` - Pointer to an integer where the control value will be returned.
      Throws:
        `XPRSprobException`

    - #### getObjIntControl

          public int getObjIntControl​(int objidx,
                                      XPRSenumerations.ObjControl control)

      Convenience wrapper for `getObjIntControl(int,XPRSenumerations.ObjControl,com.dashoptimization.IntHolder)` that returns the output argument.
      Parameters:
        `objidx` - Index of the objective to query.
        `control` - Control parameter whose value is to be returned. Must be one of:
        - `XPRS_OBJECTIVE_PRIORITY`: get the priority of the given objective.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### getObjDblControl

          public void getObjDblControl​(int objidx,
                                       XPRSenumerations.ObjControl control,
                                       DoubleHolder p_value)
                                throws XPRSprobException

      Retrieves the value of a given double control parameter associated with an objective function. These parameters control how the objective is treated during multi-objective optimization.
      Parameters:
        `objidx` - Index of the objective to query.
        `control` - Control parameter whose value is to be returned. Must be one of:
        - `XPRS_OBJECTIVE_WEIGHT`: get the weight of the given objective;
        - `XPRS_OBJECTIVE_ABSTOL`: get the absolute tolerance of the given objective;
        - `XPRS_OBJECTIVE_RELTOL`: get the relative tolerance of the given objective;
        - `XPRS_OBJECTIVE_RHS`: get the constant term of the given objective.
        `p_value` - Pointer to a double where the control value will be returned.
      Throws:
        `XPRSprobException`

    - #### getObjDblControl

          public double getObjDblControl​(int objidx,
                                         XPRSenumerations.ObjControl control)

      Convenience wrapper for `getObjDblControl(int,XPRSenumerations.ObjControl,com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `objidx` - Index of the objective to query.
        `control` - Control parameter whose value is to be returned. Must be one of:
        - `XPRS_OBJECTIVE_WEIGHT`: get the weight of the given objective;
        - `XPRS_OBJECTIVE_ABSTOL`: get the absolute tolerance of the given objective;
        - `XPRS_OBJECTIVE_RELTOL`: get the relative tolerance of the given objective;
        - `XPRS_OBJECTIVE_RHS`: get the constant term of the given objective.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### getObjIntAttrib

          public void getObjIntAttrib​(int solveidx,
                                      int attrib,
                                      IntHolder p_value)
                               throws XPRSprobException

      Retrieves the value of a given integer attribute associated with a multi-objective solve. When solving a multi-objective problem, several objectives might be optimized in sequence. After each solve, the problem attributes are captured so that they can be queried afterwards.
      Parameters:
        `solveidx` - Index of the solve to query. Must be between `0` and `SOLVEDOBJS-1`.
        `attrib` - Problem attribute whose value is to be returned. A full list of all problem attributes may be found in , or from the list in the `xprs.h` header file.
        `p_value` - Pointer to an integer where attribute value will be returned.
      Throws:
        `XPRSprobException`

    - #### getObjIntAttrib

          public int getObjIntAttrib​(int solveidx,
                                     int attrib)

      Convenience wrapper for `getObjIntAttrib(int,int,com.dashoptimization.IntHolder)` that returns the output argument.
      Parameters:
        `solveidx` - Index of the solve to query. Must be between `0` and `SOLVEDOBJS-1`.
        `attrib` - Problem attribute whose value is to be returned. A full list of all problem attributes may be found in , or from the list in the `xprs.h` header file.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### getObjIntAttrib

          public void getObjIntAttrib​(int solveidx,
                                      int attrib,
                                      LongHolder p_value)
                               throws XPRSprobException

      Retrieves the value of a given integer attribute associated with a multi-objective solve. When solving a multi-objective problem, several objectives might be optimized in sequence. After each solve, the problem attributes are captured so that they can be queried afterwards.
      Parameters:
        `solveidx` - Index of the solve to query. Must be between `0` and `SOLVEDOBJS-1`.
        `attrib` - Problem attribute whose value is to be returned. A full list of all problem attributes may be found in , or from the list in the `xprs.h` header file.
        `p_value` - Pointer to an integer where attribute value will be returned.
      Throws:
        `XPRSprobException`

    - #### getObjLongAttrib

          public long getObjLongAttrib​(int solveidx,
                                       int attrib)

      Convenience wrapper for `getObjIntAttrib(int,int,com.dashoptimization.LongHolder)` that returns the output argument.
      Parameters:
        `solveidx` - Index of the solve to query. Must be between `0` and `SOLVEDOBJS-1`.
        `attrib` - Problem attribute whose value is to be returned. A full list of all problem attributes may be found in , or from the list in the `xprs.h` header file.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### getObjDblAttrib

          public void getObjDblAttrib​(int solveidx,
                                      int attrib,
                                      DoubleHolder p_value)
                               throws XPRSprobException

      Retrieves the value of a given double attribute associated with a multi-objective solve. When solving a multi-objective problem, several objectives might be optimized in sequence. After each solve, the problem attributes are captured so that they can be queried afterwards.
      Parameters:
        `solveidx` - Index of the solve to query. Must be between `0` and `SOLVEDOBJS-1`.
        `attrib` - Problem attribute whose value is to be returned. A full list of all problem attributes may be found in , or from the list in the `xprs.h` header file.
        `p_value` - Pointer to a double where attribute value will be returned.
      Throws:
        `XPRSprobException`

    - #### getObjDblAttrib

          public double getObjDblAttrib​(int solveidx,
                                        int attrib)

      Convenience wrapper for `getObjDblAttrib(int,int,com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `solveidx` - Index of the solve to query. Must be between `0` and `SOLVEDOBJS-1`.
        `attrib` - Problem attribute whose value is to be returned. A full list of all problem attributes may be found in , or from the list in the `xprs.h` header file.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### getQObj

          public void getQObj​(int objqcol1,
                              int objqcol2,
                              DoubleHolder p_objqcoef)
                       throws XPRSprobException

      Returns a single quadratic objective function coefficient corresponding to the variable pair `(objqcol1, objqcol2)` of the Hessian matrix.
      Parameters:
        `objqcol1` - Column index for the first variable in the quadratic term.
        `objqcol2` - Column index for the second variable in the quadratic term.
        `p_objqcoef` - Pointer to a double value where the objective function coefficient is to be placed.
      Throws:
        `XPRSprobException`

    - #### getQObj

          public double getQObj​(int objqcol1,
                                int objqcol2)

      Convenience wrapper for `getQObj(int,int,com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `objqcol1` - Column index for the first variable in the quadratic term.
        `objqcol2` - Column index for the second variable in the quadratic term.
      Returns:
        The value that the wrapped function would return in p_objqcoef.

    - #### getDirs

          public void getDirs​(IntHolder p_ndir,
                              int[] indices,
                              int[] prios,
                              byte[] branchdirs,
                              double[] uppseudo,
                              double[] downpseudo)
                       throws XPRSprobException

      Used to return the directives that have been loaded into a matrix. Priorities, forced branching directions and pseudo costs can be returned. If called after presolve, `getDirs` will get the directives for the presolved problem.
      Parameters:
        `p_ndir` - Pointer to an integer where the number of directives will be returned.
        `indices` - Integer array of length `p_ndir` containing the column numbers ( `0`, `1`, `2`,...) or negative values corresponding to special ordered sets (the first set numbered `-1`, the second numbered `-2`,...). May be `null` if not required.
        `prios` - Integer array of length `p_ndir` containing the priorities for the columns and sets, where columns/sets with smallest priority will be branched on first. May be `null` if not required.
        `branchdirs` - Character array of length `p_ndir` specifying the branching direction for each column or set:
        - `U`: the entity is to be forced up;
        - `D`: the entity is to be forced down;
        - `N`: not specified.
        May be `null` if not required.
        `uppseudo` - Double array of length `p_ndir` containing the up pseudo costs for the columns and sets. May be `null` if not required.
        `downpseudo` - Double array of length `p_ndir` containing the down pseudo costs for the columns and sets. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getDirs

          public int getDirs​(int[] indices,
                             int[] prios,
                             byte[] branchdirs,
                             double[] uppseudo,
                             double[] downpseudo)
                      throws XPRSprobException

      Convenience wrapper for `getDirs(com.dashoptimization.IntHolder, int[], int[], byte[], double[], double[])`.
      Returns:
        The value that would be returned by `getDirs(com.dashoptimization.IntHolder, int[], int[], byte[], double[], double[])` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getDirs(com.dashoptimization.IntHolder, int[], int[], byte[], double[], double[])`

    - #### getDirs

          public int getDirs()
                      throws XPRSprobException

      Convenience wrapper for `getDirs(com.dashoptimization.IntHolder, int[], int[], byte[], double[], double[])`.
      Returns:
        The value that would be returned by `getDirs(com.dashoptimization.IntHolder, int[], int[], byte[], double[], double[])` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getDirs(com.dashoptimization.IntHolder, int[], int[], byte[], double[], double[])`

    - #### getScale

          public void getScale​(int[] rowscale,
                               int[] colscale)
                        throws XPRSprobException

      Returns the the current scaling of the matrix.
      Parameters:
        `rowscale` - Integer array of size `ROWS` that will contain the powers of `2` with which the rows are currently scaled.
        `colscale` - Integer array of size `COLS` that will contain the powers of `2` with which the columns are currently scaled.
      Throws:
        `XPRSprobException`

    - #### getPivotOrder

          public void getPivotOrder​(int[] pivotorder)
                             throws XPRSprobException

      Returns the pivot order of the basic variables.

      Examples using `getPivotOrder`:

      - Tableau.java
      Parameters:
        `pivotorder` - Integer array of length `ROWS` where the pivot order will be returned.
      Throws:
        `XPRSprobException`

    - #### getPresolveMap

          public void getPresolveMap​(int[] rowmap,
                                     int[] colmap)
                              throws XPRSprobException

      Returns the mapping of the row and column numbers from the presolve problem back to the original problem.
      Parameters:
        `rowmap` - Integer array of length `ROWS` where the row maps will be returned.
        `colmap` - Integer array of length `COLS` where the column maps will be returned.
      Throws:
        `XPRSprobException`

    - #### btran

          public void btran​(double[] vec)
                     throws XPRSprobException

      Post-multiplies a (row) vector provided by the user by the inverse of the current basis.

      Examples using `btran`:

      - Tableau.java
      Parameters:
        `vec` - Double array of length `ROWS` containing the values by which the basis inverse is to be multiplied. The transformed values will also be returned in this array.
      Throws:
        `XPRSprobException`

    - #### ftran

          public void ftran​(double[] vec)
                     throws XPRSprobException

      Pre-multiplies a (column) vector provided by the user by the inverse of the current matrix.
      Parameters:
        `vec` - Double array of length `ROWS` containing the values which are to be multiplied by the basis inverse. The transformed values appear in the array.
      Throws:
        `XPRSprobException`

    - #### sparseBTran

          public void sparseBTran​(double[] val,
                                  int[] ind,
                                  IntHolder p_ncoefs)
                           throws XPRSprobException

      Post-multiplies a (row) vector provided by the user by the inverse of the current matrix. Sparse version of `bTran`.
      Parameters:
        `val` - Double array of length `ROWS` containing the values which are to be post-multiplied by the basis inverse. The transformed values are returned in this array.
        `ind` - Integer array of indices identifying the non-zero entries of `val`. The indices of the non-zero entries of the transformed vector in `val` will be returned here. This array must be allocated to hold at least `ROWS` indices.
        `p_ncoefs` - Memory location where the number of non-zero entries is given. The number of non-zero entries of the transformed vector will be returned here.
      Throws:
        `XPRSprobException`

    - #### sparseFTran

          public void sparseFTran​(double[] val,
                                  int[] ind,
                                  IntHolder p_ncoefs)
                           throws XPRSprobException

      Pre-multiplies a (column) vector provided by the user by the inverse of the current matrix. Sparse version of `fTran`.
      Parameters:
        `val` - Double array of length `ROWS` containing the values which are to be multiplied by the basis inverse. The transformed values are returned in this array.
        `ind` - Integer array of indices identifying the non-zero entries of `val`. The indices of the non-zero entries of the transformed vector in `val` will be returned here. This array must be allocated to hold at least `ROWS` indices.
        `p_ncoefs` - Memory location where the number of non-zero entries is given. The number of non-zero entries of the transformed vector will be returned here.
      Throws:
        `XPRSprobException`

    - #### getObj

          public void getObj​(double[] objcoef,
                             int first,
                             int last)
                      throws XPRSprobException

      Returns the objective function coefficients for the columns in a given range.

      Examples using `getObj`:

      - Knapsack.java
      Parameters:
        `objcoef` - Double array of length `last-first+1` where the objective function coefficients are to be placed.
        `first` - First column in the range.
        `last` - Last column in the range.
      Throws:
        `XPRSprobException`

    - #### getObj

          public double getObj​(int x)
                        throws XPRSprobException

      Convenience wrapper for `getObj(double[], int, int)`. This overload retrieves and returns the information for only a single element instead of an array.

      Examples using `getObj`:

      - Knapsack.java
      Parameters:
        `x` - The index of the element to query.
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getObj(double[],int,int)`

    - #### getObj

          public double[] getObj​(int first,
                                 int last)
                          throws XPRSprobException

      Convenience wrapper for `getObj(double[], int, int)`. This overload retrieves and returns the same information but allocates the required array for you.

      Examples using `getObj`:

      - Knapsack.java
      Parameters:
        `first` - First index (inclusive).
        `last` - Last index (inclusive).
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getObj(double[],int,int)`

    - #### getObjN

          public void getObjN​(int objidx,
                              double[] objcoef,
                              int first,
                              int last)
                       throws XPRSprobException

      For a given objective function, returns the objective coefficients for the columns in a given range.
      Parameters:
        `objidx` - Index of the objective function whose coefficients to return.
        `objcoef` - Double array of length `last-first+1` where the objective function coefficients are to be placed.
        `first` - First column in the range.
        `last` - Last column in the range.
      Throws:
        `XPRSprobException`

    - #### getRHS

          public void getRHS​(double[] rhs,
                             int first,
                             int last)
                      throws XPRSprobException

      Returns the right hand side elements for the rows in a given range.

      Examples using `getRHS`:

      - Repair.java
      Parameters:
        `rhs` - Double array of length `last-first+1` where the right hand side elements are to be placed.
        `first` - First row in the range.
        `last` - Last row in the range.
      Throws:
        `XPRSprobException`

    - #### getRHS

          public double getRHS​(int x)
                        throws XPRSprobException

      Convenience wrapper for `getRHS(double[], int, int)`. This overload retrieves and returns the information for only a single element instead of an array.

      Examples using `getRHS`:

      - Repair.java
      Parameters:
        `x` - The index of the element to query.
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getRHS(double[],int,int)`

    - #### getRHS

          public double[] getRHS​(int first,
                                 int last)
                          throws XPRSprobException

      Convenience wrapper for `getRHS(double[], int, int)`. This overload retrieves and returns the same information but allocates the required array for you.

      Examples using `getRHS`:

      - Repair.java
      Parameters:
        `first` - First index (inclusive).
        `last` - Last index (inclusive).
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getRHS(double[],int,int)`

    - #### getRHSrange

          public void getRHSrange​(double[] rng,
                                  int first,
                                  int last)
                           throws XPRSprobException

      Returns the right hand side range values for the rows in a given range.

      Examples using `getRHSrange`:

      - Repair.java
      Parameters:
        `rng` - Double array of length `last-first+1` where the right hand side range values are to be placed.
        `first` - First row in the range.
        `last` - Last row in the range.
      Throws:
        `XPRSprobException`

    - #### getRHSrange

          public double getRHSrange​(int x)
                             throws XPRSprobException

      Convenience wrapper for `getRHSrange(double[], int, int)`. This overload retrieves and returns the information for only a single element instead of an array.

      Examples using `getRHSrange`:

      - Repair.java
      Parameters:
        `x` - The index of the element to query.
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getRHSrange(double[],int,int)`

    - #### getRHSrange

          public double[] getRHSrange​(int first,
                                      int last)
                               throws XPRSprobException

      Convenience wrapper for `getRHSrange(double[], int, int)`. This overload retrieves and returns the same information but allocates the required array for you.

      Examples using `getRHSrange`:

      - Repair.java
      Parameters:
        `first` - First index (inclusive).
        `last` - Last index (inclusive).
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getRHSrange(double[],int,int)`

    - #### getLB

          public void getLB​(double[] lb,
                            int first,
                            int last)
                     throws XPRSprobException

      Returns the lower bounds for the columns in a given range.

      Examples using `getLB`:

      - MultipleProblems.java
      - Repair.java
      Parameters:
        `lb` - Double array of length `last-first+1` where the lower bounds are to be placed.
        `first` - First column in the range.
        `last` - Last column in the range.
      Throws:
        `XPRSprobException`

    - #### getLB

          public double getLB​(int x)
                       throws XPRSprobException

      Convenience wrapper for `getLB(double[], int, int)`. This overload retrieves and returns the information for only a single element instead of an array.

      Examples using `getLB`:

      - MultipleProblems.java
      - Repair.java
      Parameters:
        `x` - The index of the element to query.
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getLB(double[],int,int)`

    - #### getLB

          public double[] getLB​(int first,
                                int last)
                         throws XPRSprobException

      Convenience wrapper for `getLB(double[], int, int)`. This overload retrieves and returns the same information but allocates the required array for you.

      Examples using `getLB`:

      - MultipleProblems.java
      - Repair.java
      Parameters:
        `first` - First index (inclusive).
        `last` - Last index (inclusive).
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getLB(double[],int,int)`

    - #### getUB

          public void getUB​(double[] ub,
                            int first,
                            int last)
                     throws XPRSprobException

      Returns the upper bounds for the columns in a given range.

      Examples using `getUB`:

      - MultipleProblems.java
      - Repair.java
      Parameters:
        `ub` - Double array of length `last-first+1` where the upper bounds are to be placed.
        `first` - First column in the range.
        `last` - Last column in the range.
      Throws:
        `XPRSprobException`

    - #### getUB

          public double getUB​(int x)
                       throws XPRSprobException

      Convenience wrapper for `getUB(double[], int, int)`. This overload retrieves and returns the information for only a single element instead of an array.

      Examples using `getUB`:

      - MultipleProblems.java
      - Repair.java
      Parameters:
        `x` - The index of the element to query.
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getUB(double[],int,int)`

    - #### getUB

          public double[] getUB​(int first,
                                int last)
                         throws XPRSprobException

      Convenience wrapper for `getUB(double[], int, int)`. This overload retrieves and returns the same information but allocates the required array for you.

      Examples using `getUB`:

      - MultipleProblems.java
      - Repair.java
      Parameters:
        `first` - First index (inclusive).
        `last` - Last index (inclusive).
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getUB(double[],int,int)`

    - #### getCols

          public void getCols​(int[] start,
                              int[] rowind,
                              double[] rowcoef,
                              int maxcoefs,
                              IntHolder p_ncoefs,
                              int first,
                              int last)
                       throws XPRSprobException

      Returns the nonzeros in the constraint matrix for the columns in a given range.

      Examples using `getCols`:

      - AddMipSol.java
      - CuttingStock.java
      - FolioHeuristic.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      - Knapsack.java
      - MipSolEnum.java
      - MostViolated.java
      - Repair.java
      - RoundInt.java
      - Tableau.java
      - Trimloss.java
      Parameters:
        `start` - Integer array which will be filled with the indices indicating the starting offsets in the `rowind` and `rowcoef` arrays for each requested column. It must be of length `last-first+2`. Column `i` starts at position `start[i]` in the `rowind` and `rowcoef` arrays, and has `start[i+1]-start[i]` elements in it. May be `null` if not required.
        `rowind` - Integer array of length `maxcoefs` which will be filled with the row indices of the nonzero coefficents for each column. May be `null` if not required.
        `rowcoef` - Double array of length `maxcoefs` which will be filled with the nonzero coefficient values. May be `null` if not required.
        `maxcoefs` - The size of the `rowind` and `rowcoef` arrays. This is the maximum number of nonzero coefficients that the Optimizer is allowed to return.
        `p_ncoefs` - Pointer to an integer where the number of nonzero coefficients in the selected columns will be returned. If `p_ncoefs` exceeds `maxcoefs`, only the `maxcoefs` first nonzero coefficients will be returned. May be `null` if not required.
        `first` - First column in the range.
        `last` - Last column in the range.
      Throws:
        `XPRSprobException`

    - #### getCols

          public int getCols​(int[] start,
                             int[] rowind,
                             double[] rowcoef,
                             int maxcoefs,
                             int first,
                             int last)
                      throws XPRSprobException

      Convenience wrapper for `getCols(int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)`.
      Returns:
        The value that would be returned by `getCols(int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getCols(int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)`

    - #### getCols

          public void getCols​(long[] start,
                              int[] rowind,
                              double[] rowcoef,
                              long maxcoefs,
                              LongHolder p_ncoefs,
                              int first,
                              int last)
                       throws XPRSprobException

      Returns the nonzeros in the constraint matrix for the columns in a given range.

      Examples using `getCols`:

      - AddMipSol.java
      - CuttingStock.java
      - FolioHeuristic.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      - Knapsack.java
      - MipSolEnum.java
      - MostViolated.java
      - Repair.java
      - RoundInt.java
      - Tableau.java
      - Trimloss.java
      Parameters:
        `start` - Integer array which will be filled with the indices indicating the starting offsets in the `rowind` and `rowcoef` arrays for each requested column. It must be of length `last-first+2`. Column `i` starts at position `start[i]` in the `rowind` and `rowcoef` arrays, and has `start[i+1]-start[i]` elements in it. May be `null` if not required.
        `rowind` - Integer array of length `maxcoefs` which will be filled with the row indices of the nonzero coefficents for each column. May be `null` if not required.
        `rowcoef` - Double array of length `maxcoefs` which will be filled with the nonzero coefficient values. May be `null` if not required.
        `maxcoefs` - The size of the `rowind` and `rowcoef` arrays. This is the maximum number of nonzero coefficients that the Optimizer is allowed to return.
        `p_ncoefs` - Pointer to an integer where the number of nonzero coefficients in the selected columns will be returned. If `p_ncoefs` exceeds `maxcoefs`, only the `maxcoefs` first nonzero coefficients will be returned. May be `null` if not required.
        `first` - First column in the range.
        `last` - Last column in the range.
      Throws:
        `XPRSprobException`

    - #### getCols

          public long getCols​(long[] start,
                              int[] rowind,
                              double[] rowcoef,
                              long maxcoefs,
                              int first,
                              int last)
                       throws XPRSprobException

      Convenience wrapper for `getCols(long[], int[], double[], long, com.dashoptimization.LongHolder, int, int)`.
      Returns:
        The value that would be returned by `getCols(long[], int[], double[], long, com.dashoptimization.LongHolder, int, int)` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getCols(long[], int[], double[], long, com.dashoptimization.LongHolder, int, int)`

    - #### getRows

          public void getRows​(int[] start,
                              int[] colind,
                              double[] colcoef,
                              int maxcoefs,
                              IntHolder p_ncoefs,
                              int first,
                              int last)
                       throws XPRSprobException

      Returns the nonzeros in the constraint matrix for the rows in a given range.

      Examples using `getRows`:

      - CuttingStock.java
      - FolioHeuristic.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      - LoadLP.java
      - Repair.java
      - Tableau.java
      - Trimloss.java
      Parameters:
        `start` - Integer array which will be filled with the indices indicating the starting offsets in the `colind` and `colcoef` arrays for each requested row. It must be of length `last-first+2`. Row `i` starts at position `start[i]` in the `colind` and `colcoef` arrays, and has `start[i+1]-start[i]` elements in it. May be `null` if not required.
        `colind` - Integer array of length `maxcoefs` which will be filled with the column indices of the nonzero elements for each row. May be `null` if not required.
        `colcoef` - Double array of length `maxcoefs` which will be filled with the nonzero element values. May be `null` if not required.
        `maxcoefs` - Maximum number of elements to be retrieved.
        `p_ncoefs` - Pointer to the integer where the number of nonzero elements in the selected rows will be returned. If the number of nonzero elements is greater than `maxcoefs`, then only `maxcoefs` elements will be returned. If `p_ncoefs` is smaller than `maxcoefs`, then only `p_ncoefs` will be returned. May be `null` if not required.
        `first` - First row in the range.
        `last` - Last row in the range.
      Throws:
        `XPRSprobException`

    - #### getRows

          public int getRows​(int[] start,
                             int[] colind,
                             double[] colcoef,
                             int maxcoefs,
                             int first,
                             int last)
                      throws XPRSprobException

      Convenience wrapper for `getRows(int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)`.
      Returns:
        The value that would be returned by `getRows(int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getRows(int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)`

    - #### getRows

          public void getRows​(long[] start,
                              int[] colind,
                              double[] colcoef,
                              long maxcoefs,
                              LongHolder p_ncoefs,
                              int first,
                              int last)
                       throws XPRSprobException

      Returns the nonzeros in the constraint matrix for the rows in a given range.

      Examples using `getRows`:

      - CuttingStock.java
      - FolioHeuristic.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      - LoadLP.java
      - Repair.java
      - Tableau.java
      - Trimloss.java
      Parameters:
        `start` - Integer array which will be filled with the indices indicating the starting offsets in the `colind` and `colcoef` arrays for each requested row. It must be of length `last-first+2`. Row `i` starts at position `start[i]` in the `colind` and `colcoef` arrays, and has `start[i+1]-start[i]` elements in it. May be `null` if not required.
        `colind` - Integer array of length `maxcoefs` which will be filled with the column indices of the nonzero elements for each row. May be `null` if not required.
        `colcoef` - Double array of length `maxcoefs` which will be filled with the nonzero element values. May be `null` if not required.
        `maxcoefs` - Maximum number of elements to be retrieved.
        `p_ncoefs` - Pointer to the integer where the number of nonzero elements in the selected rows will be returned. If the number of nonzero elements is greater than `maxcoefs`, then only `maxcoefs` elements will be returned. If `p_ncoefs` is smaller than `maxcoefs`, then only `p_ncoefs` will be returned. May be `null` if not required.
        `first` - First row in the range.
        `last` - Last row in the range.
      Throws:
        `XPRSprobException`

    - #### getRows

          public long getRows​(long[] start,
                              int[] colind,
                              double[] colcoef,
                              long maxcoefs,
                              int first,
                              int last)
                       throws XPRSprobException

      Convenience wrapper for `getRows(long[], int[], double[], long, com.dashoptimization.LongHolder, int, int)`.
      Returns:
        The value that would be returned by `getRows(long[], int[], double[], long, com.dashoptimization.LongHolder, int, int)` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getRows(long[], int[], double[], long, com.dashoptimization.LongHolder, int, int)`

    - #### getMIPEntities

          public void getMIPEntities​(IntHolder p_nentities,
                                     IntHolder p_nsets,
                                     byte[] coltype,
                                     int[] colind,
                                     double[] limit,
                                     byte[] settype,
                                     int[] start,
                                     int[] setcols,
                                     double[] refval)
                              throws XPRSprobException

      Retrieves integr and entity information about a problem. It must be called before `mipOptimize` if the presolve option is used.
      Parameters:
        `p_nentities` - Pointer to the integer where the number of binary, integer, semi-continuous, semi-continuous integer and partial integer entities will be returned. This is equal to the problem attribute `MIPENTS`. May be `null`.
        `p_nsets` - Pointer to the integer where the number of SOS1 and SOS2 sets will be returned. It can be retrieved from the problem attribute `SETS`. May be `null`.
        `coltype` - Character array of length `MIPENTS` where the entity types will be returned. The types will be one of:
        - `B`: binary variables;
        - `I`: integer variables;
        - `P`: partial integer variables;
        - `S`: semi-continuous variables;
        - `R`: semi-continuous integer variables.
        May be `null` if not required.
        `colind` - Integer array of length `MIPENTS` where the column indices of the MIP entities will be returned. May be `null` if not required.
        `limit` - Double array of length `MIPENTS` where the limits for the partial integer variables and lower bounds for the semi-continuous and semi-continuous integer variables will be returned (any entries in the positions corresponding to binary and integer variables will be meaningless). May be `null` if not required.
        `settype` - Character array of length `SETS` where the set types will be returned. The set types will be one of:
        - `1`: SOS1 type sets;
        - `2`: SOS2 type sets.
        May be `null` if not required.
        `start` - Integer array where the offsets into the `setcols` and `refval` arrays indicating the start of each set will be returned. This array must be of length `SETS+1`, the last element will contain the offset where set `SETS+1` would start, and equals the length of the `setcols` and `refval` arrays, `SETMEMBERS`.
        `setcols` - Integer array of length `SETMEMBERS` where the columns in each set will be returned.
        `refval` - Double array of length `SETMEMBERS` where the reference row entries for each member of the sets will be returned. These define the order for SOS2 constraints and may be used in branching for both types.
      Throws:
        `XPRSprobException`

    - #### getMIPEntities

          public void getMIPEntities​(IntHolder p_nentities,
                                     byte[] coltype,
                                     int[] colind,
                                     double[] limit)
                              throws XPRSprobException

      Convenience wrapper for `getMIPEntities(com.dashoptimization.IntHolder, com.dashoptimization.IntHolder, byte[], int[], double[], byte[], int[], int[], double[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `getMIPEntities(com.dashoptimization.IntHolder, com.dashoptimization.IntHolder, byte[], int[], double[], byte[], int[], int[], double[])`

    - #### getMIPEntities

          public int getMIPEntities​(byte[] coltype,
                                    int[] colind,
                                    double[] limit)
                             throws XPRSprobException

      Convenience wrapper for `getMIPEntities(com.dashoptimization.IntHolder, com.dashoptimization.IntHolder, byte[], int[], double[], byte[], int[], int[], double[])`.
      Returns:
        The value that would be returned by `getMIPEntities(com.dashoptimization.IntHolder, com.dashoptimization.IntHolder, byte[], int[], double[], byte[], int[], int[], double[])` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getMIPEntities(com.dashoptimization.IntHolder, com.dashoptimization.IntHolder, byte[], int[], double[], byte[], int[], int[], double[])`

    - #### getMIPEntities

          public void getMIPEntities​(IntHolder p_nentities,
                                     IntHolder p_nsets,
                                     byte[] coltype,
                                     int[] colind,
                                     double[] limit,
                                     byte[] settype,
                                     long[] start,
                                     int[] setcols,
                                     double[] refval)
                              throws XPRSprobException

      Retrieves integr and entity information about a problem. It must be called before `mipOptimize` if the presolve option is used.
      Parameters:
        `p_nentities` - Pointer to the integer where the number of binary, integer, semi-continuous, semi-continuous integer and partial integer entities will be returned. This is equal to the problem attribute `MIPENTS`. May be `null`.
        `p_nsets` - Pointer to the integer where the number of SOS1 and SOS2 sets will be returned. It can be retrieved from the problem attribute `SETS`. May be `null`.
        `coltype` - Character array of length `MIPENTS` where the entity types will be returned. The types will be one of:
        - `B`: binary variables;
        - `I`: integer variables;
        - `P`: partial integer variables;
        - `S`: semi-continuous variables;
        - `R`: semi-continuous integer variables.
        May be `null` if not required.
        `colind` - Integer array of length `MIPENTS` where the column indices of the MIP entities will be returned. May be `null` if not required.
        `limit` - Double array of length `MIPENTS` where the limits for the partial integer variables and lower bounds for the semi-continuous and semi-continuous integer variables will be returned (any entries in the positions corresponding to binary and integer variables will be meaningless). May be `null` if not required.
        `settype` - Character array of length `SETS` where the set types will be returned. The set types will be one of:
        - `1`: SOS1 type sets;
        - `2`: SOS2 type sets.
        May be `null` if not required.
        `start` - Integer array where the offsets into the `setcols` and `refval` arrays indicating the start of each set will be returned. This array must be of length `SETS+1`, the last element will contain the offset where set `SETS+1` would start, and equals the length of the `setcols` and `refval` arrays, `SETMEMBERS`.
        `setcols` - Integer array of length `SETMEMBERS` where the columns in each set will be returned.
        `refval` - Double array of length `SETMEMBERS` where the reference row entries for each member of the sets will be returned. These define the order for SOS2 constraints and may be used in branching for both types.
      Throws:
        `XPRSprobException`

    - #### getRowFlags

          public void getRowFlags​(int[] flags,
                                  int first,
                                  int last)
                           throws XPRSprobException

      Retrieve if a range of rows have been set up as special rows.
      Parameters:
        `flags` - Integer array of length `last-first+1` where type of information (see below) will be returned
        `first` - First row index to be checked
        `last` - Last row index to be checked
      Throws:
        `XPRSprobException`

    - #### getRowFlags

          public int getRowFlags​(int x)
                          throws XPRSprobException

      Convenience wrapper for `getRowFlags(int[], int, int)`. This overload retrieves and returns the information for only a single element instead of an array.
      Parameters:
        `x` - The index of the element to query.
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getRowFlags(int[],int,int)`

    - #### getRowFlags

          public int[] getRowFlags​(int first,
                                   int last)
                            throws XPRSprobException

      Convenience wrapper for `getRowFlags(int[], int, int)`. This overload retrieves and returns the same information but allocates the required array for you.
      Parameters:
        `first` - First index (inclusive).
        `last` - Last index (inclusive).
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getRowFlags(int[],int,int)`

    - #### clearRowFlags

          public void clearRowFlags​(int[] flags,
                                    int first,
                                    int last)
                             throws XPRSprobException

      Clears extra information attached to a range of rows.
      Parameters:
        `flags` - Integer array of length `last-first+1` including type of extra information to remove (see below)
        `first` - First row index to be checked
        `last` - Last row index to be checked
      Throws:
        `XPRSprobException`

    - #### getCoef

          public void getCoef​(int row,
                              int col,
                              DoubleHolder p_coef)
                       throws XPRSprobException

      Returns a single coefficient in the constraint matrix.
      Parameters:
        `row` - Row of the constraint matrix.
        `col` - Column of the constraint matrix.
        `p_coef` - Pointer to a double where the coefficient will be returned.
      Throws:
        `XPRSprobException`

    - #### getCoef

          public double getCoef​(int row,
                                int col)

      Convenience wrapper for `getCoef(int,int,com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `row` - Row of the constraint matrix.
        `col` - Column of the constraint matrix.
      Returns:
        The value that the wrapped function would return in p_coef.

    - #### getMQObj

          public void getMQObj​(int[] start,
                               int[] colind,
                               double[] objqcoef,
                               int maxcoefs,
                               IntHolder p_ncoefs,
                               int first,
                               int last)
                        throws XPRSprobException

      Returns the nonzeros in the quadratic objective coefficients matrix for the columns in a given range. To achieve maximum efficiency, `getMQObj` returns the lower triangular part of this matrix only.
      Parameters:
        `start` - Integer array of length `last-first+2` which will be filled with indices indicating the starting offsets in the `colind` and `objqcoef` arrays for each requested column. Column `i` starts at position `start[i]` in the `colind` and `objqcoef` arrays, and has `start[i+1]-start[i]` elements in it. May be `null` if `maxcoefs` is `0`.
        `colind` - Integer array of length `maxcoefs` which will be filled with the column indices of the nonzero elements in the lower triangular part of `Q`. May be `null` if `maxcoefs` is `0`.
        `objqcoef` - Double array of length `maxcoefs` which will be filled with the nonzero element values. May be `null` if `maxcoefs` is `0`.
        `maxcoefs` - The maximum number of elements to be returned (size of the arrays).
        `p_ncoefs` - Pointer to an integer where the number of nonzero quadratic objective coefficients will be returned. If the number of nonzero coefficients is greater than `maxcoefs`, then only `maxcoefs` elements will be returned. If `p_ncoefs` is smaller than `maxcoefs`, then only `p_ncoefs` will be returned. May be `null`.
        `first` - First column in the range.
        `last` - Last column in the range.
      Throws:
        `XPRSprobException`

    - #### getMQObj

          public int getMQObj​(int[] start,
                              int[] colind,
                              double[] objqcoef,
                              int maxcoefs,
                              int first,
                              int last)
                       throws XPRSprobException

      Convenience wrapper for `getMQObj(int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)`.
      Returns:
        The value that would be returned by `getMQObj(int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getMQObj(int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)`

    - #### getMQObj

          public void getMQObj​(long[] start,
                               int[] colind,
                               double[] objqcoef,
                               long maxcoefs,
                               LongHolder p_ncoefs,
                               int first,
                               int last)
                        throws XPRSprobException

      Returns the nonzeros in the quadratic objective coefficients matrix for the columns in a given range. To achieve maximum efficiency, `getMQObj` returns the lower triangular part of this matrix only.
      Parameters:
        `start` - Integer array of length `last-first+2` which will be filled with indices indicating the starting offsets in the `colind` and `objqcoef` arrays for each requested column. Column `i` starts at position `start[i]` in the `colind` and `objqcoef` arrays, and has `start[i+1]-start[i]` elements in it. May be `null` if `maxcoefs` is `0`.
        `colind` - Integer array of length `maxcoefs` which will be filled with the column indices of the nonzero elements in the lower triangular part of `Q`. May be `null` if `maxcoefs` is `0`.
        `objqcoef` - Double array of length `maxcoefs` which will be filled with the nonzero element values. May be `null` if `maxcoefs` is `0`.
        `maxcoefs` - The maximum number of elements to be returned (size of the arrays).
        `p_ncoefs` - Pointer to an integer where the number of nonzero quadratic objective coefficients will be returned. If the number of nonzero coefficients is greater than `maxcoefs`, then only `maxcoefs` elements will be returned. If `p_ncoefs` is smaller than `maxcoefs`, then only `p_ncoefs` will be returned. May be `null`.
        `first` - First column in the range.
        `last` - Last column in the range.
      Throws:
        `XPRSprobException`

    - #### getMQObj

          public long getMQObj​(long[] start,
                               int[] colind,
                               double[] objqcoef,
                               long maxcoefs,
                               int first,
                               int last)
                        throws XPRSprobException

      Convenience wrapper for `getMQObj(long[], int[], double[], long, com.dashoptimization.LongHolder, int, int)`.
      Returns:
        The value that would be returned by `getMQObj(long[], int[], double[], long, com.dashoptimization.LongHolder, int, int)` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getMQObj(long[], int[], double[], long, com.dashoptimization.LongHolder, int, int)`

    - #### writeBasis

          public void writeBasis​(java.lang.String filename,
                                 java.lang.String flags)
                          throws XPRSprobException

      Writes the current basis to a file for later input into the Optimizer.

      Examples using `writeBasis`:

      - AddMipSol.java
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters containing the file name from which the basis is to be written. If omitted, the default problem_name is used with a `.bss` extension.
        `flags` - Flags to pass to `writeBasis` ( `WRITEBASIS`):
        - `i`: output the internal presolved basis;
        - `t`: output a compact advanced form of the basis;
        - `n`: output basis file containing current solution values;
        - `h`: output values in single precision;
        - `p`: output values in full precision (obsolete as this is now default behavior);
        - `v`: use the provided filename verbatim, without appending the `.bss` extension;
        - `z`: compress the output file.
      Throws:
        `XPRSprobException`

    - #### writeBasis

          public void writeBasis​(java.lang.String filename)
                          throws XPRSprobException

      Convenience wrapper for `writeBasis(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writeBasis(String, String)`

    - #### writeBasis

          public void writeBasis()
                          throws XPRSprobException

      Convenience wrapper for `writeBasis(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writeBasis(String, String)`

    - #### writeSol

          public void writeSol​(java.lang.String filename,
                               java.lang.String flags)
                        throws XPRSprobException

      Writes the current solution to a CSV format ASCII file, problem_name `.asc` (and `.hdr`).

      Examples using `writeSol`:

      - Trimloss.java
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters containing the file name to which the solution is to be written. If omitted, the default problem_name will be used. The extensions `.hdr` and `.asc` will be appended.
        `flags` - Flags to control which optional fields are output:
        - `s`: sequence number;
        - `n`: name;
        - `t`: type;
        - `b`: basis status;
        - `a`: activity;
        - `c`: cost (columns), slack (rows);
        - `l`: lower bound;
        - `u`: upper bound;
        - `d`: dj (column; reduced costs), dual value (rows; shadow prices);
        - `r`: right hand side (rows).
        If no flags are specified, all fields are output.
        Additional flags:
        - `p`: outputs in full precision;
        - `q`: only outputs vectors with nonzero optimum value;
        - `x`: output the current LP solution instead of the MIP solution;
        - `z`: compress the output file.
      Throws:
        `XPRSprobException`

    - #### writeSol

          public void writeSol​(java.lang.String filename)
                        throws XPRSprobException

      Convenience wrapper for `writeSol(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writeSol(String, String)`

    - #### writeSol

          public void writeSol()
                        throws XPRSprobException

      Convenience wrapper for `writeSol(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writeSol(String, String)`

    - #### writeBinSol

          public void writeBinSol​(java.lang.String filename,
                                  java.lang.String flags)
                           throws XPRSprobException

      Writes the current MIP or LP solution to a binary solution file for later input into the Optimizer.
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters containing the file name to which the solution is to be written. If omitted, the default problem_name is used with a `.sol` extension.
        `flags` - Flags to pass to `writeBinSol` ( `WRITEBINSOL`):
        - `m`: output the MIP solution;
        - `x`: output the LP solution;
        - `v`: use the provided filename verbatim, without appending the `.sol` extension;
        - `z`: compress the output file.
      Throws:
        `XPRSprobException`

    - #### writeBinSol

          public void writeBinSol​(java.lang.String filename)
                           throws XPRSprobException

      Convenience wrapper for `writeBinSol(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writeBinSol(String, String)`

    - #### writeBinSol

          public void writeBinSol()
                           throws XPRSprobException

      Convenience wrapper for `writeBinSol(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writeBinSol(String, String)`

    - #### getSol

          @Deprecated
          public void getSol​(double[] x,
                             double[] slack,
                             double[] duals,
                             double[] djs)
                      throws XPRSprobException

      Deprecated.
      since 41.00.
      Throws:
        `XPRSprobException`

    - #### getSol

          @Deprecated
          public void getSol​(double[] x)
                      throws XPRSprobException

      Deprecated.
      since 41.00.
      Convenience wrapper for `getSol(double[], double[], double[], double[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `getSol(double[], double[], double[], double[])`

    - #### writePrtSol

          public void writePrtSol​(java.lang.String filename,
                                  java.lang.String flags)
                           throws XPRSprobException

      Writes the current solution to a fixed format ASCII file, problem_name `.prt`.
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters containing the file name to which the solution is to be written. If omitted, the default problem_name will be used. The extension `.prt` will be appended.
        `flags` - Flags for `writePrtSol` ( `WRITEPRTSOL`) are:
        - `x`: write the LP solution instead of the current MIP solution;
        - `v`: use the provided filename verbatim, without appending the `.prt` extension;
        - `z`: write a compressed output file;
        - `s`: include classical sensitivity analysis.
      Throws:
        `XPRSprobException`

    - #### writePrtSol

          public void writePrtSol​(java.lang.String filename)
                           throws XPRSprobException

      Convenience wrapper for `writePrtSol(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writePrtSol(String, String)`

    - #### writePrtSol

          public void writePrtSol()
                           throws XPRSprobException

      Convenience wrapper for `writePrtSol(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writePrtSol(String, String)`

    - #### writeSlxSol

          public void writeSlxSol​(java.lang.String filename,
                                  java.lang.String flags)
                           throws XPRSprobException

      Creates an ASCII solution file ( `.slx`) using a similar format to MPS files. These files can be read back into the Optimizer using the `readSlxSol` function.
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters containing the file name to which the solution is to be written. If omitted, the default problem_name is used with a `.slx` extension.
        `flags` - Flags to pass to `writeSlxSol` ( `WRITESLXSOL`):
        - `l`: write the LP solution in case of a MIP problem;
        - `m`: write the MIP solution;
        - `p`: use full precision for numerical values (obsolete as this is now default behavior);
        - `s`: including slack variables;
        - `d`: LP solution only: including dual variables;
        - `r`: LP solution only: including reduced cost;
        - `v`: use the provided filename verbatim, without appending the `.slx` extension;
        - `z`: compress the output file.
      Throws:
        `XPRSprobException`

    - #### writeSlxSol

          public void writeSlxSol​(java.lang.String filename)
                           throws XPRSprobException

      Convenience wrapper for `writeSlxSol(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writeSlxSol(String, String)`

    - #### writeSlxSol

          public void writeSlxSol()
                           throws XPRSprobException

      Convenience wrapper for `writeSlxSol(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writeSlxSol(String, String)`

    - #### getPrimalRay

          public void getPrimalRay​(double[] ray,
                                   IntHolder p_hasray)
                            throws XPRSprobException

      Retrieves a primal ray (primal unbounded direction) for the current problem, if the problem is found to be unbounded.
      Parameters:
        `ray` - Double array of length `COLS` to hold the ray. May be `null` if not required.
        `p_hasray` - This variable will be set to 1 if the Optimizer is able to return a primal ray, 0 otherwise.
      Throws:
        `XPRSprobException`

    - #### getDualRay

          public void getDualRay​(double[] ray,
                                 IntHolder p_hasray)
                          throws XPRSprobException

      Retrieves a dual ray (dual unbounded direction) for the current problem, if the problem is found to be infeasible.
      Parameters:
        `ray` - Double array of length `ROWS` to hold the ray. May be `null` if not required.
        `p_hasray` - This variable will be set to 1 if the Optimizer is able to return a dual ray, 0 otherwise.
      Throws:
        `XPRSprobException`

    - #### strongBranchCB

          public void strongBranchCB​(int nbounds,
                                     int[] colind,
                                     byte[] bndtype,
                                     double[] bndval,
                                     int iterlim,
                                     double[] objval,
                                     int[] status,
                                     XPRSstrongBranchSolveListener callback,
                                     java.lang.Object data)
                              throws XPRSprobException

      Performs strong branching iterations on all specified bound changes. For each candidate bound change, `strongBranchCB` performs dual simplex iterations starting from the current optimal solution of the base LP, and returns both the status and objective value reached after these iterations.
      Parameters:
        `nbounds` - Number of bound changes to try.
        `colind` - Integer array of size `nbounds` containing the indices of the columns on which the bounds will change.
        `bndtype` - Character array of length `nbounds` indicating the type of bound to change:
        - `U`: indicates change the upper bound;
        - `L`: indicates change the lower bound;
        - `B`: indicates change both bounds, i.e. fix the column.
        `bndval` - Double array of length `nbounds` giving the new bound values.
        `iterlim` - Maximum number of LP iterations to perform for each bound change.
        `objval` - Array of objective values of each LP after performing the strong branching iterations.
        `status` - Array of statuses of each LP after performing the strong branching iterations, as detailed for the `LPSTATUS` attribute.
        `callback` - Function to be called after each strong branch has been reoptimized. This function returns an integer. Use `0` to indicate that everything went fine. Use a return value different from `0` to signal an error. This will terminate the function.
        `data` - User context to be provided for `callback`.
      Throws:
        `XPRSprobException`

    - #### loadMipSol

          public void loadMipSol​(double[] x,
                                 IntHolder p_status)
                          throws XPRSprobException

      Loads a starting MIP solution for the problem into the Optimizer.
      Parameters:
        `x` - Double array of length `COLS` (for the original problem and not the presolve problem) containing the values of the variables.
        `p_status` - Pointer to an `int` where the status will be returned. The status is one of:
        - `-1`: Solution rejected because an error occurred;
        - `0`: Solution accepted.
      Throws:
        `XPRSprobException`

    - #### loadMipSol

          public int loadMipSol​(double[] x)

      Convenience wrapper for `loadMipSol(double[],com.dashoptimization.IntHolder)` that returns the output argument.
      Parameters:
        `x` - Double array of length `COLS` (for the original problem and not the presolve problem) containing the values of the variables.
      Returns:
        The value that the wrapped function would return in p_status.

    - #### getBasis

          public void getBasis​(int[] rowstat,
                               int[] colstat)
                        throws XPRSprobException

      Returns the current basis into the user's data arrays.

      Examples using `getBasis`:

      - CuttingStock.java
      - FolioHeuristic.java
      - GlobalObjectiveParametrics.java
      - GlobalRHSParametrics.java
      Parameters:
        `rowstat` - Integer array of length `ORIGINALROWS` to hold the basis status of the slack, surplus or artificial variable associated with each row. The status will be one of:
        - `XPRS_BASISSTATUS_NONBASIC_LOWER (0)`: slack, surplus or artificial is non-basic at lower bound;
        - `XPRS_BASISSTATUS_BASIC (1)`: slack, surplus or artificial is basic;
        - `XPRS_BASISSTATUS_NONBASIC_UPPER (2)`: slack or surplus is non-basic at upper bound.
        - `XPRS_BASISSTATUS_SUPERBASIC (3)`: slack or surplus is super-basic.
        May be `null` if not required.
        `colstat` - Integer array of length `ORIGINALCOLS` to hold the basis status of the columns in the constraint matrix. The status will be one of:
        - `XPRS_BASISSTATUS_NONBASIC_LOWER (0)`: variable is non-basic at lower bound, or superbasic at zero if the variable has no lower bound;
        - `XPRS_BASISSTATUS_BASIC (1)`: variable is basic;
        - `XPRS_BASISSTATUS_NONBASIC_UPPER (2)`: variable is non-basic at upper bound;
        - `XPRS_BASISSTATUS_SUPERBASIC (3)`: variable is super-basic.
        May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getBasisVal

          public void getBasisVal​(int row,
                                  int col,
                                  IntHolder p_rowstat,
                                  IntHolder p_colstat)
                           throws XPRSprobException

      Returns the current basis status for a specific column or row.
      Parameters:
        `row` - Row index to get the row basis status for.
        `col` - Column index to get the column basis status for.
        `p_rowstat` - Integer pointer where the value of the row basis status will be returned. May be `null` if not required.
        `p_colstat` - Integer pointer where the value of the column basis status will be returned. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### addManagedCuts

          public void addManagedCuts​(int globalvalid,
                                     int ncuts,
                                     byte[] rowtype,
                                     double[] rhs,
                                     int[] start,
                                     int[] colind,
                                     double[] cutcoef)
                              throws XPRSprobException

      Adds cuts to the Optimizer's internal cut pool from within the cutround callback set by `addCbCutRound`. The cuts will be added to an internal pool of cuts managed by the Optimizer. The Optimizer will use internal priorities to dynamically load violated cuts from this pool into branch-and-bound node problems and remove inactive cuts. Cuts can be either local or global. Cuts flagged as local are assumed to be valid only for the the current node of the branch-and-bound search or any of its descendants. Global cuts are assumed to be valid for the whole problem and might be used on any node of the branch-and-bound search tree. The cuts should be formulated in the original space of variables and will automatically be presolved.
      Parameters:
        `globalvalid` - Nonzero if the cuts should be assumed to be valid for the whole problem. If zero, cuts will be assumed to be valid only for the current node and its descendants.
        `ncuts` - Number of cuts to add.
        `rowtype` - Character array of length `ncuts` containing the row types:
        - `L`: indicates a <= row;
        - `G`: indicates a >= row;
        - `E`: indicates an = row.
        `rhs` - Double array of length `ncuts` containing the right hand side elements for the cuts.
        `start` - Integer array containing offset into the `colind` and `cutcoef` arrays indicating the start of each cut. This array has one entry for each cut, plus one more entry indicating where an additional cut would start, if it were present.
        `colind` - Integer array of length `start[ncuts]` containing the column indices in the cuts.
        `cutcoef` - Double array of length `start[ncuts]` containing the matrix values for the cuts.
      Throws:
        `XPRSprobException`

    - #### addManagedCuts

          public void addManagedCuts​(int globalvalid,
                                     int ncuts,
                                     byte[] rowtype,
                                     double[] rhs,
                                     long[] start,
                                     int[] colind,
                                     double[] cutcoef)
                              throws XPRSprobException

      Adds cuts to the Optimizer's internal cut pool from within the cutround callback set by `addCbCutRound`. The cuts will be added to an internal pool of cuts managed by the Optimizer. The Optimizer will use internal priorities to dynamically load violated cuts from this pool into branch-and-bound node problems and remove inactive cuts. Cuts can be either local or global. Cuts flagged as local are assumed to be valid only for the the current node of the branch-and-bound search or any of its descendants. Global cuts are assumed to be valid for the whole problem and might be used on any node of the branch-and-bound search tree. The cuts should be formulated in the original space of variables and will automatically be presolved.
      Parameters:
        `globalvalid` - Nonzero if the cuts should be assumed to be valid for the whole problem. If zero, cuts will be assumed to be valid only for the current node and its descendants.
        `ncuts` - Number of cuts to add.
        `rowtype` - Character array of length `ncuts` containing the row types:
        - `L`: indicates a <= row;
        - `G`: indicates a >= row;
        - `E`: indicates an = row.
        `rhs` - Double array of length `ncuts` containing the right hand side elements for the cuts.
        `start` - Integer array containing offset into the `colind` and `cutcoef` arrays indicating the start of each cut. This array has one entry for each cut, plus one more entry indicating where an additional cut would start, if it were present.
        `colind` - Integer array of length `start[ncuts]` containing the column indices in the cuts.
        `cutcoef` - Double array of length `start[ncuts]` containing the matrix values for the cuts.
      Throws:
        `XPRSprobException`

    - #### addCuts

          public void addCuts​(int ncuts,
                              int[] cuttype,
                              byte[] rowtype,
                              double[] rhs,
                              int[] start,
                              int[] colind,
                              double[] cutcoef)
                       throws XPRSprobException

      Adds cuts directly to the matrix at the current node. The cuts will automatically be added to the cut pool. Cuts added to a node will automatically be inherited on any descendant node, unless explicitly deleted with a call to `delCuts`.
      Parameters:
        `ncuts` - Number of cuts to add.
        `cuttype` - Integer array of length `ncuts` containing the user assigned cut types. The cut types can be any integer chosen by the user, and are used to identify the cuts in other cut manager routines using user supplied parameters. The cut type can be interpreted as an integer or a bitmap - see `delCuts`.
        `rowtype` - Character array of length `ncuts` containing the row types:
        - `L`: indicates a <= row;
        - `G`: indicates a >= row;
        - `E`: indicates an = row.
        `rhs` - Double array of length `ncuts` containing the right hand side elements for the cuts.
        `start` - Integer array containing offset into the `colind` and `cutcoef` arrays indicating the start of each cut. This array has one entry for each cut, plus one more entry indicating where an additional cut would start, if it were present.
        `colind` - Integer array of length `start[ncuts]` containing the column indices in the cuts.
        `cutcoef` - Double array of length `start[ncuts]` containing the matrix values for the cuts.
      Throws:
        `XPRSprobException`

    - #### addCuts

          public void addCuts​(int ncuts,
                              int[] cuttype,
                              byte[] rowtype,
                              double[] rhs,
                              long[] start,
                              int[] colind,
                              double[] cutcoef)
                       throws XPRSprobException

      Adds cuts directly to the matrix at the current node. The cuts will automatically be added to the cut pool. Cuts added to a node will automatically be inherited on any descendant node, unless explicitly deleted with a call to `delCuts`.
      Parameters:
        `ncuts` - Number of cuts to add.
        `cuttype` - Integer array of length `ncuts` containing the user assigned cut types. The cut types can be any integer chosen by the user, and are used to identify the cuts in other cut manager routines using user supplied parameters. The cut type can be interpreted as an integer or a bitmap - see `delCuts`.
        `rowtype` - Character array of length `ncuts` containing the row types:
        - `L`: indicates a <= row;
        - `G`: indicates a >= row;
        - `E`: indicates an = row.
        `rhs` - Double array of length `ncuts` containing the right hand side elements for the cuts.
        `start` - Integer array containing offset into the `colind` and `cutcoef` arrays indicating the start of each cut. This array has one entry for each cut, plus one more entry indicating where an additional cut would start, if it were present.
        `colind` - Integer array of length `start[ncuts]` containing the column indices in the cuts.
        `cutcoef` - Double array of length `start[ncuts]` containing the matrix values for the cuts.
      Throws:
        `XPRSprobException`

    - #### delCuts

          public void delCuts​(int basis,
                              int cuttype,
                              int interp,
                              double delta,
                              int ncuts,
                              XPRScut[] cutind)
                       throws XPRSprobException

      Deletes cuts from the matrix at the current node. Cuts from the parent node which have been automatically restored may be deleted as well as cuts added to the current node using `addCuts` or `loadCuts`. The cuts to be deleted can be specified in a number of ways. If a cut is ruled out by any one of the criteria it will not be deleted.
      Parameters:
        `basis` - Ensures the basis will be valid if set to `1`. If set to `0`, cuts with non-basic slacks may be deleted.
        `cuttype` - User defined type of the cut to be deleted.
        `interp` - Way in which the cut `cuttype` is interpreted:
        - `-1`: match all cut types;
        - `1`: treat cut types as numbers;
        - `2`: treat cut types as bit-vectors (compare Section ) - delete if any bit matches any bit set in `cuttype`;
        - `3`: treat cut types as bit-vectors (compare Section ) - delete if all bits match those set in `cuttype`.
        `delta` - Only delete cuts with an absolute slack value greater than `delta`. To delete all the cuts, this argument should be set to `XPRS_MINUSINFINITY`.
        `ncuts` - Number of cuts to drop if a list of cuts is provided. A value of `-1` indicates all cuts.
        `cutind` - Array of length `ncuts` containing pointers to the cuts which are to be deleted. This array may be `null` to delete all cuts, when `ncuts` should be `-1`.
      Throws:
        `XPRSprobException`

    - #### delCuts

          public void delCuts​(int basis)
                       throws XPRSprobException

      Convenience wrapper for `delCuts(int, int, int, double, int, XPRScut[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `delCuts(int, int, int, double, int, XPRScut[])`

    - #### delCuts

          public void delCuts​(int basis,
                              int cuttype,
                              int interp)
                       throws XPRSprobException

      Convenience wrapper for `delCuts(int, int, int, double, int, XPRScut[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `delCuts(int, int, int, double, int, XPRScut[])`

    - #### delCuts

          public void delCuts​(int basis,
                              int cuttype,
                              int interp,
                              double delta)
                       throws XPRSprobException

      Convenience wrapper for `delCuts(int, int, int, double, int, XPRScut[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `delCuts(int, int, int, double, int, XPRScut[])`

    - #### delCuts

          public void delCuts​(int basis,
                              int ncuts,
                              XPRScut[] cutind)
                       throws XPRSprobException

      Convenience wrapper for `delCuts(int, int, int, double, int, XPRScut[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `delCuts(int, int, int, double, int, XPRScut[])`

    - #### delCPCuts

          public void delCPCuts​(int cuttype,
                                int interp,
                                int ncuts,
                                XPRScut[] cutind)
                         throws XPRSprobException

      During the branch and bound search, cuts are stored in the cut pool to be applied at descendant nodes. These cuts may be removed from a given node using `delCuts`, but if this is to be applied in a large number of cases, it may be preferable to remove the cut completely from the cut pool. This is achieved using `delCPCuts`.
      Parameters:
        `cuttype` - User defined cut type to match against.
        `interp` - Way in which the cut `cuttype` is interpreted:
        - `-1`: match all cut types;
        - `1`: treat cut types as numbers;
        - `2`: treat cut types as bit-vectors (compare Section ) - delete if any bit matches any bit set in `cuttype`;
        - `3`: treat cut types as bit-vectors (compare Section ) - delete if all bits match those set in `cuttype`.
        `ncuts` - The number of cuts to delete. A value of `-1` indicates delete all cuts.
        `cutind` - Array of length `ncuts` containing pointers to the cuts which are to be deleted. This array may be `null` to delete all cuts, when `ncuts` should be `-1`.
      Throws:
        `XPRSprobException`

    - #### delCPCuts

          public void delCPCuts()
                         throws XPRSprobException

      Convenience wrapper for `delCPCuts(int, int, int, XPRScut[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `delCPCuts(int, int, int, XPRScut[])`

    - #### delCPCuts

          public void delCPCuts​(int cuttype,
                                int interp)
                         throws XPRSprobException

      Convenience wrapper for `delCPCuts(int, int, int, XPRScut[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `delCPCuts(int, int, int, XPRScut[])`

    - #### delCPCuts

          public void delCPCuts​(int ncuts,
                                XPRScut[] cutind)
                         throws XPRSprobException

      Convenience wrapper for `delCPCuts(int, int, int, XPRScut[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `delCPCuts(int, int, int, XPRScut[])`

    - #### getCutList

          public void getCutList​(int cuttype,
                                 int interp,
                                 IntHolder p_ncuts,
                                 int maxcuts,
                                 XPRScut[] cutind)
                          throws XPRSprobException

      Retrieves a list of cut pointers for the cuts active at the current node.
      Parameters:
        `cuttype` - User defined type of the cuts to be returned. A value of `-1` indicates return all active cuts.
        `interp` - Way in which the cut type is interpreted:
        - `-1`: get all cuts;
        - `1`: treat cut types as numbers;
        - `2`: treat cut types as bit-vectors (compare Section ) - get cut if any bit matches any bit set in `cuttype`;
        - `3`: treat cut types as bit-vectors (compare Section ) - get cut if all bits match those set in `cuttype`.
        `p_ncuts` - Pointer to the integer where the number of active cuts of type `cuttype` will be returned.
        `maxcuts` - Maximum number of cuts to be retrieved.
        `cutind` - Array of length `maxcuts` where the pointers to the cuts will be returned. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getCutList

          public int getCutList​(int cuttype,
                                int interp,
                                int maxcuts,
                                XPRScut[] cutind)
                         throws XPRSprobException

      Convenience wrapper for `getCutList(int, int, com.dashoptimization.IntHolder, int, XPRScut[])`.
      Returns:
        The value that would be returned by `getCutList(int, int, com.dashoptimization.IntHolder, int, XPRScut[])` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getCutList(int, int, com.dashoptimization.IntHolder, int, XPRScut[])`

    - #### getCutList

          public int getCutList​(int maxcuts,
                                XPRScut[] cutind)
                         throws XPRSprobException

      Convenience wrapper for `getCutList(int, int, com.dashoptimization.IntHolder, int, XPRScut[])`.
      Returns:
        The value that would be returned by `getCutList(int, int, com.dashoptimization.IntHolder, int, XPRScut[])` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getCutList(int, int, com.dashoptimization.IntHolder, int, XPRScut[])`

    - #### getCPCutList

          public void getCPCutList​(int cuttype,
                                   int interp,
                                   double delta,
                                   IntHolder p_ncuts,
                                   int maxcuts,
                                   XPRScut[] cutind,
                                   double[] viol)
                            throws XPRSprobException

      Returns a list of cut indices from the cut pool.
      Parameters:
        `cuttype` - The user defined type of the cuts to be returned.
        `interp` - Way in which the cut type is interpreted:
        - `-1`: get all cuts;
        - `1`: treat cut types as numbers;
        - `2`: treat cut types as bit-vectors (compare Section ) - get cut if any bit matches any bit set in `cuttype`;
        - `3`: treat cut types as bit-vectors (compare Section ) - get cut if all bits match those set in `cuttype`.
        `delta` - Only those cuts with a signed violation greater than delta will be returned.
        `p_ncuts` - Pointer to the integer where the number of cuts of type `cuttype` in the cut pool will be returned.
        `maxcuts` - Maximum number of cuts to be returned.
        `cutind` - Array of length `maxcuts` where the pointers to the cuts will be returned. May be `null` if not required.
        `viol` - Double array of length `maxcuts` where the values of the signed violations of the cuts will be returned. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getCPCutList

          public int getCPCutList​(int cuttype,
                                  int interp,
                                  double delta,
                                  int maxcuts,
                                  XPRScut[] cutind,
                                  double[] viol)
                           throws XPRSprobException

      Convenience wrapper for `getCPCutList(int, int, double, com.dashoptimization.IntHolder, int, XPRScut[], double[])`.
      Returns:
        The value that would be returned by `getCPCutList(int, int, double, com.dashoptimization.IntHolder, int, XPRScut[], double[])` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getCPCutList(int, int, double, com.dashoptimization.IntHolder, int, XPRScut[], double[])`

    - #### getCPCutList

          public int getCPCutList​(int maxcuts,
                                  XPRScut[] cutind,
                                  double[] viol)
                           throws XPRSprobException

      Convenience wrapper for `getCPCutList(int, int, double, com.dashoptimization.IntHolder, int, XPRScut[], double[])`.
      Returns:
        The value that would be returned by `getCPCutList(int, int, double, com.dashoptimization.IntHolder, int, XPRScut[], double[])` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getCPCutList(int, int, double, com.dashoptimization.IntHolder, int, XPRScut[], double[])`

    - #### getCPCuts

          public void getCPCuts​(XPRScut[] rowind,
                                int ncuts,
                                int maxcoefs,
                                int[] cuttype,
                                byte[] rowtype,
                                int[] start,
                                int[] colind,
                                double[] cutcoef,
                                double[] rhs)
                         throws XPRSprobException

      Returns cuts from the cut pool.
      Parameters:
        `rowind` - Array of length `ncuts` containing the pointers to the cuts.
        `ncuts` - Number of cuts to be returned.
        `maxcoefs` - Maximum number of column indices of the cuts to be returned.
        `cuttype` - Integer array of length `ncuts` where the cut types will be returned. May be `null` if not required.
        `rowtype` - Character array of length `ncuts` where the sense of the cuts ( `L`, `G`, or `E`) will be returned. May be `null` if not required.
        `start` - Integer array of length `ncuts+1` containing the offsets into the `colind` and `cutcoef` arrays. The last element indicates where an additional cut would start, if it were present. May be `null` if not required.
        `colind` - Integer array of length `maxcoefs` where the column indices of the cuts will be returned. May be `null` if not required.
        `cutcoef` - Double array of length `maxcoefs` where the matrix values will be returned. May be `null` if not required.
        `rhs` - Double array of length `ncuts` where the right hand side elements for the cuts will be returned. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getCPCuts

          public void getCPCuts​(XPRScut[] rowind,
                                int ncuts,
                                long maxcoefs,
                                int[] cuttype,
                                byte[] rowtype,
                                long[] start,
                                int[] colind,
                                double[] cutcoef,
                                double[] rhs)
                         throws XPRSprobException

      Returns cuts from the cut pool.
      Parameters:
        `rowind` - Array of length `ncuts` containing the pointers to the cuts.
        `ncuts` - Number of cuts to be returned.
        `maxcoefs` - Maximum number of column indices of the cuts to be returned.
        `cuttype` - Integer array of length `ncuts` where the cut types will be returned. May be `null` if not required.
        `rowtype` - Character array of length `ncuts` where the sense of the cuts ( `L`, `G`, or `E`) will be returned. May be `null` if not required.
        `start` - Integer array of length `ncuts+1` containing the offsets into the `colind` and `cutcoef` arrays. The last element indicates where an additional cut would start, if it were present. May be `null` if not required.
        `colind` - Integer array of length `maxcoefs` where the column indices of the cuts will be returned. May be `null` if not required.
        `cutcoef` - Double array of length `maxcoefs` where the matrix values will be returned. May be `null` if not required.
        `rhs` - Double array of length `ncuts` where the right hand side elements for the cuts will be returned. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### loadCuts

          public void loadCuts​(int cuttype,
                               int interp,
                               int ncuts,
                               XPRScut[] cutind)
                        throws XPRSprobException

      Loads cuts from the cut pool into the matrix. Without calling `loadCuts` the cuts will remain in the cut pool but will not be active at the node. Cuts loaded at a node remain active at all descendant nodes unless they are deleted using `delCuts`.
      Parameters:
        `cuttype` - Cut type.
        `interp` - The way in which the cut type is interpreted:
        - `-1`: load all cuts;
        - `1`: treat cut types as numbers;
        - `2`: treat cut types as bit-vectors (compare Section ) - load cut if any bit matches any bit set in `cuttype`;
        - `3`: treat cut types as bit-vectors (compare Section ) - `0` load cut if all bits match those set in `cuttype`.
        `ncuts` - Number of cuts to load.
        `cutind` - Array of length `ncuts` containing pointers to the cuts to be loaded into the matrix. These are pointers returned by either `storeCuts` or `getCPCutList`.
      Throws:
        `XPRSprobException`

    - #### loadCuts

          public void loadCuts​(int cuttype,
                               int interp)
                        throws XPRSprobException

      Convenience wrapper for `loadCuts(int, int, int, XPRScut[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `loadCuts(int, int, int, XPRScut[])`

    - #### loadCuts

          public void loadCuts​(int ncuts,
                               XPRScut[] cutind)
                        throws XPRSprobException

      Convenience wrapper for `loadCuts(int, int, int, XPRScut[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `loadCuts(int, int, int, XPRScut[])`

    - #### storeCuts

          public void storeCuts​(int ncuts,
                                int nodups,
                                int[] cuttype,
                                byte[] rowtype,
                                double[] rhs,
                                int[] start,
                                XPRScut[] cutind,
                                int[] colind,
                                double[] cutcoef)
                         throws XPRSprobException

      Stores cuts into the cut pool, but does not apply them to the current node. These cuts must be explicitly loaded into the matrix using `loadCuts` before they become active.
      Parameters:
        `ncuts` - Number of cuts to add.
        `nodups` -
        - `0`: do not exclude duplicates from the cut pool;
        - `1`: duplicates are to be excluded from the cut pool;
        - `2`: duplicates are to be excluded from the cut pool, ignoring cut type.
        `cuttype` - Integer array of length `ncuts` containing the cut types. The cut types can be any integer and are used to identify the cuts.
        `rowtype` - Character array of length `ncuts` containing the row types:
        - `L`: indicates a <= row;
        - `E`: indicates an = row;
        - `G`: indicates a >= row.
        `rhs` - Double array of length `ncuts` containing the right hand side elements for the cuts.
        `start` - Integer array containing offsets into the `colind` and `dmtval` arrays indicating the start of each cut. This array has an entry for each cut, plus one more entry indicating where an additional cut would start, if it were present.
        `cutind` - Array of length `ncuts` where the pointers to the cuts will be returned.
        `colind` - Integer array of length `start[ncuts]` containing the column indices in the cuts.
        `cutcoef` - Double array of length `start[ncuts]` containing the matrix values for the cuts.
      Throws:
        `XPRSprobException`

    - #### storeCuts

          public void storeCuts​(int ncuts,
                                int nodups,
                                int[] cuttype,
                                byte[] rowtype,
                                double[] rhs,
                                long[] start,
                                XPRScut[] cutind,
                                int[] colind,
                                double[] cutcoef)
                         throws XPRSprobException

      Stores cuts into the cut pool, but does not apply them to the current node. These cuts must be explicitly loaded into the matrix using `loadCuts` before they become active.
      Parameters:
        `ncuts` - Number of cuts to add.
        `nodups` -
        - `0`: do not exclude duplicates from the cut pool;
        - `1`: duplicates are to be excluded from the cut pool;
        - `2`: duplicates are to be excluded from the cut pool, ignoring cut type.
        `cuttype` - Integer array of length `ncuts` containing the cut types. The cut types can be any integer and are used to identify the cuts.
        `rowtype` - Character array of length `ncuts` containing the row types:
        - `L`: indicates a <= row;
        - `E`: indicates an = row;
        - `G`: indicates a >= row.
        `rhs` - Double array of length `ncuts` containing the right hand side elements for the cuts.
        `start` - Integer array containing offsets into the `colind` and `dmtval` arrays indicating the start of each cut. This array has an entry for each cut, plus one more entry indicating where an additional cut would start, if it were present.
        `cutind` - Array of length `ncuts` where the pointers to the cuts will be returned.
        `colind` - Integer array of length `start[ncuts]` containing the column indices in the cuts.
        `cutcoef` - Double array of length `start[ncuts]` containing the matrix values for the cuts.
      Throws:
        `XPRSprobException`

    - #### presolveRow

          public void presolveRow​(char rowtype,
                                  int norigcoefs,
                                  int[] origcolind,
                                  double[] origrowcoef,
                                  double origrhs,
                                  int maxcoefs,
                                  IntHolder p_ncoefs,
                                  int[] colind,
                                  double[] rowcoef,
                                  DoubleHolder p_rhs,
                                  IntHolder p_status)
                           throws XPRSprobException

      Presolves a row formulated in terms of the original variables such that it can be added to a presolved matrix.

      Examples using `presolveRow`:

      - TSP.java
      Parameters:
        `rowtype` - The type of the row:
        - `L`: indicates a <= row;
        - `G`: indicates a >= row.
        - `E`: indicates a >= row.
        `norigcoefs` - Number of elements in the `origcolind` and `origrowcoef` arrays.
        `origcolind` - Integer array of length `norigcoefs` containing the column indices of the row to presolve.
        `origrowcoef` - Double array of length `norigcoefs` containing the non-zero coefficients of the row to presolve.
        `origrhs` - The right-hand side constant of the row to presolve.
        `maxcoefs` - Maximum number of elements to return in the `colind` and `rowcoef` arrays. The function will not write more elements than this to `colind` or `rowcoef`, even if the presolved row is longer.
        `p_ncoefs` - Pointer to the integer where the number of non-zero elements in the presolved row will be returned (this may be bigger than `maxcoefs`).
        `colind` - Integer array of length `maxcoefs` which will be filled with the column indices of the presolved row. May be `null` if not required. Allocate this to `COLS` elements and pass `COLS` as `maxcoef`> to make sure it is large enough to hold the presolved row.
        `rowcoef` - Double array of length `maxcoefs` which will be filled with the coefficients of the presolved row. May be `null` if not required. Allocate this to `COLS` elements and pass `COLS` as `maxcoef`> to make sure it is large enough to hold the presolved row.
        `p_rhs` - Pointer to the double where the presolved right-hand side will be returned.
        `p_status` - Status of the presolved row:
        - `-5`: Failed to presolve the row due to presolve operations making the row nonlinear;
        - `-4`: Failed to presolve the equality row due to presolve operations requiring relaxation of the row;
        - `-3`: Failed to presolve the row due to presolve dual reductions;
        - `-2`: Failed to presolve the row due to presolve duplicate column reductions;
        - `-1`: Failed to presolve the row due to an error. Check the Optimizer error code for the cause;
        - `0`: The row was successfully presolved;
        - `1`: The row was presolved, but may be relaxed.
        May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### presolveSol

          public void presolveSol​(double[] origx,
                                  double[] prex)
                           throws XPRSprobException

      Presolves a primal solution formulated in the input space into the corresponding solution formulated in the presolved space. The problem itself is unchanged.
      Parameters:
        `origx` - Double array of length `INPUTCOLS` with the values of the primal variables in the input space. Cannot be `null`.
        `prex` - Double array of length `COLS` where the values of the primal variables will be returned. Cannot be `null`.
      Throws:
        `XPRSprobException`

    - #### postSolveSol

          public void postSolveSol​(double[] prex,
                                   double[] origx)
                            throws XPRSprobException

      Postsolves a primal solution formulated in the presolved space into the corresponding solution formulated in the input space. The problem itself is unchanged.
      Parameters:
        `prex` - Double array of length `COLS` with the values of the primal variables in the presolved space. Cannot be `null`.
        `origx` - Double array of length `INPUTCOLS` where the values of the primal variables will be returned. Cannot be `null`.
      Throws:
        `XPRSprobException`

    - #### getPivots

          public void getPivots​(int enter,
                                int[] outlist,
                                double[] x,
                                DoubleHolder p_objval,
                                IntHolder p_npivots,
                                int maxpivots)
                         throws XPRSprobException

      Returns a list of potential leaving variables if a specified variable enters the basis.
      Parameters:
        `enter` - Index of the specified row or column to enter basis.
        `outlist` - Integer array of length `maxpivots` to hold list of potential leaving variables. May be `null` if not required.
        `x` - Double array of length `ROWS` `+` `SPAREROWS` `+` `COLS` to hold the values of all the variables that would result if `enter` entered the basis. May be `null` if not required.
        `p_objval` - Pointer to a double where the objective function value that would result if `enter` entered the basis will be returned.
        `p_npivots` - Pointer to an integer where the actual number of potential leaving variables will be returned.
        `maxpivots` - Maximum number of potential leaving variables to return.
      Throws:
        `XPRSprobException`

    - #### writeProb

          public void writeProb​(java.lang.String filename,
                                java.lang.String flags)
                         throws XPRSprobException

      Writes the current problem to an MPS or LP file.

      Examples using `writeProb`:

      - BinBurglar.java
      - BoolVars.java
      - Boxes02.java
      - Capbgt2l.java
      - ContractAllocation.java
      - ELS.java
      - ELSCut.java
      - ELSManagedCuts.java
      - FacilityLocationArray.java
      - FacilityLocationCollection.java
      - GeneralConstraints.java
      - Glidert.java
      - LoadLP.java
      - MultipleKnapsack_Arrays.java
      - MultipleKnapsack_Collections.java
      - PiecewiseLinear.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonObjects.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      - ProductionPlanning_Index.java
      - QuadraticProgramming.java
      - RecursiveFinancialPlanning.java
      - Repair.java
      - Sangraalind.java
      - SpecialOrderedSets.java
      - SpecialOrderedSetsQuadratic.java
      - TSP.java
      - TravelingSalesPerson.java
      - Trimloss.java
      - Wagon.java
      Parameters:
        `filename` - A string of up to `MAXPROBNAMELENGTH` characters to contain the file name to which the problem is to be written. If omitted, the default problem_name is used with a `.mps` extension, unless the `l` flag is used in which case the extension is `.lp`.
        `flags` - Flags, which can be one or more of the following:
        - `o`: one element per line;
        - `n`: output the scaled problem;
        - `s`: scrambled vector names;
        - `l`: output in LP format;
        - `p`: output values in full precision (obsolete as this is now default behavior);
        - `t`: omit the Xpress header in LP or MPS format;
        - `v`: use the provided filename verbatim, without appending the `.mps` or `.lp` extension;
        - `z`: compress the output file.
      Throws:
        `XPRSprobException`

    - #### writeProb

          public void writeProb​(java.lang.String filename)
                         throws XPRSprobException

      Convenience wrapper for `writeProb(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writeProb(String, String)`

    - #### writeProb

          public void writeProb()
                         throws XPRSprobException

      Convenience wrapper for `writeProb(String, String)`.
      Throws:
        `XPRSprobException`
      See Also:
        `writeProb(String, String)`

    - #### calcSlacks

          public void calcSlacks​(double[] solution,
                                 double[] slacks)
                          throws XPRSprobException

      Calculates the row slack values for a given solution.
      Parameters:
        `solution` - Double array of length `ORIGINALCOLS` that holds the solution to calculate the slacks for.
        `slacks` - Double array of length `ORIGINALROWS` in which the calculated row slacks are returned.
      Throws:
        `XPRSprobException`

    - #### calcReducedCosts

          public void calcReducedCosts​(double[] duals,
                                       double[] solution,
                                       double[] djs)
                                throws XPRSprobException

      Calculates the reduced cost values for a given (row) dual solution.
      Parameters:
        `duals` - Double array of length `ORIGINALROWS` that holds the dual solution to calculate the reduced costs for.
        `solution` - Double array of length `ORIGINALCOLS` that holds the primal solution. This is necessary for quadratic problems, otherwise may be `null`.
        `djs` - Double array of length `ORIGINALCOLS` in which the calculated reduced costs are returned.
      Throws:
        `XPRSprobException`

    - #### calcObjective

          public void calcObjective​(double[] solution,
                                    DoubleHolder p_objval)
                             throws XPRSprobException

      Calculates the objective value of a given solution.
      Parameters:
        `solution` - Double array of length COLS that holds the solution.
        `p_objval` - Pointer to a double in which the calculated objective value is returned.
      Throws:
        `XPRSprobException`

    - #### calcObjective

          public double calcObjective​(double[] solution)

      Convenience wrapper for `calcObjective(double[],com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `solution` - Double array of length COLS that holds the solution.
      Returns:
        The value that the wrapped function would return in p_objval.

    - #### calcObjN

          public void calcObjN​(int objidx,
                               double[] solution,
                               DoubleHolder p_objval)
                        throws XPRSprobException

      Calculates the objective value of the given objective function in a multi-objective problem.
      Parameters:
        `objidx` - Index of the objective function to calculate.
        `solution` - Double array of length `COLS` that holds the solution. May be `null` to use the current solution.
        `p_objval` - Pointer to a double in which the calculated objective value is returned.
      Throws:
        `XPRSprobException`

    - #### calcObjN

          public double calcObjN​(int objidx,
                                 double[] solution)

      Convenience wrapper for `calcObjN(int,double[],com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `objidx` - Index of the objective function to calculate.
        `solution` - Double array of length `COLS` that holds the solution. May be `null` to use the current solution.
      Returns:
        The value that the wrapped function would return in p_objval.

    - #### calcSolInfo

          public void calcSolInfo​(double[] solution,
                                  double[] duals,
                                  int property,
                                  DoubleHolder p_value)
                           throws XPRSprobException

      Calculates the required property of a solution, like maximum infeasibility of a given primal and dual solution.
      Parameters:
        `solution` - Double array of length `ORIGINALCOLS` that holds the solution. May be `null` when asking for dual infeasibility.
        `duals` - Double array of length `ORIGINALROWS` that holds the dual solution. May be `null` when asking for primal/MIP infeasibility.
        `property` - Defined the property to be calculated.
        - `XPRS_SOLINFO_ABSPRIMALINFEAS`: the calculated maximum absolute primal infeasibility is returned.
        - `XPRS_SOLINFO_RELPRIMALINFEAS`: the calculated maximum relative primal infeasibility is returned.
        - `XPRS_SOLINFO_ABSDUALINFEAS`: the calculated maximum absolute dual infeasibility is returned.
        - `XPRS_SOLINFO_RELDUALINFEAS`: the calculated maximum relative dual infeasibility is returned.
        - `XPRS_SOLINFO_MAXMIPFRACTIONAL`: the calculated maximum absolute MIP fractionality or SOS infeasibility.
        - `XPRS_SOLINFO_ABSMIPINFEAS`: the calculated maximum absolute MIP infeasibility (including delayed rows, indicators, general and piecewise linear constraints) is returned.
        - `XPRS_SOLINFO_RELMIPINFEAS`: the calculated maximum relative MIP infeasibility (including delayed rows, indicators, general and piecewise linear constraints) is returned.
        `p_value` - Pointer to a double where the calculated value is returned.
      Throws:
        `XPRSprobException`

    - #### calcSolInfo

          public double calcSolInfo​(double[] solution,
                                    double[] duals,
                                    int property)

      Convenience wrapper for `calcSolInfo(double[],double[],int,com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `solution` - Double array of length `ORIGINALCOLS` that holds the solution. May be `null` when asking for dual infeasibility.
        `duals` - Double array of length `ORIGINALROWS` that holds the dual solution. May be `null` when asking for primal/MIP infeasibility.
        `property` - Defined the property to be calculated.
        - `XPRS_SOLINFO_ABSPRIMALINFEAS`: the calculated maximum absolute primal infeasibility is returned.
        - `XPRS_SOLINFO_RELPRIMALINFEAS`: the calculated maximum relative primal infeasibility is returned.
        - `XPRS_SOLINFO_ABSDUALINFEAS`: the calculated maximum absolute dual infeasibility is returned.
        - `XPRS_SOLINFO_RELDUALINFEAS`: the calculated maximum relative dual infeasibility is returned.
        - `XPRS_SOLINFO_MAXMIPFRACTIONAL`: the calculated maximum absolute MIP fractionality or SOS infeasibility.
        - `XPRS_SOLINFO_ABSMIPINFEAS`: the calculated maximum absolute MIP infeasibility (including delayed rows, indicators, general and piecewise linear constraints) is returned.
        - `XPRS_SOLINFO_RELMIPINFEAS`: the calculated maximum relative MIP infeasibility (including delayed rows, indicators, general and piecewise linear constraints) is returned.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### getRowType

          public void getRowType​(byte[] rowtype,
                                 int first,
                                 int last)
                          throws XPRSprobException

      Returns the row types for the rows in a given range.

      Examples using `getRowType`:

      - Repair.java
      Parameters:
        `rowtype` - Character array of length `last-first+1` characters where the row types will be returned:
        - `N`: indicates a free constraint;
        - `L`: indicates a <= constraint;
        - `E`: indicates an = constraint;
        - `G`: indicates a >= constraint;
        - `R`: indicates a range constraint.
        `first` - First row in the range.
        `last` - Last row in the range.
      Throws:
        `XPRSprobException`

    - #### getRowType

          public byte getRowType​(int x)
                          throws XPRSprobException

      Convenience wrapper for `getRowType(byte[], int, int)`. This overload retrieves and returns the information for only a single element instead of an array.

      Examples using `getRowType`:

      - Repair.java
      Parameters:
        `x` - The index of the element to query.
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getRowType(byte[],int,int)`

    - #### getRowType

          public byte[] getRowType​(int first,
                                   int last)
                            throws XPRSprobException

      Convenience wrapper for `getRowType(byte[], int, int)`. This overload retrieves and returns the same information but allocates the required array for you.

      Examples using `getRowType`:

      - Repair.java
      Parameters:
        `first` - First index (inclusive).
        `last` - Last index (inclusive).
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getRowType(byte[],int,int)`

    - #### getPresolveBasis

          public void getPresolveBasis​(int[] rowstat,
                                       int[] colstat)
                                throws XPRSprobException

      Returns the current basis from memory into the user's data areas. If the problem is presolved, the presolved basis will be returned. Otherwise the original basis will be returned.
      Parameters:
        `rowstat` - Integer array of length `ROWS` to hold the basis status of the stack, surplus or artificial variable associated with each row. The status will be one of:
        - `XPRS_BASISSTATUS_NONBASIC_LOWER (0)`: slack, surplus or artificial is non-basic at lower bound;
        - `XPRS_BASISSTATUS_BASIC (1)`: slack, surplus or artificial is basic;
        - `XPRS_BASISSTATUS_NONBASIC_UPPER (2)`: slack or surplus is non-basic at upper bound.
        May be `null` if not required.
        `colstat` - Integer array of length `COLS` to hold the basis status of the columns in the constraint matrix. The status will be one of:
        - `XPRS_BASISSTATUS_NONBASIC_LOWER (0)`: variable is non-basic at lower bound, or superbasic at zero if the variable has no lower bound;
        - `XPRS_BASISSTATUS_BASIC (1)`: variable is basic;
        - `XPRS_BASISSTATUS_NONBASIC_UPPER (2)`: variable is at upper bound;
        - `XPRS_BASISSTATUS_SUPERBASIC (3)`: variable is super-basic.
        May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getColType

          public void getColType​(byte[] coltype,
                                 int first,
                                 int last)
                          throws XPRSprobException

      Returns the column types for the columns in a given range.

      Examples using `getColType`:

      - MostViolated.java
      Parameters:
        `coltype` - Character array of length `last-first+1` where the column types will be returned:
        - `C`: indicates a continuous variable;
        - `I`: indicates an integer variable;
        - `B`: indicates a binary variable;
        - `S`: indicates a semi-continuous variable;
        - `R`: indicates a semi-continuous integer variable;
        - `P`: indicates a partial integer variable.
        `first` - First column in the range.
        `last` - Last column in the range.
      Throws:
        `XPRSprobException`

    - #### getColType

          public byte getColType​(int x)
                          throws XPRSprobException

      Convenience wrapper for `getColType(byte[], int, int)`. This overload retrieves and returns the information for only a single element instead of an array.

      Examples using `getColType`:

      - MostViolated.java
      Parameters:
        `x` - The index of the element to query.
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getColType(byte[],int,int)`

    - #### getColType

          public byte[] getColType​(int first,
                                   int last)
                            throws XPRSprobException

      Convenience wrapper for `getColType(byte[], int, int)`. This overload retrieves and returns the same information but allocates the required array for you.

      Examples using `getColType`:

      - MostViolated.java
      Parameters:
        `first` - First index (inclusive).
        `last` - Last index (inclusive).
      Returns:
        The requested information.
      Throws:
        `XPRSprobException`
      See Also:
        `getColType(byte[],int,int)`

    - #### getQRowCoeff

          public void getQRowCoeff​(int row,
                                   int rowqcol1,
                                   int rowqcol2,
                                   DoubleHolder p_rowqcoef)
                            throws XPRSprobException

      Returns a single quadratic constraint coefficient corresponding to the variable pair ( `rowqcol1`, `rowqcol2`) of the Hessian of a given constraint.
      Parameters:
        `row` - The quadratic row where the coefficient is to be looked up.
        `rowqcol1` - Column index for the first variable in the quadratic term.
        `rowqcol2` - Column index for the second variable in the quadratic term.
        `p_rowqcoef` - Pointer to a double value where the objective function coefficient is to be placed.
      Throws:
        `XPRSprobException`

    - #### getQRowCoeff

          public double getQRowCoeff​(int row,
                                     int rowqcol1,
                                     int rowqcol2)

      Convenience wrapper for `getQRowCoeff(int,int,int,com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `row` - The quadratic row where the coefficient is to be looked up.
        `rowqcol1` - Column index for the first variable in the quadratic term.
        `rowqcol2` - Column index for the second variable in the quadratic term.
      Returns:
        The value that the wrapped function would return in p_rowqcoef.

    - #### getQRowQMatrix

          public void getQRowQMatrix​(int row,
                                     int[] start,
                                     int[] colind,
                                     double[] rowqcoef,
                                     int maxcoefs,
                                     IntHolder p_ncoefs,
                                     int first,
                                     int last)
                              throws XPRSprobException

      Returns the nonzeros in a quadratic constraint coefficients matrix for the columns in a given range. To achieve maximum efficiency, `getQRowQMatrix` returns the lower triangular part of this matrix only.
      Parameters:
        `row` - Index of the row for which the quadratic coefficients are to be returned.
        `start` - Integer array which will be filled with indices indicating the starting offsets in the `colind` and `rowqcoef` arrays for each requested column. It must be length of at least `last-first+2`. Column `i` starts at position `start[i]` in the `colind` and `rowqcoef` arrays, and has `start[i+1]-start[i]` elements in it. May be `null` if maxcoefs is 0.
        `colind` - Integer array of length maxcoefs which will be filled with the column indices of the nonzero elements in the lower triangular part of Q. May be `null` if maxcoefs is 0.
        `rowqcoef` - Double array of length maxcoefs which will be filled with the nonzero element values. May be `null` if maxcoefs is 0.
        `maxcoefs` - Number of elements to be saved in colind and rowqcoef. If `maxcoefs < *p_ncoefs`, only `maxcoefs` elements are written.
        `p_ncoefs` - Pointer to the integer where the number of nonzero elements in the queried columns will be returned. If the number of nonzero elements is greater than maxcoefs, then only maxcoefs elements will be returned. If `p_ncoefs` is smaller than maxcoefs, then only `p_ncoefs` will be returned. May be `null`.
        `first` - First column in the range.
        `last` - Last column in the range.
      Throws:
        `XPRSprobException`

    - #### getQRowQMatrix

          public int getQRowQMatrix​(int row,
                                    int[] start,
                                    int[] colind,
                                    double[] rowqcoef,
                                    int maxcoefs,
                                    int first,
                                    int last)
                             throws XPRSprobException

      Convenience wrapper for `getQRowQMatrix(int, int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)`.
      Returns:
        The value that would be returned by `getQRowQMatrix(int, int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getQRowQMatrix(int, int[], int[], double[], int, com.dashoptimization.IntHolder, int, int)`

    - #### getQRowQMatrixTriplets

          public void getQRowQMatrixTriplets​(int row,
                                             IntHolder p_ncoefs,
                                             int[] rowqcol1,
                                             int[] rowqcol2,
                                             double[] rowqcoef)
                                      throws XPRSprobException

      Returns the nonzeros in a quadratic constraint coefficients matrix as triplets (index pairs with coefficients). To achieve maximum efficiency, `getQRowQMatrixTriplets` returns the lower triangular part of this matrix only.
      Parameters:
        `row` - Index of the row for which the quadratic coefficients are to be returned.
        `p_ncoefs` - Argument used to return the number of quadratic coefficients in the row. May be `null` if not required.
        `rowqcol1` - First index in the triplets. May be `null` if not required.
        `rowqcol2` - Second index in the triplets. May be `null` if not required.
        `rowqcoef` - Coefficients in the triplets. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getQRowQMatrixTriplets

          public int getQRowQMatrixTriplets​(int row,
                                            int[] rowqcol1,
                                            int[] rowqcol2,
                                            double[] rowqcoef)
                                     throws XPRSprobException

      Convenience wrapper for `getQRowQMatrixTriplets(int, com.dashoptimization.IntHolder, int[], int[], double[])`.
      Returns:
        The value that would be returned by `getQRowQMatrixTriplets(int, com.dashoptimization.IntHolder, int[], int[], double[])` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getQRowQMatrixTriplets(int, com.dashoptimization.IntHolder, int[], int[], double[])`

    - #### chgQRowCoeff

          public void chgQRowCoeff​(int row,
                                   int rowqcol1,
                                   int rowqcol2,
                                   double rowqcoef)
                            throws XPRSprobException

      Changes a single quadratic coefficient in a row.
      Parameters:
        `row` - Index of the row where the quadratic matrix is to be changed.
        `rowqcol1` - First index of the coefficient to be changed.
        `rowqcol2` - Second index of the coefficient to be changed.
        `rowqcoef` - The new coefficient.
      Throws:
        `XPRSprobException`

    - #### getQRows

          public void getQRows​(IntHolder p_nrows,
                               int[] rowind)
                        throws XPRSprobException

      Returns the list indices of the rows that have quadratic coefficients.
      Parameters:
        `p_nrows` - Used to return the number of quadratic constraints in the matrix. It can be retrieved from the problem attribute `QCONSTRAINTS`. May be `null` if not required.
        `rowind` - Array of length `QCONSTRAINTS` used to return the indices of rows with quadratic coefficients in them. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getQRows

          public int getQRows​(int[] rowind)
                       throws XPRSprobException

      Convenience wrapper for `getQRows(com.dashoptimization.IntHolder, int[])`.
      Returns:
        The value that would be returned by `getQRows(com.dashoptimization.IntHolder, int[])` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getQRows(com.dashoptimization.IntHolder, int[])`

    - #### getQRows

          public int getQRows()
                       throws XPRSprobException

      Convenience wrapper for `getQRows(com.dashoptimization.IntHolder, int[])`.
      Returns:
        The value that would be returned by `getQRows(com.dashoptimization.IntHolder, int[])` as output parameter.
      Throws:
        `XPRSprobException`
      See Also:
        `getQRows(com.dashoptimization.IntHolder, int[])`

    - #### chgBounds

          public void chgBounds​(int nbounds,
                                int[] colind,
                                byte[] bndtype,
                                double[] bndval)
                         throws XPRSprobException

      Used to change the bounds on columns in the matrix.

      Examples using `chgBounds`:

      - AddMipSol.java
      - FixBV.java
      - RoundInt.java
      Parameters:
        `nbounds` - Number of bounds to change.
        `colind` - Integer array of size `nbounds` containing the indices of the columns on which the bounds will change.
        `bndtype` - Character array of length `nbounds` indicating the type of bound to change:
        - `U`: indicates change the upper bound;
        - `L`: indicates change the lower bound;
        - `B`: indicates change both bounds, i.e. fix the column.
        `bndval` - Double array of length `nbounds` giving the new bound values.
      Throws:
        `XPRSprobException`

    - #### addMipSol

          public void addMipSol​(int length,
                                double[] solval,
                                int[] colind,
                                java.lang.String name)
                         throws XPRSprobException

      Adds a new feasible, infeasible or partial MIP solution for the problem to the Optimizer.

      Examples using `addMipSol`:

      - AddMipSol.java
      - TSP.java
      - TravelingSalesPerson.java
      - Wagon.java
      Parameters:
        `length` - Number of columns for which a value is provided.
        `solval` - Double array of length `length` containing solution values.
        `colind` - Optional integer array of length `length` containing the column indices for the solution values provided in `solval`. May be `null` when `solval` provides a complete solution vector.
        `name` - An optional name to associate with the solution. Can be `null`.
      Throws:
        `XPRSprobException`

    - #### getCutSlack

          public void getCutSlack​(XPRScut cutind,
                                  DoubleHolder p_slack)
                           throws XPRSprobException

      Used to calculate the slack value of a cut with respect to the current LP relaxation solution. The slack is calculated from the cut itself, and might be requested for any cut (even if it is not currently loaded into the problem).
      Parameters:
        `cutind` - Pointer to the cut for which the slack is to be calculated.
        `p_slack` - Double pointer where the value of the slack is returned.
      Throws:
        `XPRSprobException`

    - #### getCutSlack

          public double getCutSlack​(XPRScut cutind)

      Convenience wrapper for `getCutSlack(XPRScut,com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `cutind` - Pointer to the cut for which the slack is to be calculated.
      Returns:
        The value that the wrapped function would return in p_slack.

    - #### getCutMap

          public void getCutMap​(int ncuts,
                                XPRScut[] cutind,
                                int[] cutmap)
                         throws XPRSprobException

      Used to return in which rows a list of cuts are currently loaded into the Optimizer. This is useful for example to retrieve the duals associated with active cuts.
      Parameters:
        `ncuts` - Number of cuts in the cutind array.
        `cutind` - Pointer array to the cuts for which the row index is requested.
        `cutmap` - Integer array of length `ncuts`, where the row indices are returned.
      Throws:
        `XPRSprobException`

    - #### getPresolveSol

          public void getPresolveSol​(double[] x,
                                     double[] slack,
                                     double[] duals,
                                     double[] djs)
                              throws XPRSprobException

      Returns the solution for the presolved problem from memory.
      Parameters:
        `x` - Double array of length `COLS` where the values of the primal variables will be returned. May be `null` if not required.
        `slack` - Double array of length `ROWS` where the values of the slack variables will be returned. May be `null` if not required.
        `duals` - Double array of length `ROWS` where the values of the dual variables will be returned. May be `null` if not required.
        `djs` - Double array of length `COLS` where the reduced cost for each variable will be returned. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getPresolveSol

          public void getPresolveSol​(double[] x)
                              throws XPRSprobException

      Convenience wrapper for `getPresolveSol(double[], double[], double[], double[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `getPresolveSol(double[], double[], double[], double[])`

    - #### getSolution

          public void getSolution​(IntHolder status,
                                  double[] x,
                                  int first,
                                  int last)
                           throws XPRSprobException

      Returns the incumbent solution during or after optimization with `optimize`, `mipOptimize`, `lpOptimize` or `nlpOptimize`.

      Examples using `getSolution`:

      - AddMipSol.java
      - BinBurglar.java
      - BoolVars.java
      - Boxes02.java
      - Capbgt2l.java
      - CapitalBudgeting.java
      - Catenary.java
      - ContractAllocation.java
      - CuttingStock.java
      - ELS.java
      - ELSCut.java
      - FacilityLocationArray.java
      - FacilityLocationCollection.java
      - Folio.java
      - FolioCB.java
      - FolioHeuristic.java
      - FolioInit.java
      - FolioMip1.java
      - FolioMip2.java
      - FolioQC.java
      - FolioQP.java
      - GeneralConstraints.java
      - Glidert.java
      - GoalProg.java
      - MultipleKnapsack_Arrays.java
      - MultipleKnapsack_Collections.java
      - MultipleProblems.java
      - PiecewiseLinear.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonObjects.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      - Pplan.java
      - Pplan2.java
      - ProductionPlanning_Index.java
      - PurchasePWL.java
      - PurchaseSOS2.java
      - QuadraticProgramming.java
      - RecursiveFinancialPlanning.java
      - Repair.java
      - RoundInt.java
      - Sangraalind.java
      - SpecialOrderedSets.java
      - SpecialOrderedSetsQuadratic.java
      - TSP.java
      - Tableau.java
      - TravelingSalesPerson.java
      - Trimloss.java
      - Wagon.java
      Parameters:
        `status` - Information about the solution returned.
        `x` - Double array of length `last-first+1` where the value of the primal variables will be returned. May be `null` if not required.
        `first` - First column in the solution.
        `last` - Last column in the solution.
      Throws:
        `XPRSprobException`

    - #### getSolution

          public double[] getSolution​(IntHolder status,
                                      int first,
                                      int last)

      Convenience wrapper for `getSolution(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array.

    - #### getSolution

          public double[] getSolution​(int first,
                                      int last)

      Convenience wrapper for `getSolution(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getSolution

          public double getSolution​(IntHolder status,
                                    int index)

      Convenience wrapper for `getSolution(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value.

    - #### getSolution

          public double getSolution​(int index)

      Convenience wrapper for `getSolution(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getSolution

          public double[] getSolution​(IntHolder status)

      Convenience wrapper for `getSolution(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements.

    - #### getSolution

          public double[] getSolution()

      Convenience wrapper for `getSolution(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getSlacks

          public void getSlacks​(IntHolder status,
                                double[] slacks,
                                int first,
                                int last)
                         throws XPRSprobException

      Returns the slack values from the incumbent solution during or after optimization with `optimize`, `mipOptimize`, `lpOptimize` or `nlpOptimize`.

      Examples using `getSlacks`:

      - Repair.java
      - Tableau.java
      Parameters:
        `status` - Information about the slacks returned.
        `slacks` - Double array of length `last-first+1` where the value of the slack variables will be returned. May be `null` if not required.
        `first` - First row in the slacks.
        `last` - Last row in the slacks.
      Throws:
        `XPRSprobException`

    - #### getSlacks

          public double[] getSlacks​(IntHolder status,
                                    int first,
                                    int last)

      Convenience wrapper for `getSlacks(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array.

    - #### getSlacks

          public double[] getSlacks​(int first,
                                    int last)

      Convenience wrapper for `getSlacks(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getSlack

          public double getSlack​(IntHolder status,
                                 int index)

      Convenience wrapper for `getSlacks(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value.

    - #### getSlack

          public double getSlack​(int index)

      Convenience wrapper for `getSlacks(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getSlacks

          public double[] getSlacks​(IntHolder status)

      Convenience wrapper for `getSlacks(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements.

    - #### getSlacks

          public double[] getSlacks()

      Convenience wrapper for `getSlacks(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getDuals

          public void getDuals​(IntHolder status,
                               double[] duals,
                               int first,
                               int last)
                        throws XPRSprobException

      Returns the dual values from the incumbent solution during or after optimization of a continuous problem with `optimize`, `lpOptimize` or `nlpOptimize`.

      Examples using `getDuals`:

      - CuttingStock.java
      Parameters:
        `status` - Information about the dual solution returned.
        `duals` - Double array of length `last-first+1` where the values of the dual variables will be returned. May be `null` if not required.
        `first` - First row in the dual solution.
        `last` - Last row in the dual solution.
      Throws:
        `XPRSprobException`

    - #### getDuals

          public double[] getDuals​(IntHolder status,
                                   int first,
                                   int last)

      Convenience wrapper for `getDuals(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array.

    - #### getDuals

          public double[] getDuals​(int first,
                                   int last)

      Convenience wrapper for `getDuals(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getDual

          public double getDual​(IntHolder status,
                                int index)

      Convenience wrapper for `getDuals(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value.

    - #### getDual

          public double getDual​(int index)

      Convenience wrapper for `getDuals(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getDuals

          public double[] getDuals​(IntHolder status)

      Convenience wrapper for `getDuals(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements.

    - #### getDuals

          public double[] getDuals()

      Convenience wrapper for `getDuals(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getRedCosts

          public void getRedCosts​(IntHolder status,
                                  double[] djs,
                                  int first,
                                  int last)
                           throws XPRSprobException

      Returns the reduced costs from the incumbent solution during or after optimization of a continuous problem with `optimize`, `lpOptimize` or `nlpOptimize`.
      Parameters:
        `status` - Information about the reduced costs returned.
        `djs` - Double array of length `last-first+1` where the reduced costs for the variables will be returned. May be `null` if not required.
        `first` - First column in the reduced costs.
        `last` - Last column in the reduced costs.
      Throws:
        `XPRSprobException`

    - #### getRedCosts

          public double[] getRedCosts​(IntHolder status,
                                      int first,
                                      int last)

      Convenience wrapper for `getRedCosts(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array.

    - #### getRedCosts

          public double[] getRedCosts​(int first,
                                      int last)

      Convenience wrapper for `getRedCosts(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getRedCost

          public double getRedCost​(IntHolder status,
                                   int index)

      Convenience wrapper for `getRedCosts(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value.

    - #### getRedCost

          public double getRedCost​(int index)

      Convenience wrapper for `getRedCosts(com.dashoptimization.IntHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getRedCosts

          public double[] getRedCosts​(IntHolder status)

      Convenience wrapper for `getRedCosts(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements.

    - #### getRedCosts

          public double[] getRedCosts()

      Convenience wrapper for `getRedCosts(com.dashoptimization.IntHolder, double[], int, int)` that allocates the output array and queries all elements. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getLpSol

          public void getLpSol​(double[] x,
                               double[] slack,
                               double[] duals,
                               double[] djs)
                        throws XPRSprobException

      Used to obtain the LP solution values following optimization.
      Parameters:
        `x` - Double array of length `ORIGINALCOLS` where the values of the primal variables will be returned. May be `null` if not required.
        `slack` - Double array of length `ORIGINALROWS` where the values of the slack variables will be returned. May be `null` if not required.
        `duals` - Double array of length `ORIGINALROWS` where the values of the dual variables ( `cBTB-1`) will be returned. May be `null` if not required.
        `djs` - Double array of length `ORIGINALCOLS` where the reduced cost for each variable ( `cT-cBTB-1A`) will be returned. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getLpSol

          public void getLpSol​(double[] x)
                        throws XPRSprobException

      Convenience wrapper for `getLpSol(double[], double[], double[], double[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `getLpSol(double[], double[], double[], double[])`

    - #### getLpSolVal

          @Deprecated
          public void getLpSolVal​(int col,
                                  int row,
                                  DoubleHolder p_x,
                                  DoubleHolder p_slack,
                                  DoubleHolder p_dual,
                                  DoubleHolder p_dj)
                           throws XPRSprobException

      Deprecated.
      since 44.00, use `getSolution()`, `getCallbackSolution()`, `getSlacks()`, or `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, or `getCallbackDuals()`.
      Used to obtain a single LP solution value following optimization.
      Parameters:
        `col` - Column index of the variable for which to return the solution value.
        `row` - Row index of the constraint for which to return the solution value.
        `p_x` - Double pointer where the value of the primal variable will be returned. May be `null` if not required.
        `p_slack` - Double pointer where the value of the slack variable will be returned. May be `null` if not required.
        `p_dual` - Double pointer where the value of the dual variable ( `cBTB-1`) will be returned. May be `null` if not required.
        `p_dj` - Double pointer where the reduced costs for the variable ( `cT-cBTB-1A`) will be returned. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getMipSol

          @Deprecated
          public void getMipSol​(double[] x,
                                double[] slack)
                         throws XPRSprobException

      Deprecated.
      since 44.00, use `getSolution()`, `getCallbackSolution()`, `getSlacks()`, or `getCallbackSlacks()`.
      Used to obtain the solution values of the last MIP solution that was found.
      Parameters:
        `x` - Double array of length `ORIGINALCOLS` where the values of the primal variables will be returned. May be `null` if not required.
        `slack` - Double array of length `ORIGINALROWS` where the values of the slack variables will be returned. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getMipSol

          @Deprecated
          public void getMipSol​(double[] x)
                         throws XPRSprobException

      Deprecated.
      since 44.00, use `getSolution()`, `getCallbackSolution()`, `getSlacks()`, or `getCallbackSlacks()`.
      Convenience wrapper for `getMipSol(double[], double[])`.
      Throws:
        `XPRSprobException`
      See Also:
        `getMipSol(double[], double[])`

    - #### getMipSolVal

          @Deprecated
          public void getMipSolVal​(int col,
                                   int row,
                                   DoubleHolder p_x,
                                   DoubleHolder p_slack)
                            throws XPRSprobException

      Deprecated.
      since 44.00, use `getSolution()`, `getCallbackSolution()`, `getSlacks()`, or `getCallbackSlacks()`.
      Used to obtain a single solution value of the last MIP solution that was found.
      Parameters:
        `col` - Column index of the variable for which to return the solution value.
        `row` - Row index of the constraint for which to return the solution value.
        `p_x` - Double pointer where the value of the primal variable will be returned. May be `null` if not required.
        `p_slack` - Double pointer where the value of the slack variable will be returned. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### getCallbackSolution

          public void getCallbackSolution​(BoolHolder p_available,
                                          double[] x,
                                          int first,
                                          int last)
                                   throws XPRSprobException

      Returns the primal values from the solution associated with the current callback.

      Examples using `getCallbackSolution`:

      - AddMipSol.java
      - ELSCut.java
      - ELSManagedCuts.java
      - FolioCB.java
      - Knapsack.java
      - MostViolated.java
      - SaveSol.java
      - TSP.java
      - TravelingSalesPerson.java
      Parameters:
        `p_available` - This variable will be set to 1 if a solution is available. May be `null` if not required.
        `x` - Double array of length `last-first+1` where the values of the primal variables will be returned. May be `null` if not required.
        `first` - First column in the solution to return.
        `last` - Last column in the solution to return.
      Throws:
        `XPRSprobException`

    - #### getCallbackSolution

          public double[] getCallbackSolution​(BoolHolder p_available,
                                              int first,
                                              int last)

      Convenience wrapper for `getCallbackSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.

    - #### getCallbackSolution

          public double[] getCallbackSolution​(int first,
                                              int last)

      Convenience wrapper for `getCallbackSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackSolution

          public double getCallbackSolution​(BoolHolder p_available,
                                            int index)

      Convenience wrapper for `getCallbackSolution(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.

    - #### getCallbackSolution

          public double getCallbackSolution​(int index)

      Convenience wrapper for `getCallbackSolution(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackSolution

          public double[] getCallbackSolution​(BoolHolder p_available)

      Convenience wrapper for `getCallbackSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.

    - #### getCallbackSolution

          public double[] getCallbackSolution()

      Convenience wrapper for `getCallbackSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackSlacks

          public void getCallbackSlacks​(BoolHolder p_available,
                                        double[] slacks,
                                        int first,
                                        int last)
                                 throws XPRSprobException

      Returns the slack values from the solution associated with the current callback.

      Examples using `getCallbackSlacks`:

      - ELSCut.java
      Parameters:
        `p_available` - This variable will be set to 1 if a solution is available. May be `null` if not required.
        `slacks` - Double array of length `last-first+1` where the values of the slack variables will be returned. May be `null` if not required.
        `first` - First row whose slack value to return.
        `last` - Last row whose slack value to return.
      Throws:
        `XPRSprobException`

    - #### getCallbackSlacks

          public double[] getCallbackSlacks​(BoolHolder p_available,
                                            int first,
                                            int last)

      Convenience wrapper for `getCallbackSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.

    - #### getCallbackSlacks

          public double[] getCallbackSlacks​(int first,
                                            int last)

      Convenience wrapper for `getCallbackSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackSlack

          public double getCallbackSlack​(BoolHolder p_available,
                                         int index)

      Convenience wrapper for `getCallbackSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.

    - #### getCallbackSlack

          public double getCallbackSlack​(int index)

      Convenience wrapper for `getCallbackSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackSlacks

          public double[] getCallbackSlacks​(BoolHolder p_available)

      Convenience wrapper for `getCallbackSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.

    - #### getCallbackSlacks

          public double[] getCallbackSlacks()

      Convenience wrapper for `getCallbackSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackDuals

          public void getCallbackDuals​(BoolHolder p_available,
                                       double[] duals,
                                       int first,
                                       int last)
                                throws XPRSprobException

      Returns the dual values from the solution associated with the current callback.

      Examples using `getCallbackDuals`:

      - ELSCut.java
      Parameters:
        `p_available` - This variable will be set to 1 if a dual solution is available. May be `null` if not required.
        `duals` - Double array of length `last-first+1` where the values of the dual variables will be returned. May be `null` if not required.
        `first` - First row whose dual value to return.
        `last` - Last row whose dual value to return.
      Throws:
        `XPRSprobException`

    - #### getCallbackDuals

          public double[] getCallbackDuals​(BoolHolder p_available,
                                           int first,
                                           int last)

      Convenience wrapper for `getCallbackDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.

    - #### getCallbackDuals

          public double[] getCallbackDuals​(int first,
                                           int last)

      Convenience wrapper for `getCallbackDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackDual

          public double getCallbackDual​(BoolHolder p_available,
                                        int index)

      Convenience wrapper for `getCallbackDuals(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.

    - #### getCallbackDual

          public double getCallbackDual​(int index)

      Convenience wrapper for `getCallbackDuals(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackDuals

          public double[] getCallbackDuals​(BoolHolder p_available)

      Convenience wrapper for `getCallbackDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.

    - #### getCallbackDuals

          public double[] getCallbackDuals()

      Convenience wrapper for `getCallbackDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackRedCosts

          public void getCallbackRedCosts​(BoolHolder p_available,
                                          double[] djs,
                                          int first,
                                          int last)
                                   throws XPRSprobException

      Returns the reduced costs from the solution associated with the current callback.

      Examples using `getCallbackRedCosts`:

      - ELSCut.java
      Parameters:
        `p_available` - This variable will be set to 1 if a dual solution is available. May be `null` if not required.
        `djs` - Double array of length `last-first+1` where the reduced costs of the variables will be returned. May be `null` if not required.
        `first` - First column whose reduced cost to return.
        `last` - Last column whose reduced cost to return.
      Throws:
        `XPRSprobException`

    - #### getCallbackRedCosts

          public double[] getCallbackRedCosts​(BoolHolder p_available,
                                              int first,
                                              int last)

      Convenience wrapper for `getCallbackRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.

    - #### getCallbackRedCosts

          public double[] getCallbackRedCosts​(int first,
                                              int last)

      Convenience wrapper for `getCallbackRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackRedCost

          public double getCallbackRedCost​(BoolHolder p_available,
                                           int index)

      Convenience wrapper for `getCallbackRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.

    - #### getCallbackRedCost

          public double getCallbackRedCost​(int index)

      Convenience wrapper for `getCallbackRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackRedCosts

          public double[] getCallbackRedCosts​(BoolHolder p_available)

      Convenience wrapper for `getCallbackRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.

    - #### getCallbackRedCosts

          public double[] getCallbackRedCosts()

      Convenience wrapper for `getCallbackRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackPresolveSolution

          public void getCallbackPresolveSolution​(BoolHolder p_available,
                                                  double[] x,
                                                  int first,
                                                  int last)
                                           throws XPRSprobException

      Returns the solution to the presolved problem associated with the current callback.

      Examples using `getCallbackPresolveSolution`:

      - MostViolated.java
      Parameters:
        `p_available` - This variable will be set to 1 if a solution is available. May be `null` if not required.
        `x` - Double array of length `last-first+1` where the values of the primal variables will be returned. May be `null` if not required.
        `first` - First column in the solution to return.
        `last` - Last column in the solution to return.
      Throws:
        `XPRSprobException`

    - #### getCallbackPresolveSolution

          public double[] getCallbackPresolveSolution​(BoolHolder p_available,
                                                      int first,
                                                      int last)

      Convenience wrapper for `getCallbackPresolveSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.

    - #### getCallbackPresolveSolution

          public double[] getCallbackPresolveSolution​(int first,
                                                      int last)

      Convenience wrapper for `getCallbackPresolveSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackPresolveSolution

          public double getCallbackPresolveSolution​(BoolHolder p_available,
                                                    int index)

      Convenience wrapper for `getCallbackPresolveSolution(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.

    - #### getCallbackPresolveSolution

          public double getCallbackPresolveSolution​(int index)

      Convenience wrapper for `getCallbackPresolveSolution(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackPresolveSolution

          public double[] getCallbackPresolveSolution​(BoolHolder p_available)

      Convenience wrapper for `getCallbackPresolveSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.

    - #### getCallbackPresolveSolution

          public double[] getCallbackPresolveSolution()

      Convenience wrapper for `getCallbackPresolveSolution(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackPresolveSlacks

          public void getCallbackPresolveSlacks​(BoolHolder p_available,
                                                double[] slacks,
                                                int first,
                                                int last)
                                         throws XPRSprobException

      Returns the slack values from the solution to the presolved problem associated with the current callback.
      Parameters:
        `p_available` - This variable will be set to 1 if a solution is available. May be `null` if not required.
        `slacks` - Double array of length `last-first+1` where the values of the slack variables will be returned. May be `null` if not required.
        `first` - First row whose slack value to return.
        `last` - Last row whose slack value to return.
      Throws:
        `XPRSprobException`

    - #### getCallbackPresolveSlacks

          public double[] getCallbackPresolveSlacks​(BoolHolder p_available,
                                                    int first,
                                                    int last)

      Convenience wrapper for `getCallbackPresolveSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.

    - #### getCallbackPresolveSlacks

          public double[] getCallbackPresolveSlacks​(int first,
                                                    int last)

      Convenience wrapper for `getCallbackPresolveSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackPresolveSlack

          public double getCallbackPresolveSlack​(BoolHolder p_available,
                                                 int index)

      Convenience wrapper for `getCallbackPresolveSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.

    - #### getCallbackPresolveSlack

          public double getCallbackPresolveSlack​(int index)

      Convenience wrapper for `getCallbackPresolveSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackPresolveSlacks

          public double[] getCallbackPresolveSlacks​(BoolHolder p_available)

      Convenience wrapper for `getCallbackPresolveSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.

    - #### getCallbackPresolveSlacks

          public double[] getCallbackPresolveSlacks()

      Convenience wrapper for `getCallbackPresolveSlacks(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackPresolveDuals

          public void getCallbackPresolveDuals​(BoolHolder p_available,
                                               double[] duals,
                                               int first,
                                               int last)
                                        throws XPRSprobException

      Returns the dual values from the solution to the presolved problem associated with the current callback.
      Parameters:
        `p_available` - This variable will be set to 1 if a dual solution is available. May be `null` if not required.
        `duals` - Double array of length `last-first+1` where the values of the dual variables will be returned. May be `null` if not required.
        `first` - First row whose dual value to return.
        `last` - Last row whose dual value to return.
      Throws:
        `XPRSprobException`

    - #### getCallbackPresolveDuals

          public double[] getCallbackPresolveDuals​(BoolHolder p_available,
                                                   int first,
                                                   int last)

      Convenience wrapper for `getCallbackPresolveDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.

    - #### getCallbackPresolveDuals

          public double[] getCallbackPresolveDuals​(int first,
                                                   int last)

      Convenience wrapper for `getCallbackPresolveDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackPresolveDual

          public double getCallbackPresolveDual​(BoolHolder p_available,
                                                int index)

      Convenience wrapper for `getCallbackPresolveDuals(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.

    - #### getCallbackPresolveDual

          public double getCallbackPresolveDual​(int index)

      Convenience wrapper for `getCallbackPresolveDuals(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackPresolveDuals

          public double[] getCallbackPresolveDuals​(BoolHolder p_available)

      Convenience wrapper for `getCallbackPresolveDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.

    - #### getCallbackPresolveDuals

          public double[] getCallbackPresolveDuals()

      Convenience wrapper for `getCallbackPresolveDuals(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackPresolveRedCosts

          public void getCallbackPresolveRedCosts​(BoolHolder p_available,
                                                  double[] djs,
                                                  int first,
                                                  int last)
                                           throws XPRSprobException

      Returns the reduced costs from the solution to the presolved problem associated with the current callback.
      Parameters:
        `p_available` - This variable will be set to 1 if a dual solution is available. May be `null` if not required.
        `djs` - Double array of length `last-first+1` where the reduced costs of the variables will be returned. May be `null` if not required.
        `first` - First column whose reduced cost to return.
        `last` - Last column whose reduced cost to return.
      Throws:
        `XPRSprobException`

    - #### getCallbackPresolveRedCosts

          public double[] getCallbackPresolveRedCosts​(BoolHolder p_available,
                                                      int first,
                                                      int last)

      Convenience wrapper for `getCallbackPresolveRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array.

    - #### getCallbackPresolveRedCosts

          public double[] getCallbackPresolveRedCosts​(int first,
                                                      int last)

      Convenience wrapper for `getCallbackPresolveRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackPresolveRedCost

          public double getCallbackPresolveRedCost​(BoolHolder p_available,
                                                   int index)

      Convenience wrapper for `getCallbackPresolveRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value.

    - #### getCallbackPresolveRedCost

          public double getCallbackPresolveRedCost​(int index)

      Convenience wrapper for `getCallbackPresolveRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that queries only a single value./ Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### getCallbackPresolveRedCosts

          public double[] getCallbackPresolveRedCosts​(BoolHolder p_available)

      Convenience wrapper for `getCallbackPresolveRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements.

    - #### getCallbackPresolveRedCosts

          public double[] getCallbackPresolveRedCosts()

      Convenience wrapper for `getCallbackPresolveRedCosts(com.dashoptimization.BoolHolder, double[], int, int)` that allocates the output array and queries all elements. Before calling this function you should make sure that a solution is available and satisfies desired requiresments like feasible, optimal, ...

    - #### chgObj

          public void chgObj​(int ncols,
                             int[] colind,
                             double[] objcoef)
                      throws XPRSprobException

      Used to change the objective function coefficients.

      Examples using `chgObj`:

      - CuttingStock.java
      - GlobalObjectiveParametrics.java
      - GoalProg.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Parameters:
        `ncols` - Number of objective function coefficient elements to change.
        `colind` - Integer array of length `ncols` containing the indices of the columns whose objective coefficients will change. An index of `-1` indicates that the fixed part of the objective function on the right hand side should change.
        `objcoef` - Double array of length `ncols` giving the new objective function coefficients.
      Throws:
        `XPRSprobException`

    - #### chgObj

          public void chgObj​(int x,
                             double value)
                      throws XPRSprobException

      Convenience wrapper for `chgObj(int, int[], double[])`. This function only modifies a single element.

      Examples using `chgObj`:

      - CuttingStock.java
      - GlobalObjectiveParametrics.java
      - GoalProg.java
      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Parameters:
        `x` - Index of element to modify.
        `value` - New value for `x`.
      Throws:
        `XPRSprobException`
      See Also:
        `chgObj(int, int[], double[])`

    - #### chgCoef

          public void chgCoef​(int row,
                              int col,
                              double coef)
                       throws XPRSprobException

      Used to change a single coefficient in the matrix. If the coefficient does not already exist, a new coefficient will be added to the matrix. If many coefficients are being added to a row of the matrix, it may be more efficient to delete the old row of the matrix and add a new row.

      Examples using `chgCoef`:

      - CuttingStock.java
      - MultipleProblems.java
      - RecursiveFinancialPlanning.java
      Parameters:
        `row` - Row index for the coefficient.
        `col` - Column index for the coefficient.
        `coef` - New value for the coefficient. If `coef` is zero, any existing coefficient will be deleted.
      Throws:
        `XPRSprobException`

    - #### chgMCoef

          public void chgMCoef​(int ncoefs,
                               int[] rowind,
                               int[] colind,
                               double[] rowcoef)
                        throws XPRSprobException

      Used to change multiple coefficients in the matrix. If any coefficient does not already exist, it will be added to the matrix. If many coefficients are being added to a row of the matrix, it may be more efficient to delete the old row of the matrix and add a new one.
      Parameters:
        `ncoefs` - Number of new coefficients.
        `rowind` - Integer array of length `ncoefs` containing the row indices of the coefficients to be changed.
        `colind` - Integer array of length `ncoefs` containing the column indices of the coefficients to be changed.
        `rowcoef` - Double array of length `ncoefs` containing the new coefficient values. If an element of `rowcoef` is zero, the coefficient will be deleted.
      Throws:
        `XPRSprobException`

    - #### chgMCoef

          public void chgMCoef​(long ncoefs,
                               int[] rowind,
                               int[] colind,
                               double[] rowcoef)
                        throws XPRSprobException

      Used to change multiple coefficients in the matrix. If any coefficient does not already exist, it will be added to the matrix. If many coefficients are being added to a row of the matrix, it may be more efficient to delete the old row of the matrix and add a new one.
      Parameters:
        `ncoefs` - Number of new coefficients.
        `rowind` - Integer array of length `ncoefs` containing the row indices of the coefficients to be changed.
        `colind` - Integer array of length `ncoefs` containing the column indices of the coefficients to be changed.
        `rowcoef` - Double array of length `ncoefs` containing the new coefficient values. If an element of `rowcoef` is zero, the coefficient will be deleted.
      Throws:
        `XPRSprobException`

    - #### chgMQObj

          public void chgMQObj​(int ncoefs,
                               int[] objqcol1,
                               int[] objqcol2,
                               double[] objqcoef)
                        throws XPRSprobException

      Used to change multiple quadratic coefficients in the objective function. If any of the coefficients does not exist already, new coefficients will be added to the objective function.
      Parameters:
        `ncoefs` - The number of coefficients to change.
        `objqcol1` - Integer array of size `ncoefs` containing the column index of the first variable in each quadratic term.
        `objqcol2` - Integer array of size `ncoefs` containing the column index of the second variable in each quadratic term.
        `objqcoef` - New values for the coefficients. If an entry in `objqcoef` is `0`, the corresponding entry will be deleted. These are the coefficients of the quadratic Hessian matrix.
      Throws:
        `XPRSprobException`

    - #### chgMQObj

          public void chgMQObj​(long ncoefs,
                               int[] objqcol1,
                               int[] objqcol2,
                               double[] objqcoef)
                        throws XPRSprobException

      Used to change multiple quadratic coefficients in the objective function. If any of the coefficients does not exist already, new coefficients will be added to the objective function.
      Parameters:
        `ncoefs` - The number of coefficients to change.
        `objqcol1` - Integer array of size `ncoefs` containing the column index of the first variable in each quadratic term.
        `objqcol2` - Integer array of size `ncoefs` containing the column index of the second variable in each quadratic term.
        `objqcoef` - New values for the coefficients. If an entry in `objqcoef` is `0`, the corresponding entry will be deleted. These are the coefficients of the quadratic Hessian matrix.
      Throws:
        `XPRSprobException`

    - #### chgQObj

          public void chgQObj​(int objqcol1,
                              int objqcol2,
                              double objqcoef)
                       throws XPRSprobException

      Used to change a single quadratic coefficient in the objective function corresponding to the variable pair `(objqcol1,objqcol2)` of the Hessian matrix.
      Parameters:
        `objqcol1` - Column index for the first variable in the quadratic term.
        `objqcol2` - Column index for the second variable in the quadratic term.
        `objqcoef` - New value for the coefficient in the quadratic Hessian matrix. If an entry in `objqcoef` is `0`, the corresponding entry will be deleted.
      Throws:
        `XPRSprobException`

    - #### chgRHS

          public void chgRHS​(int nrows,
                             int[] rowind,
                             double[] rhs)
                      throws XPRSprobException

      Used to change right—hand side values of the problem.

      Examples using `chgRHS`:

      - GlobalRHSParametrics.java
      - Repair.java
      Parameters:
        `nrows` - Number of right hand side values to change.
        `rowind` - Integer array of length `nrows` containing the indices of the rows on which the right hand side values will change.
        `rhs` - Double array of length `nrows` giving the right hand side values.
      Throws:
        `XPRSprobException`

    - #### chgRHS

          public void chgRHS​(int x,
                             double value)
                      throws XPRSprobException

      Convenience wrapper for `chgRHS(int, int[], double[])`. This function only modifies a single element.

      Examples using `chgRHS`:

      - GlobalRHSParametrics.java
      - Repair.java
      Parameters:
        `x` - Index of element to modify.
        `value` - New value for `x`.
      Throws:
        `XPRSprobException`
      See Also:
        `chgRHS(int, int[], double[])`

    - #### chgRHSrange

          public void chgRHSrange​(int nrows,
                                  int[] rowind,
                                  double[] rng)
                           throws XPRSprobException

      Used to change the range for a row of the problem matrix.

      Examples using `chgRHSrange`:

      - Repair.java
      Parameters:
        `nrows` - Number of range elements to change.
        `rowind` - Integer array of length `nrows` containing the indices of the rows on which the range elements will change.
        `rng` - Double array of length `nrows` giving the range values.
      Throws:
        `XPRSprobException`

    - #### chgRHSrange

          public void chgRHSrange​(int x,
                                  double value)
                           throws XPRSprobException

      Convenience wrapper for `chgRHSrange(int, int[], double[])`. This function only modifies a single element.

      Examples using `chgRHSrange`:

      - Repair.java
      Parameters:
        `x` - Index of element to modify.
        `value` - New value for `x`.
      Throws:
        `XPRSprobException`
      See Also:
        `chgRHSrange(int, int[], double[])`

    - #### chgRowType

          public void chgRowType​(int nrows,
                                 int[] rowind,
                                 byte[] rowtype)
                          throws XPRSprobException

      Used to change the type of a row in the matrix.

      Examples using `chgRowType`:

      - Repair.java
      Parameters:
        `nrows` - Number of rows to change.
        `rowind` - Integer array of length `nrows` containing the indices of the rows.
        `rowtype` - Character array of length `nrows` giving the new row types:
        - `L`: indicates a <= row;
        - `E`: indicates an = row;
        - `G`: indicates a >= row;
        - `R`: indicates a range row;
        - `N`: indicates a free row.
      Throws:
        `XPRSprobException`

    - #### chgRowType

          public void chgRowType​(int x,
                                 byte value)
                          throws XPRSprobException

      Convenience wrapper for `chgRowType(int, int[], byte[])`. This function only modifies a single element.

      Examples using `chgRowType`:

      - Repair.java
      Parameters:
        `x` - Index of element to modify.
        `value` - New value for `x`.
      Throws:
        `XPRSprobException`
      See Also:
        `chgRowType(int, int[], byte[])`

    - #### msAddJob

          public void msAddJob​(java.lang.String description,
                               int ninitial,
                               int[] colind,
                               double[] initial,
                               int nintcontrols,
                               int[] intcontrolid,
                               int[] intcontrolval,
                               int ndblcontrols,
                               int[] dblcontrolid,
                               double[] dblcontrolval,
                               java.lang.Object data)
                        throws XPRSprobException

      Adds a multistart job to the multistart pool
      Parameters:
        `description` - Text description of the job. Used for messaging, may be null if not required.
        `ninitial` - Number of initial values to set.
        `colind` - Indices of the variables for which to set an initial value. May be null if no initial values are provided.
        `initial` - Initial values for the variables for which to set an initial value. May be null if no initial values are provided.
        `nintcontrols` - Number of integer controls to set.
        `intcontrolid` - The indices of the integer controls to be set. May be null if nintcontrols is zero.
        `intcontrolval` - The values of the integer controls to be set. May be null if nintcontrols is zero.
        `ndblcontrols` - Number of double controls to set.
        `dblcontrolid` - The indices of the double controls to be set. May be null if ndblcontrols is zero.
        `dblcontrolval` - The values of the double controls to be set. May be null if ndblcontrols is zero.
        `data` - Job specific user context pointer to be passed to the multistart callbacks.
      Throws:
        `XPRSprobException`

    - #### msAddPreset

          public void msAddPreset​(java.lang.String description,
                                  int preset,
                                  int maxjobs,
                                  java.lang.Object data)
                           throws XPRSprobException

      Loads a preset of jobs into the multistart job pool.
      Parameters:
        `description` - Text description of the preset. Used for messaging, may be null if not required.
        `preset` - Which preset to load.
        `maxjobs` - Maximum number of jobs to be added to the multistart pool.
        `data` - Job specific user context pointer to be passed to the multistart callbacks.
      Throws:
        `XPRSprobException`

    - #### msAddCustomPreset

          public void msAddCustomPreset​(java.lang.String description,
                                        int preset,
                                        int maxjobs,
                                        int ninitial,
                                        int[] colind,
                                        double[] initial,
                                        int nintcontrols,
                                        int[] intcontrolid,
                                        int[] intcontrolval,
                                        int ndblcontrols,
                                        int[] dblcontrolid,
                                        double[] dblcontrolval,
                                        java.lang.Object data)
                                 throws XPRSprobException

      A combined version of XSLPmsaddjob and XSLPmsaddpreset. The preset described is loaded, topped up with the specific settings supplied
      Parameters:
        `description` - Text description of the job. Used for messaging, may be null if not required.
        `preset` - Which preset to load.
        `maxjobs` - Maximum number of jobs to be added to the multistart pool.
        `ninitial` - Number of initial values to set.
        `colind` - Indices of the variables for which to set an initial value. May be null if no initial values are provided.
        `initial` - Initial values for the variables for which to set an initial value. May be null if no initial values are provided.
        `nintcontrols` - Number of integer controls to set.
        `intcontrolid` - The indices of the integer controls to be set. May be null if nintcontrols is zero.
        `intcontrolval` - The values of the integer controls to be set. May be null if nintcontrols is zero.
        `ndblcontrols` - Number of double controls to set.
        `dblcontrolid` - The indices of the double controls to be set. May be null if ndblcontrols is zero.
        `dblcontrolval` - The values of the double controls to be set. May be null if ndblcontrols is zero.
        `data` - Job specific user context pointer to be passed to the multistart callbacks.
      Throws:
        `XPRSprobException`

    - #### nlpSetFunctionError

          public void nlpSetFunctionError()
                                   throws XPRSprobException

      Set the function error flag for the problem
      Throws:
        `XPRSprobException`

    - #### nlpPrintEvalInfo

          public void nlpPrintEvalInfo()
                                throws XPRSprobException

      Print a summary of any evaluation errors that may have occurred during solving a problem
      Throws:
        `XPRSprobException`

    - #### nlpValidate

          public void nlpValidate()
                           throws XPRSprobException

      Validate the feasibility of constraints in a converged solution
      Throws:
        `XPRSprobException`

    - #### nlpOptimize

          public void nlpOptimize​(java.lang.String flags)
                           throws XPRSprobException

      Maximize or minimize an SLP problem
      Parameters:
        `flags` - Flags to pass to `XSLPnlpoptimize`. The default is `""` or `null`, in which case the solve stops after solving the root relaxation (or a continuous problem to completion) and it restarts the solve without continuing.
        - `g`: Perform a branch and bound search if necessary to solve the problem;
        - `c`: continue a previously interrupted solve.
        All other flags are passed to the Optimizer: see `lpOptimize`.
      Throws:
        `XPRSprobException`

    - #### getNlpsol

          @Deprecated
          public void getNlpsol​(double[] x,
                                double[] slack,
                                double[] duals,
                                double[] djs)
                         throws XPRSprobException

      Deprecated.
      since 44.00, use `getSolution()`, `getCallbackSolution()`, `getSlacks()`, or `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, or `getCallbackDuals()`.
      Obtain the current SLP solution values
      Parameters:
        `x` - Double array of length `XSLP_ORIGINALCOLS` to hold the values of the primal variables. May be `null` if not required.
        `slack` - Double array of length `XSLP_ORIGINALROWS` to hold the values of the slack variables. May be `null` if not required.
        `duals` - Double array of length `XSLP_ORIGINALROWS` to hold the values of the dual variables. May be `null` if not required.
        `djs` - Double array of length `XSLP_ORIGINALCOLS` to hold the reduced costs of the primal variables. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### nlpCurrentIV

          public void nlpCurrentIV()
                            throws XPRSprobException

      Transfer the current solution to initial values
      Throws:
        `XPRSprobException`

    - #### nlpValidateRow

          public void nlpValidateRow​(int row)
                              throws XPRSprobException

      Prints an extensive analysis on a given constraint of the SLP problem
      Parameters:
        `row` - The index of the row to be analyzed
      Throws:
        `XPRSprobException`

    - #### nlpValidateKKT

          public void nlpValidateKKT​(int mode,
                                     int respectbasis,
                                     int updatemult,
                                     double violtarget)
                              throws XPRSprobException

      Validates the first order optimality conditions also known as the Karush-Kuhn-Tucker (KKT) conditions versus the currect solution
      Parameters:
        `mode` - The calculation mode can be:
        - `0`: recalculate the reduced costs at the current solution using the current dual solution.
        - `1`: minimize the sum of KKT violations by adjusting the dual solution.
        - `2`: perform both.
        `respectbasis` - The following ways are defined to assess if a constraint is active:
        - `0`: evaluate the recalculated slack activity versus `XSLP_ECFTOL_R`.
        - `1`: use the basis status of the slack in the linearized problem if available.
        - `2`: use both.
        `updatemult` - The calculated values can be:
        - `0`: only used to calculate the `XSLP_VALIDATIONINDEX_K` measure.
        - `1`: used to update the current dual solution and reduced costs.
        `violtarget` - When calculating the best KKT multipliers, it is possible to enforce an even distribution of reduced costs violations by enforcing a bound on them.
      Throws:
        `XPRSprobException`

    - #### msClear

          public void msClear()
                       throws XPRSprobException

      Removes all scheduled jobs from the multistart job pool
      Throws:
        `XPRSprobException`

    - #### nlpEvaluateFormula

          public void nlpEvaluateFormula​(int parsed,
                                         int[] type,
                                         double[] values,
                                         DoubleHolder p_value)
                                  throws XPRSprobException

      Evaluate a formula using the current values of the variables
      Parameters:
        `parsed` - integer indicating whether the formula of the item is in internal unparsed format ( `parsed`=0) or parsed (reverse Polish) format ( `parsed`=1).
        `type` - Integer array of token types for the formula.
        `values` - Double array of values corresponding to `type`.
        `p_value` - Address of a double precision value to receive the result of the calculation.
      Throws:
        `XPRSprobException`

    - #### nlpEvaluateFormula

          public double nlpEvaluateFormula​(int parsed,
                                           int[] type,
                                           double[] values)

      Convenience wrapper for `nlpEvaluateFormula(int,int[],double[],com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `parsed` - integer indicating whether the formula of the item is in internal unparsed format ( `parsed`=0) or parsed (reverse Polish) format ( `parsed`=1).
        `type` - Integer array of token types for the formula.
        `values` - Double array of values corresponding to `type`.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### nlpValidateVector

          public void nlpValidateVector​(double[] solution,
                                        DoubleHolder p_suminf,
                                        DoubleHolder p_sumscaledinf,
                                        DoubleHolder p_objval)
                                 throws XPRSprobException

      Validate the feasibility of constraints for a given solution
      Parameters:
        `solution` - A vector of length `XPRS_COLS` containing the solution vector to be checked.
        `p_suminf` - Pointer to double in which the sum of infeasibility will be returned. May be null if not required.
        `p_sumscaledinf` - Pointer to double in which the sum of scaled (relative) infeasibility will be returned. May be null if not required.
        `p_objval` - Pointer to double in which the net objective will be returned. May be null if not required.
      Throws:
        `XPRSprobException`

    - #### nlpAddUserFunction

          public XPRSprob.MapFunction nlpAddUserFunction​(java.lang.String funcname,
                                                         int options,
                                                         XPRSprob.MapFunctor function)
                                                  throws XPRSprobException

      Throws:
        `XPRSprobException`

    - #### nlpAddUserFunction

          public XPRSprob.VecMapFunction nlpAddUserFunction​(java.lang.String funcname,
                                                            int nin,
                                                            int options,
                                                            XPRSprob.VecMapFunctor function)
                                                     throws XPRSprobException

      Throws:
        `XPRSprobException`

    - #### nlpAddUserFunction

          public XPRSprob.MultiMapFunction nlpAddUserFunction​(java.lang.String funcname,
                                                              int nin,
                                                              int nout,
                                                              int options,
                                                              XPRSprob.MultiMapFunctor function)
                                                       throws XPRSprobException

      Throws:
        `XPRSprobException`

    - #### nlpAddUserFunction

          public XPRSprob.MapDeltaFunction nlpAddUserFunction​(java.lang.String funcname,
                                                              int options,
                                                              XPRSprob.MapDeltaFunctor function)
                                                       throws XPRSprobException

      Throws:
        `XPRSprobException`

    - #### nlpAddUserFunction

          public XPRSprob.VecMapDeltaFunction nlpAddUserFunction​(java.lang.String funcname,
                                                                 int nin,
                                                                 int options,
                                                                 XPRSprob.VecMapDeltaFunctor function)
                                                          throws XPRSprobException

      Throws:
        `XPRSprobException`

    - #### nlpAddUserFunction

          public XPRSprob.MultiMapDeltaFunction nlpAddUserFunction​(java.lang.String funcname,
                                                                   int nin,
                                                                   int nout,
                                                                   int options,
                                                                   XPRSprob.MultiMapDeltaFunctor function)
                                                            throws XPRSprobException

      Throws:
        `XPRSprobException`

    - #### nlpDelUserFunction

          public void nlpDelUserFunction​(int type)
                                  throws XPRSprobException

      Delete a user function from the current problem
      Parameters:
        `type` - The identifier of the user function as returned by `XSLPadduserfunction`.
      Throws:
        `XPRSprobException`

    - #### nlpImportLibFunc

          public void nlpImportLibFunc​(java.lang.String libname,
                                       java.lang.String funcname,
                                       LongHolder p_function,
                                       IntHolder p_status)
                                throws XPRSprobException

      Imports a function from a library file to be called as a user function
      Parameters:
        `libname` - Filename of the library.
        `funcname` - Fucntion name inside the library.
        `p_function` - Function pointer to return the loaded function.
        `p_status` - Outcome of the load operation
        - `0`: success.
        - `1`: library file not found.
        - `2`: library function in library file not found.
      Throws:
        `XPRSprobException`

    - #### nlpAddFormulas

          public void nlpAddFormulas​(int ncoefs,
                                     int[] rowind,
                                     int[] formulastart,
                                     int parsed,
                                     int[] type,
                                     double[] value)
                              throws XPRSprobException

      Add non-linear formulas to the SLP problem.
      Parameters:
        `ncoefs` - Number of non-linear coefficients to be added.
        `rowind` - Integer array holding index of row for the coefficient.
        `formulastart` - Integer array of length `ncoefs+1` holding the start position in the arrays `type` and `value` of the formula for the coefficients. The last element should be set to the next position after the end of the last formula.
        `parsed` - Integer indicating whether the token arrays are formatted as internal unparsed ( `parsed`=0) or internal parsed reverse Polish ( `parsed`=1).
        `type` - Array of token types providing the formula for each coefficient.
        `value` - Array of values corresponding to the types in `type`.
      Throws:
        `XPRSprobException`

    - #### nlpChgFormulaString

          @Deprecated
          public void nlpChgFormulaString​(int row,
                                          java.lang.String formula)
                                   throws XPRSprobException

      Deprecated.
      since 42.00, use `nlpChgFormulaStr()` instead.
      Add or replace a single matrix formula using a character string for the formula.
      Parameters:
        `row` - The index of the matrix row for the coefficient.
        `formula` - Character string holding the formula with the tokens separated by spaces.
      Throws:
        `XPRSprobException`

    - #### nlpChgFormulaStr

          public void nlpChgFormulaStr​(int row,
                                       java.lang.String formula)
                                throws XPRSprobException

      Add or replace a single matrix formula using a character string for the formula.

      Examples using `nlpChgFormulaStr`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Parameters:
        `row` - The index of the matrix row for the coefficient.
        `formula` - Character string holding the formula with the tokens separated by spaces.
      Throws:
        `XPRSprobException`

    - #### nlpChgFormula

          public void nlpChgFormula​(int row,
                                    int parsed,
                                    int[] type,
                                    double[] value)
                             throws XPRSprobException

      Add or replace a single matrix formula using a parsed or unparsed formula

      Examples using `nlpChgFormula`:

      - Polygon.java
      - PolygonMap.java
      - PolygonMapDelta.java
      - PolygonMultiMap.java
      - PolygonMultiMapDelta.java
      - PolygonVecMap.java
      - PolygonVecMapDelta.java
      Parameters:
        `row` - The index of the matrix row for the coefficient.
        `parsed` - Integer indicating the whether the token arrays are formatted as internal unparsed ( `parsed`=0) or internal parsed reverse Polish ( `parsed`=1).
        `type` - Array of token types providing the description and formula for each item.
        `value` - Array of values corresponding to the types in `type`.
      Throws:
        `XPRSprobException`

    - #### nlpGetFormula

          public void nlpGetFormula​(int row,
                                    int parsed,
                                    int maxtypes,
                                    IntHolder p_ntypes,
                                    int[] type,
                                    double[] value)
                             throws XPRSprobException

      Retrieve a single matrix formula as a formula split into tokens.
      Parameters:
        `row` - Integer holding the row index for the formula.
        `parsed` - Integer indicating whether the formula of the row is to be returned in internal unparsed format ( `parsed`=0) or parsed (reverse Polish) format ( `parsed`=1).
        `maxtypes` - Maximum number of tokens to return, i.e., the length of the type and value arrays.
        `p_ntypes` - Will be set to the length of the formula, including the `XSLP_EOF` token.
        `type` - Integer array to hold the token types for the formula. May be `null` if `maxtypes` is zero.
        `value` - Double array of values corresponding to `type`. May be `null` if `maxtypes` is zero.
      Throws:
        `XPRSprobException`

    - #### nlpGetFormulaRows

          public void nlpGetFormulaRows​(IntHolder p_nformulas,
                                        int[] rowind)
                                 throws XPRSprobException

      Retrieve the list of positions of the nonlinear formulas in the problem
      Parameters:
        `p_nformulas` - Integer used to return the total number of nonlinear formulas in the problem.
        `rowind` - Integer array used for returning the row positions of the nonlinear formulas. May be null if not required.
      Throws:
        `XPRSprobException`

    - #### nlpLoadFormulas

          public void nlpLoadFormulas​(int nnlpcoefs,
                                      int[] rowind,
                                      int[] formulastart,
                                      int parsed,
                                      int[] type,
                                      double[] value)
                               throws XPRSprobException

      Load non-linear formulas into the SLP problem
      Parameters:
        `nnlpcoefs` - Number of non-linear coefficients to be loaded.
        `rowind` - Integer array holding index of row for the coefficient.
        `formulastart` - Integer array of length `nnlpcoefs+1` holding the start position in the arrays `type` and `value` of the formula for the coefficients. The last element should be set to the next position after the end of the last formula.
        `parsed` - Integer indicating whether the token arrays are formatted as internal unparsed ( `parsed`=0) or internal parsed reverse Polish ( `parsed`=1).
        `type` - Array of token types providing the formula for each coefficient.
        `value` - Array of values corresponding to the types in `type`.
      Throws:
        `XPRSprobException`

    - #### nlpDelFormulas

          public void nlpDelFormulas​(int nformulas,
                                     int[] rowind)
                              throws XPRSprobException

      Delete nonlinear formulas from the current problem
      Parameters:
        `nformulas` - Number of SLP nonlinear formulas to delete.
        `rowind` - Row indices of the SLP nonlinear formulas to delete.
      Throws:
        `XPRSprobException`

    - #### nlpGetFormulaString

          @Deprecated
          public void nlpGetFormulaString​(int row,
                                          StringHolder formula,
                                          int maxbytes)
                                   throws XPRSprobException

      Deprecated.
      since 42.00.
      Retrieve a single matrix formula in a character string.
      Parameters:
        `row` - Integer holding the row index for the formula.
        `formula` - Character buffer in which the formula will be placed in the same format as used for input from a file. The formula will be null terminated.
        `maxbytes` - Maximum length of returned formula.
      Throws:
        `XPRSprobException`

    - #### nlpGetFormulaStr

          public void nlpGetFormulaStr​(int row,
                                       StringHolder formula,
                                       int maxbytes,
                                       IntHolder p_nbytes)
                                throws XPRSprobException

      Retrieve a single matrix formula in a character string.
      Parameters:
        `row` - Integer holding the row index for the formula.
        `formula` - Character buffer in which the formula will be placed in the same format as used for input from a file. The formula will be null terminated. This argument may be `null` if `maxbytes` is zero.
        `maxbytes` - Length of the `formula` buffer.
        `p_nbytes` - Will be set to the length of the formula, not including the null terminator.
      Throws:
        `XPRSprobException`

    - #### nlpSetInitVal

          public void nlpSetInitVal​(int nvars,
                                    int[] colind,
                                    double[] initial)
                             throws XPRSprobException

      Set the initial value of a variable

      Examples using `nlpSetInitVal`:

      - Glidert.java
      Parameters:
        `nvars` - Number of variables for which the initial value is to be set.
        `colind` - Array of length `nvars` with index of the column for which the initial value is provided.
        `initial` - Array of length `nvars` with the initial value.
      Throws:
        `XPRSprobException`

    - #### nlpSetInitVal

          public void nlpSetInitVal​(int x,
                                    double value)
                             throws XPRSprobException

      Convenience wrapper for `nlpSetInitVal(int, int[], double[])`. This function only modifies a single element.

      Examples using `nlpSetInitVal`:

      - Glidert.java
      Parameters:
        `x` - Index of element to modify.
        `value` - New value for `x`.
      Throws:
        `XPRSprobException`
      See Also:
        `nlpSetInitVal(int, int[], double[])`

    - #### slpGetCoefFormula

          public void slpGetCoefFormula​(int row,
                                        int col,
                                        DoubleHolder p_factor,
                                        int parsed,
                                        int maxtypes,
                                        IntHolder p_ntypes,
                                        int[] type,
                                        double[] value)
                                 throws XPRSprobException

      Retrieve a single matrix coefficient as a formula split into tokens. For a simpler version of this function see `XSLPgetformula`.
      Parameters:
        `row` - Integer holding the row index for the coefficient.
        `col` - Integer holding the column index for the coefficient.
        `p_factor` - Address of a double precision variable to receive the value of the constant factor multiplying the formula in the coefficient.
        `parsed` - Integer indicating whether the formula of the item is to be returned in internal unparsed format ( `parsed`=0) or parsed (reverse Polish) format ( `parsed`=1).
        `maxtypes` - Maximum number of tokens to return, i.e. length of the `type` and `value` arrays.
        `p_ntypes` - Number of tokens returned in type and value.
        `type` - Integer array to hold the token types for the formula. May be `null` if not required.
        `value` - Double array of values corresponding to `type`. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### slpGetCoefs

          public void slpGetCoefs​(IntHolder p_ncoefs,
                                  int[] rowind,
                                  int[] colind)
                           throws XPRSprobException

      Retrieve the list of positions of the nonlinear coefficients in the problem. For a simpler version of this function see `XSLPgetformularows`.
      Parameters:
        `p_ncoefs` - Integer used to return the total number of nonlinear coefficients in the problem.
        `rowind` - Integer array used for returning the row positions of the coefficients. May be null if not required.
        `colind` - Integer array used for returning the column positions of the coefficients. May be null if not required.
      Throws:
        `XPRSprobException`

    - #### slpLoadCoefs

          public void slpLoadCoefs​(int ncoefs,
                                   int[] rowind,
                                   int[] colind,
                                   double[] factor,
                                   int[] formulastart,
                                   int parsed,
                                   int[] type,
                                   double[] coef)
                            throws XPRSprobException

      Load non-linear coefficients into the SLP problem. For a simpler version of this function see `XSLPloadformulas`.
      Parameters:
        `ncoefs` - Number of non-linear coefficients to be loaded.
        `rowind` - Integer array holding index of row for the coefficient.
        `colind` - Integer array holding index of column for the coefficient.
        `factor` - Double array holding factor by which formula is scaled. If this is `null`, then a value of 1.0 will be used.
        `formulastart` - Integer array of length `ncoefs+1` holding the start position in the arrays `type` and `coef` of the formula for the coefficients. The last element should be set to the next position after the end of the last formula.
        `parsed` - Integer indicating whether the token arrays are formatted as internal unparsed ( `parsed`=0) or internal parsed reverse Polish ( `parsed`=1).
        `type` - Array of token types providing the formula for each coefficient.
        `coef` - Array of values corresponding to the types in `type`.
      Throws:
        `XPRSprobException`

    - #### slpDelCoefs

          public void slpDelCoefs​(int ncoefs,
                                  int[] rowind,
                                  int[] colind)
                           throws XPRSprobException

      Delete coefficients from the current problem. For a simpler version of this function see `XSLPdelformulas`.
      Parameters:
        `ncoefs` - Number of SLP coefficients to delete.
        `rowind` - Row indices of the SLP coefficients to delete.
        `colind` - Column indices of the SLP coefficients to delete.
      Throws:
        `XPRSprobException`

    - #### slpDelCoefs

          public void slpDelCoefs​(int x,
                                  int value)
                           throws XPRSprobException

      Convenience wrapper for `slpDelCoefs(int, int[], int[])`. This function only modifies a single element.
      Parameters:
        `x` - Index of element to modify.
        `value` - New value for `x`.
      Throws:
        `XPRSprobException`
      See Also:
        `slpDelCoefs(int, int[], int[])`

    - #### slpGetCCoef

          @Deprecated
          public void slpGetCCoef​(int row,
                                  int col,
                                  DoubleHolder p_factor,
                                  StringHolder formula,
                                  int maxbytes)
                           throws XPRSprobException

      Deprecated.
      since 42.00.
      Retrieve a single matrix coefficient as a formula in a character string. For a simpler version of this function see `nlpGetFormulaStr`.
      Parameters:
        `row` - Integer holding the row index for the coefficient.
        `col` - Integer holding the column index for the coefficient.
        `p_factor` - Address of a double precision variable to receive the value of the constant factor multiplying the formula in the coefficient.
        `formula` - Character buffer in which the formula will be placed in the same format as used for input from a file. The formula will be null terminated.
        `maxbytes` - Maximum length of returned formula.
      Throws:
        `XPRSprobException`

    - #### slpGetCoefStr

          public void slpGetCoefStr​(int row,
                                    int col,
                                    DoubleHolder p_factor,
                                    StringHolder formula,
                                    int maxbytes,
                                    IntHolder p_nbytes)
                             throws XPRSprobException

      Retrieve a single matrix coefficient as a formula in a character string. For a simpler version of this function see `nlpGetFormulaStr`.
      Parameters:
        `row` - Integer holding the row index for the coefficient.
        `col` - Integer holding the column index for the coefficient.
        `p_factor` - Address of a double precision variable to receive the value of the constant factor multiplying the formula in the coefficient.
        `formula` - Character buffer in which the formula will be placed in the same format as used for input from a file. The formula will be null terminated. This argument may be `null` if `maxbytes` is zero.
        `maxbytes` - Length of the `formula` buffer.
        `p_nbytes` - Will be set to the length of the formula, not including the null terminator.
      Throws:
        `XPRSprobException`

    - #### slpSetDetRow

          public void slpSetDetRow​(int nvars,
                                   int[] colind,
                                   int[] rowind)
                            throws XPRSprobException

      Set the determining row of a variable
      Parameters:
        `nvars` - The number of variables for which determining rows are set.
        `colind` - Array of length `nvars` with the index of the column for which the determining row is set.
        `rowind` - Array of length `nvars` with the index of the determining row.
      Throws:
        `XPRSprobException`

    - #### slpSetDetRow

          public void slpSetDetRow​(int x,
                                   int value)
                            throws XPRSprobException

      Convenience wrapper for `slpSetDetRow(int, int[], int[])`. This function only modifies a single element.
      Parameters:
        `x` - Index of element to modify.
        `value` - New value for `x`.
      Throws:
        `XPRSprobException`
      See Also:
        `slpSetDetRow(int, int[], int[])`

    - #### slpAddCoefs

          public void slpAddCoefs​(int ncoefs,
                                  int[] rowind,
                                  int[] colind,
                                  double[] factor,
                                  int[] formulastart,
                                  int parsed,
                                  int[] type,
                                  double[] value)
                           throws XPRSprobException

      Add non-linear coefficients to the SLP problem. For a simpler version of this function see `XSLPaddformulas`.
      Parameters:
        `ncoefs` - Number of non-linear coefficients to be added.
        `rowind` - Integer array holding index of row for the coefficient.
        `colind` - Integer array holding index of column for the coefficient.
        `factor` - Double array holding factor by which the formula is scaled. If this is `null`, then a value of 1.0 will be used.
        `formulastart` - Integer array of length `ncoefs+1` holding the start position in the arrays `type` and `value` of the formula for the coefficients. The last element should be set to the next position after the end of the last formula.
        `parsed` - Integer indicating whether the token arrays are formatted as internal unparsed ( `parsed`=0) or internal parsed reverse Polish ( `parsed`=1).
        `type` - Array of token types providing the formula for each coefficient.
        `value` - Array of values corresponding to the types in `type`.
      Throws:
        `XPRSprobException`

    - #### slpChgCCoef

          @Deprecated
          public void slpChgCCoef​(int row,
                                  int col,
                                  DoubleHolder factor,
                                  java.lang.String formula)
                           throws XPRSprobException

      Deprecated.
      since 42.00.
      Add or change a single matrix coefficient using a character string for the formula. For a simpler version of this function see `nlpChgFormulaStr`.
      Parameters:
        `row` - The index of the matrix row for the coefficient.
        `col` - The index of the matrix column for the coefficient.
        `factor` - Address of a double precision variable holding the constant multiplier for the formula. If `factor` is `null`, a value of 1.0 will be used.
        `formula` - Character string holding the formula with the tokens separated by spaces.
      Throws:
        `XPRSprobException`

    - #### slpChgCoefStr

          public void slpChgCoefStr​(int row,
                                    int col,
                                    DoubleHolder factor,
                                    java.lang.String formula)
                             throws XPRSprobException

      Add or change a single matrix coefficient using a character string for the formula. For a simpler version of this function see `nlpChgFormulaStr`.
      Parameters:
        `row` - The index of the matrix row for the coefficient.
        `col` - The index of the matrix column for the coefficient.
        `factor` - Address of a double precision variable holding the constant multiplier for the formula. If `factor` is `null`, a value of 1.0 will be used.
        `formula` - Character string holding the formula with the tokens separated by spaces.
      Throws:
        `XPRSprobException`

    - #### slpChgCoef

          public void slpChgCoef​(int row,
                                 int col,
                                 DoubleHolder factor,
                                 int parsed,
                                 int[] type,
                                 double[] value)
                          throws XPRSprobException

      Add or change a single matrix coefficient using a parsed or unparsed formula. For a simpler version of this function see `XSLPchgformula`.
      Parameters:
        `row` - The index of the matrix row for the coefficient.
        `col` - The index of the matrix column for the coefficient.
        `factor` - Address of a double precision variable holding the constant multiplier for the formula. If `factor` is `null`, a value of 1.0 will be used.
        `parsed` - Integer indicating the whether the token arrays are formatted as internal unparsed ( `parsed`=0) or internal parsed reverse Polish ( `parsed`=1).
        `type` - Array of token types providing the description and formula for each item.
        `value` - Array of values corresponding to the types in `type`.
      Throws:
        `XPRSprobException`

    - #### slpCascadeSol

          public void slpCascadeSol()
                             throws XPRSprobException

      Re-calculate consistent values for SLP variables based on the current values of the remaining variables.
      Throws:
        `XPRSprobException`

    - #### slpCascadeOrder

          public void slpCascadeOrder()
                               throws XPRSprobException

      Establish a re-calculation sequence for SLP variables with determining rows.
      Throws:
        `XPRSprobException`

    - #### slpChgRowStatus

          public void slpChgRowStatus​(int row,
                                      IntHolder status)
                               throws XPRSprobException

      Change the status setting of a constraint
      Parameters:
        `row` - The index of the matrix row to be changed.
        `status` - Address of an integer holding a bitmap with the new status settings. If the status is to be changed, always get the current status first (use `XSLPgetrowstatus`) and then change settings as required. The only settings likely to be changed are:
        - `Bit 11`: Set if row must not have a penalty error vector. This is the equivalent of an enforced constraint (SLPDATA type EC).
      Throws:
        `XPRSprobException`

    - #### slpChgRowWt

          public void slpChgRowWt​(int row,
                                  DoubleHolder weight)
                           throws XPRSprobException

      Set or change the initial penalty error weight for a row
      Parameters:
        `row` - The index of the row whose weight is to be set or changed.
        `weight` - Address of a double precision variable holding the new value of the weight. May be `null` if not required.
      Throws:
        `XPRSprobException`

    - #### slpChgDeltaType

          public void slpChgDeltaType​(int nvars,
                                      int[] varind,
                                      int[] deltatypes,
                                      double[] values)
                               throws XPRSprobException

      Changes the type of the delta assigned to a nonlinear variable
      Parameters:
        `nvars` - The number of SLP variables to change the delta type for.
        `varind` - Indices of the variables to change the deltas for.
        `deltatypes` - Type of the delta variable:
        - `0 (XSLP_DELTA_CONT)`: Differentiable variable, default.
        - `1 (XSLP_DELTA_SEMICONT)`: Variable where a minimum perturbation size given in `values` may be required before a significant change in the problem is achieved.
        - `2 (XSLP_DELTA_INTEGER)`: Variable defined over the grid size given in `values`.
        - `3 (XSLP_DELTA_EXPLORE)`: Variable where a meaningful step size should automatically be detected, with an upper limit given in `values`.
        `values` - Grid or minimum step sizes for the variables.
      Throws:
        `XPRSprobException`

    - #### slpChgCascadeNLimit

          public void slpChgCascadeNLimit​(int col,
                                          int limit)
                                   throws XPRSprobException

      Set a variable specific cascade iteration limit
      Parameters:
        `col` - The index of the column corresponding to the SLP variable for which the cascading limit is to be imposed.
        `limit` - The new cascading iteration limit.
      Throws:
        `XPRSprobException`

    - #### slpConstruct

          public void slpConstruct()
                            throws XPRSprobException

      Create the full augmented SLP matrix and data structures, ready for optimization
      Throws:
        `XPRSprobException`

    - #### slpGetRowStatus

          public void slpGetRowStatus​(int row,
                                      IntHolder p_status)
                               throws XPRSprobException

      Retrieve the status setting of a constraint
      Parameters:
        `row` - The index of the matrix row whose data is to be obtained.
        `p_status` - Address of an integer to receive the status settings.
      Throws:
        `XPRSprobException`

    - #### slpGetRowStatus

          public int slpGetRowStatus​(int row)

      Convenience wrapper for `slpGetRowStatus(int,com.dashoptimization.IntHolder)` that returns the output argument.
      Parameters:
        `row` - The index of the matrix row whose data is to be obtained.
      Returns:
        The value that the wrapped function would return in p_status.

    - #### slpGetRowWT

          public void slpGetRowWT​(int row,
                                  DoubleHolder p_weight)
                           throws XPRSprobException

      Get the initial penalty error weight for a row
      Parameters:
        `row` - The index of the row whose weight is to be retrieved.
        `p_weight` - Address of a double precision variable to receive the value of the weight.
      Throws:
        `XPRSprobException`

    - #### slpGetRowWT

          public double slpGetRowWT​(int row)

      Convenience wrapper for `slpGetRowWT(int,com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `row` - The index of the row whose weight is to be retrieved.
      Returns:
        The value that the wrapped function would return in p_weight.

    - #### slpEvaluateCoef

          public void slpEvaluateCoef​(int row,
                                      int col,
                                      DoubleHolder p_value)
                               throws XPRSprobException

      Evaluate a coefficient using the current values of the variables
      Parameters:
        `row` - Integer index of the row.
        `col` - Integer index of the column.
        `p_value` - Address of a double precision value to receive the result of the calculation.
      Throws:
        `XPRSprobException`

    - #### slpEvaluateCoef

          public double slpEvaluateCoef​(int row,
                                        int col)

      Convenience wrapper for `slpEvaluateCoef(int,int,com.dashoptimization.DoubleHolder)` that returns the output argument.
      Parameters:
        `row` - Integer index of the row.
        `col` - Integer index of the column.
      Returns:
        The value that the wrapped function would return in p_value.

    - #### slpReInitialize

          public void slpReInitialize()
                               throws XPRSprobException

      Reset the SLP problem to match a just augmented system
      Throws:
        `XPRSprobException`

    - #### slpUnConstruct

          public void slpUnConstruct()
                              throws XPRSprobException

      Removes the augmentation and returns the problem to its pre-linearization state
      Throws:
        `XPRSprobException`

    - #### slpUpdateLinearization

          public void slpUpdateLinearization()
                                      throws XPRSprobException

      Updates the current linearization
      Throws:
        `XPRSprobException`

    - #### slpFixPenalties

          public void slpFixPenalties​(IntHolder p_status)
                               throws XPRSprobException

      Fixe the values of the error vectors
      Parameters:
        `p_status` - Return status after fixing the penalty variables: 0 is successful, nonzero otherwise.
      Throws:
        `XPRSprobException`

    - #### nlpPostsolveProb

          public void nlpPostsolveProb()
                                throws XPRSprobException

      Restores the problem to its pre-solve state
      Throws:
        `XPRSprobException`

    - #### nlpCalcSlacks

          public void nlpCalcSlacks​(double[] solution,
                                    double[] slack)
                             throws XPRSprobException

      Calculate the slack values for the provided solution in the non-linear problem
      Parameters:
        `solution` - The solution for which the slacks are requested.
        `slack` - Array of length `ROWS` to hold the slacks.
      Throws:
        `XPRSprobException`

    - #### addLpLogListener

          public void addLpLogListener​(XPRSlpLogListener listener)
                                throws XPRSexception

      Add a listener for the LpLog callback. Note that an object can have multiple LpLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all LpLog listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addLpLogListener

          public void addLpLogListener​(XPRSlpLogListener listener,
                                       java.lang.Object data)
                                throws XPRSexception

      Add a listener for the LpLog callback. Note that an object can have multiple LpLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all LpLog listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addLpLogListener

          public void addLpLogListener​(XPRSlpLogListener listener,
                                       int priority)
                                throws XPRSexception

      Add a listener for the LpLog callback. Note that an object can have multiple LpLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all LpLog listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addLpLogListener

          public void addLpLogListener​(XPRSlpLogListener listener,
                                       java.lang.Object data,
                                       int priority)
                                throws XPRSexception

      Add a listener for the LpLog callback. Note that an object can have multiple LpLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all LpLog listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeLpLogListener

          public void removeLpLogListener​(XPRSlpLogListener listener)
                                   throws XPRSexception

      Removes the given LpLog listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeLpLogListener

          public void removeLpLogListener​(XPRSlpLogListener listener,
                                          java.lang.Object data)
                                   throws XPRSexception

      Removes the given LpLog listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeLpLogListeners

          public void removeLpLogListeners()
                                    throws XPRSexception

      Remove all listeners for the LpLog callback
      Throws:
        `XPRSexception`

    - #### addMipLogListener

          public void addMipLogListener​(XPRSmipLogListener listener)
                                 throws XPRSexception

      Add a listener for the MipLog callback. Note that an object can have multiple MipLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MipLog listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addMipLogListener

          public void addMipLogListener​(XPRSmipLogListener listener,
                                        java.lang.Object data)
                                 throws XPRSexception

      Add a listener for the MipLog callback. Note that an object can have multiple MipLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MipLog listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addMipLogListener

          public void addMipLogListener​(XPRSmipLogListener listener,
                                        int priority)
                                 throws XPRSexception

      Add a listener for the MipLog callback. Note that an object can have multiple MipLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MipLog listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addMipLogListener

          public void addMipLogListener​(XPRSmipLogListener listener,
                                        java.lang.Object data,
                                        int priority)
                                 throws XPRSexception

      Add a listener for the MipLog callback. Note that an object can have multiple MipLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MipLog listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeMipLogListener

          public void removeMipLogListener​(XPRSmipLogListener listener)
                                    throws XPRSexception

      Removes the given MipLog listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeMipLogListener

          public void removeMipLogListener​(XPRSmipLogListener listener,
                                           java.lang.Object data)
                                    throws XPRSexception

      Removes the given MipLog listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeMipLogListeners

          public void removeMipLogListeners()
                                     throws XPRSexception

      Remove all listeners for the MipLog callback
      Throws:
        `XPRSexception`

    - #### addCutLogListener

          public void addCutLogListener​(XPRScutLogListener listener)
                                 throws XPRSexception

      Add a listener for the CutLog callback. Note that an object can have multiple CutLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all CutLog listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addCutLogListener

          public void addCutLogListener​(XPRScutLogListener listener,
                                        java.lang.Object data)
                                 throws XPRSexception

      Add a listener for the CutLog callback. Note that an object can have multiple CutLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all CutLog listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addCutLogListener

          public void addCutLogListener​(XPRScutLogListener listener,
                                        int priority)
                                 throws XPRSexception

      Add a listener for the CutLog callback. Note that an object can have multiple CutLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all CutLog listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addCutLogListener

          public void addCutLogListener​(XPRScutLogListener listener,
                                        java.lang.Object data,
                                        int priority)
                                 throws XPRSexception

      Add a listener for the CutLog callback. Note that an object can have multiple CutLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all CutLog listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeCutLogListener

          public void removeCutLogListener​(XPRScutLogListener listener)
                                    throws XPRSexception

      Removes the given CutLog listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeCutLogListener

          public void removeCutLogListener​(XPRScutLogListener listener,
                                           java.lang.Object data)
                                    throws XPRSexception

      Removes the given CutLog listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeCutLogListeners

          public void removeCutLogListeners()
                                     throws XPRSexception

      Remove all listeners for the CutLog callback
      Throws:
        `XPRSexception`

    - #### addBarLogListener

          public void addBarLogListener​(XPRSbarLogListener listener)
                                 throws XPRSexception

      Add a listener for the BarLog callback. Note that an object can have multiple BarLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all BarLog listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addBarLogListener

          public void addBarLogListener​(XPRSbarLogListener listener,
                                        java.lang.Object data)
                                 throws XPRSexception

      Add a listener for the BarLog callback. Note that an object can have multiple BarLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all BarLog listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addBarLogListener

          public void addBarLogListener​(XPRSbarLogListener listener,
                                        int priority)
                                 throws XPRSexception

      Add a listener for the BarLog callback. Note that an object can have multiple BarLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all BarLog listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addBarLogListener

          public void addBarLogListener​(XPRSbarLogListener listener,
                                        java.lang.Object data,
                                        int priority)
                                 throws XPRSexception

      Add a listener for the BarLog callback. Note that an object can have multiple BarLog listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all BarLog listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeBarLogListener

          public void removeBarLogListener​(XPRSbarLogListener listener)
                                    throws XPRSexception

      Removes the given BarLog listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeBarLogListener

          public void removeBarLogListener​(XPRSbarLogListener listener,
                                           java.lang.Object data)
                                    throws XPRSexception

      Removes the given BarLog listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeBarLogListeners

          public void removeBarLogListeners()
                                     throws XPRSexception

      Remove all listeners for the BarLog callback
      Throws:
        `XPRSexception`

    - #### addOptNodeListener

          public void addOptNodeListener​(XPRSoptNodeListener listener)
                                  throws XPRSexception

      Add a listener for the OptNode callback. Note that an object can have multiple OptNode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all OptNode listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addOptNodeListener

          public void addOptNodeListener​(XPRSoptNodeListener listener,
                                         java.lang.Object data)
                                  throws XPRSexception

      Add a listener for the OptNode callback. Note that an object can have multiple OptNode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all OptNode listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addOptNodeListener

          public void addOptNodeListener​(XPRSoptNodeListener listener,
                                         int priority)
                                  throws XPRSexception

      Add a listener for the OptNode callback. Note that an object can have multiple OptNode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all OptNode listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addOptNodeListener

          public void addOptNodeListener​(XPRSoptNodeListener listener,
                                         java.lang.Object data,
                                         int priority)
                                  throws XPRSexception

      Add a listener for the OptNode callback. Note that an object can have multiple OptNode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all OptNode listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeOptNodeListener

          public void removeOptNodeListener​(XPRSoptNodeListener listener)
                                     throws XPRSexception

      Removes the given OptNode listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeOptNodeListener

          public void removeOptNodeListener​(XPRSoptNodeListener listener,
                                            java.lang.Object data)
                                     throws XPRSexception

      Removes the given OptNode listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeOptNodeListeners

          public void removeOptNodeListeners()
                                      throws XPRSexception

      Remove all listeners for the OptNode callback
      Throws:
        `XPRSexception`

    - #### addPreNodeListener

          public void addPreNodeListener​(XPRSpreNodeListener listener)
                                  throws XPRSexception

      Add a listener for the PreNode callback. Note that an object can have multiple PreNode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all PreNode listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addPreNodeListener

          public void addPreNodeListener​(XPRSpreNodeListener listener,
                                         java.lang.Object data)
                                  throws XPRSexception

      Add a listener for the PreNode callback. Note that an object can have multiple PreNode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all PreNode listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addPreNodeListener

          public void addPreNodeListener​(XPRSpreNodeListener listener,
                                         int priority)
                                  throws XPRSexception

      Add a listener for the PreNode callback. Note that an object can have multiple PreNode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all PreNode listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addPreNodeListener

          public void addPreNodeListener​(XPRSpreNodeListener listener,
                                         java.lang.Object data,
                                         int priority)
                                  throws XPRSexception

      Add a listener for the PreNode callback. Note that an object can have multiple PreNode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all PreNode listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removePreNodeListener

          public void removePreNodeListener​(XPRSpreNodeListener listener)
                                     throws XPRSexception

      Removes the given PreNode listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removePreNodeListener

          public void removePreNodeListener​(XPRSpreNodeListener listener,
                                            java.lang.Object data)
                                     throws XPRSexception

      Removes the given PreNode listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removePreNodeListeners

          public void removePreNodeListeners()
                                      throws XPRSexception

      Remove all listeners for the PreNode callback
      Throws:
        `XPRSexception`

    - #### addInfNodeListener

          public void addInfNodeListener​(XPRSinfNodeListener listener)
                                  throws XPRSexception

      Add a listener for the InfNode callback. Note that an object can have multiple InfNode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all InfNode listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addInfNodeListener

          public void addInfNodeListener​(XPRSinfNodeListener listener,
                                         java.lang.Object data)
                                  throws XPRSexception

      Add a listener for the InfNode callback. Note that an object can have multiple InfNode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all InfNode listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addInfNodeListener

          public void addInfNodeListener​(XPRSinfNodeListener listener,
                                         int priority)
                                  throws XPRSexception

      Add a listener for the InfNode callback. Note that an object can have multiple InfNode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all InfNode listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addInfNodeListener

          public void addInfNodeListener​(XPRSinfNodeListener listener,
                                         java.lang.Object data,
                                         int priority)
                                  throws XPRSexception

      Add a listener for the InfNode callback. Note that an object can have multiple InfNode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all InfNode listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeInfNodeListener

          public void removeInfNodeListener​(XPRSinfNodeListener listener)
                                     throws XPRSexception

      Removes the given InfNode listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeInfNodeListener

          public void removeInfNodeListener​(XPRSinfNodeListener listener,
                                            java.lang.Object data)
                                     throws XPRSexception

      Removes the given InfNode listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeInfNodeListeners

          public void removeInfNodeListeners()
                                      throws XPRSexception

      Remove all listeners for the InfNode callback
      Throws:
        `XPRSexception`

    - #### addNodeCutoffListener

          public void addNodeCutoffListener​(XPRSnodeCutoffListener listener)
                                     throws XPRSexception

      Add a listener for the NodeCutoff callback. Note that an object can have multiple NodeCutoff listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all NodeCutoff listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addNodeCutoffListener

          public void addNodeCutoffListener​(XPRSnodeCutoffListener listener,
                                            java.lang.Object data)
                                     throws XPRSexception

      Add a listener for the NodeCutoff callback. Note that an object can have multiple NodeCutoff listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all NodeCutoff listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addNodeCutoffListener

          public void addNodeCutoffListener​(XPRSnodeCutoffListener listener,
                                            int priority)
                                     throws XPRSexception

      Add a listener for the NodeCutoff callback. Note that an object can have multiple NodeCutoff listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all NodeCutoff listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addNodeCutoffListener

          public void addNodeCutoffListener​(XPRSnodeCutoffListener listener,
                                            java.lang.Object data,
                                            int priority)
                                     throws XPRSexception

      Add a listener for the NodeCutoff callback. Note that an object can have multiple NodeCutoff listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all NodeCutoff listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeNodeCutoffListener

          public void removeNodeCutoffListener​(XPRSnodeCutoffListener listener)
                                        throws XPRSexception

      Removes the given NodeCutoff listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeNodeCutoffListener

          public void removeNodeCutoffListener​(XPRSnodeCutoffListener listener,
                                               java.lang.Object data)
                                        throws XPRSexception

      Removes the given NodeCutoff listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeNodeCutoffListeners

          public void removeNodeCutoffListeners()
                                         throws XPRSexception

      Remove all listeners for the NodeCutoff callback
      Throws:
        `XPRSexception`

    - #### addIntSolListener

          public void addIntSolListener​(XPRSintSolListener listener)
                                 throws XPRSexception

      Add a listener for the IntSol callback. Note that an object can have multiple IntSol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all IntSol listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addIntSolListener

          public void addIntSolListener​(XPRSintSolListener listener,
                                        java.lang.Object data)
                                 throws XPRSexception

      Add a listener for the IntSol callback. Note that an object can have multiple IntSol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all IntSol listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addIntSolListener

          public void addIntSolListener​(XPRSintSolListener listener,
                                        int priority)
                                 throws XPRSexception

      Add a listener for the IntSol callback. Note that an object can have multiple IntSol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all IntSol listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addIntSolListener

          public void addIntSolListener​(XPRSintSolListener listener,
                                        java.lang.Object data,
                                        int priority)
                                 throws XPRSexception

      Add a listener for the IntSol callback. Note that an object can have multiple IntSol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all IntSol listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeIntSolListener

          public void removeIntSolListener​(XPRSintSolListener listener)
                                    throws XPRSexception

      Removes the given IntSol listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeIntSolListener

          public void removeIntSolListener​(XPRSintSolListener listener,
                                           java.lang.Object data)
                                    throws XPRSexception

      Removes the given IntSol listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeIntSolListeners

          public void removeIntSolListeners()
                                     throws XPRSexception

      Remove all listeners for the IntSol callback
      Throws:
        `XPRSexception`

    - #### addPreIntsolListener

          public void addPreIntsolListener​(XPRSpreIntsolListener listener)
                                    throws XPRSexception

      Add a listener for the PreIntsol callback. Note that an object can have multiple PreIntsol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all PreIntsol listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addPreIntsolListener

          public void addPreIntsolListener​(XPRSpreIntsolListener listener,
                                           java.lang.Object data)
                                    throws XPRSexception

      Add a listener for the PreIntsol callback. Note that an object can have multiple PreIntsol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all PreIntsol listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addPreIntsolListener

          public void addPreIntsolListener​(XPRSpreIntsolListener listener,
                                           int priority)
                                    throws XPRSexception

      Add a listener for the PreIntsol callback. Note that an object can have multiple PreIntsol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all PreIntsol listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addPreIntsolListener

          public void addPreIntsolListener​(XPRSpreIntsolListener listener,
                                           java.lang.Object data,
                                           int priority)
                                    throws XPRSexception

      Add a listener for the PreIntsol callback. Note that an object can have multiple PreIntsol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all PreIntsol listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removePreIntsolListener

          public void removePreIntsolListener​(XPRSpreIntsolListener listener)
                                       throws XPRSexception

      Removes the given PreIntsol listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removePreIntsolListener

          public void removePreIntsolListener​(XPRSpreIntsolListener listener,
                                              java.lang.Object data)
                                       throws XPRSexception

      Removes the given PreIntsol listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removePreIntsolListeners

          public void removePreIntsolListeners()
                                        throws XPRSexception

      Remove all listeners for the PreIntsol callback
      Throws:
        `XPRSexception`

    - #### addMessageListener

          public void addMessageListener​(XPRSmessageListener listener)
                                  throws XPRSexception

      Add a listener for the Message callback. Note that an object can have multiple Message listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all Message listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addMessageListener

          public void addMessageListener​(XPRSmessageListener listener,
                                         java.lang.Object data)
                                  throws XPRSexception

      Add a listener for the Message callback. Note that an object can have multiple Message listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all Message listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addMessageListener

          public void addMessageListener​(XPRSmessageListener listener,
                                         int priority)
                                  throws XPRSexception

      Add a listener for the Message callback. Note that an object can have multiple Message listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all Message listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addMessageListener

          public void addMessageListener​(XPRSmessageListener listener,
                                         java.lang.Object data,
                                         int priority)
                                  throws XPRSexception

      Add a listener for the Message callback. Note that an object can have multiple Message listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all Message listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeMessageListener

          public void removeMessageListener​(XPRSmessageListener listener)
                                     throws XPRSexception

      Removes the given Message listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeMessageListener

          public void removeMessageListener​(XPRSmessageListener listener,
                                            java.lang.Object data)
                                     throws XPRSexception

      Removes the given Message listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeMessageListeners

          public void removeMessageListeners()
                                      throws XPRSexception

      Remove all listeners for the Message callback
      Throws:
        `XPRSexception`

    - #### addMipThreadListener

          public void addMipThreadListener​(XPRSmipThreadListener listener)
                                    throws XPRSexception

      Add a listener for the MipThread callback. Note that an object can have multiple MipThread listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MipThread listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addMipThreadListener

          public void addMipThreadListener​(XPRSmipThreadListener listener,
                                           java.lang.Object data)
                                    throws XPRSexception

      Add a listener for the MipThread callback. Note that an object can have multiple MipThread listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MipThread listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addMipThreadListener

          public void addMipThreadListener​(XPRSmipThreadListener listener,
                                           int priority)
                                    throws XPRSexception

      Add a listener for the MipThread callback. Note that an object can have multiple MipThread listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MipThread listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addMipThreadListener

          public void addMipThreadListener​(XPRSmipThreadListener listener,
                                           java.lang.Object data,
                                           int priority)
                                    throws XPRSexception

      Add a listener for the MipThread callback. Note that an object can have multiple MipThread listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MipThread listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeMipThreadListener

          public void removeMipThreadListener​(XPRSmipThreadListener listener)
                                       throws XPRSexception

      Removes the given MipThread listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeMipThreadListener

          public void removeMipThreadListener​(XPRSmipThreadListener listener,
                                              java.lang.Object data)
                                       throws XPRSexception

      Removes the given MipThread listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeMipThreadListeners

          public void removeMipThreadListeners()
                                        throws XPRSexception

      Remove all listeners for the MipThread callback
      Throws:
        `XPRSexception`

    - #### addDestroyMTListener

          public void addDestroyMTListener​(XPRSdestroyMTListener listener)
                                    throws XPRSexception

      Add a listener for the DestroyMT callback. Note that an object can have multiple DestroyMT listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all DestroyMT listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addDestroyMTListener

          public void addDestroyMTListener​(XPRSdestroyMTListener listener,
                                           java.lang.Object data)
                                    throws XPRSexception

      Add a listener for the DestroyMT callback. Note that an object can have multiple DestroyMT listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all DestroyMT listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addDestroyMTListener

          public void addDestroyMTListener​(XPRSdestroyMTListener listener,
                                           int priority)
                                    throws XPRSexception

      Add a listener for the DestroyMT callback. Note that an object can have multiple DestroyMT listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all DestroyMT listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addDestroyMTListener

          public void addDestroyMTListener​(XPRSdestroyMTListener listener,
                                           java.lang.Object data,
                                           int priority)
                                    throws XPRSexception

      Add a listener for the DestroyMT callback. Note that an object can have multiple DestroyMT listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all DestroyMT listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeDestroyMTListener

          public void removeDestroyMTListener​(XPRSdestroyMTListener listener)
                                       throws XPRSexception

      Removes the given DestroyMT listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeDestroyMTListener

          public void removeDestroyMTListener​(XPRSdestroyMTListener listener,
                                              java.lang.Object data)
                                       throws XPRSexception

      Removes the given DestroyMT listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeDestroyMTListeners

          public void removeDestroyMTListeners()
                                        throws XPRSexception

      Remove all listeners for the DestroyMT callback
      Throws:
        `XPRSexception`

    - #### addNewnodeListener

          public void addNewnodeListener​(XPRSnewnodeListener listener)
                                  throws XPRSexception

      Add a listener for the Newnode callback. Note that an object can have multiple Newnode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all Newnode listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addNewnodeListener

          public void addNewnodeListener​(XPRSnewnodeListener listener,
                                         java.lang.Object data)
                                  throws XPRSexception

      Add a listener for the Newnode callback. Note that an object can have multiple Newnode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all Newnode listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addNewnodeListener

          public void addNewnodeListener​(XPRSnewnodeListener listener,
                                         int priority)
                                  throws XPRSexception

      Add a listener for the Newnode callback. Note that an object can have multiple Newnode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all Newnode listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addNewnodeListener

          public void addNewnodeListener​(XPRSnewnodeListener listener,
                                         java.lang.Object data,
                                         int priority)
                                  throws XPRSexception

      Add a listener for the Newnode callback. Note that an object can have multiple Newnode listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all Newnode listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeNewnodeListener

          public void removeNewnodeListener​(XPRSnewnodeListener listener)
                                     throws XPRSexception

      Removes the given Newnode listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeNewnodeListener

          public void removeNewnodeListener​(XPRSnewnodeListener listener,
                                            java.lang.Object data)
                                     throws XPRSexception

      Removes the given Newnode listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeNewnodeListeners

          public void removeNewnodeListeners()
                                      throws XPRSexception

      Remove all listeners for the Newnode callback
      Throws:
        `XPRSexception`

    - #### addBarIterationListener

          public void addBarIterationListener​(XPRSbarIterationListener listener)
                                       throws XPRSexception

      Add a listener for the BarIteration callback. Note that an object can have multiple BarIteration listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all BarIteration listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addBarIterationListener

          public void addBarIterationListener​(XPRSbarIterationListener listener,
                                              java.lang.Object data)
                                       throws XPRSexception

      Add a listener for the BarIteration callback. Note that an object can have multiple BarIteration listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all BarIteration listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addBarIterationListener

          public void addBarIterationListener​(XPRSbarIterationListener listener,
                                              int priority)
                                       throws XPRSexception

      Add a listener for the BarIteration callback. Note that an object can have multiple BarIteration listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all BarIteration listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addBarIterationListener

          public void addBarIterationListener​(XPRSbarIterationListener listener,
                                              java.lang.Object data,
                                              int priority)
                                       throws XPRSexception

      Add a listener for the BarIteration callback. Note that an object can have multiple BarIteration listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all BarIteration listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeBarIterationListener

          public void removeBarIterationListener​(XPRSbarIterationListener listener)
                                          throws XPRSexception

      Removes the given BarIteration listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeBarIterationListener

          public void removeBarIterationListener​(XPRSbarIterationListener listener,
                                                 java.lang.Object data)
                                          throws XPRSexception

      Removes the given BarIteration listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeBarIterationListeners

          public void removeBarIterationListeners()
                                           throws XPRSexception

      Remove all listeners for the BarIteration callback
      Throws:
        `XPRSexception`

    - #### addPresolveListener

          public void addPresolveListener​(XPRSpresolveListener listener)
                                   throws XPRSexception

      Add a listener for the Presolve callback. Note that an object can have multiple Presolve listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all Presolve listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addPresolveListener

          public void addPresolveListener​(XPRSpresolveListener listener,
                                          java.lang.Object data)
                                   throws XPRSexception

      Add a listener for the Presolve callback. Note that an object can have multiple Presolve listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all Presolve listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addPresolveListener

          public void addPresolveListener​(XPRSpresolveListener listener,
                                          int priority)
                                   throws XPRSexception

      Add a listener for the Presolve callback. Note that an object can have multiple Presolve listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all Presolve listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addPresolveListener

          public void addPresolveListener​(XPRSpresolveListener listener,
                                          java.lang.Object data,
                                          int priority)
                                   throws XPRSexception

      Add a listener for the Presolve callback. Note that an object can have multiple Presolve listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all Presolve listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removePresolveListener

          public void removePresolveListener​(XPRSpresolveListener listener)
                                      throws XPRSexception

      Removes the given Presolve listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removePresolveListener

          public void removePresolveListener​(XPRSpresolveListener listener,
                                             java.lang.Object data)
                                      throws XPRSexception

      Removes the given Presolve listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removePresolveListeners

          public void removePresolveListeners()
                                       throws XPRSexception

      Remove all listeners for the Presolve callback
      Throws:
        `XPRSexception`

    - #### addChangeBranchObjectListener

          public void addChangeBranchObjectListener​(XPRSchangeBranchObjectListener listener)
                                             throws XPRSexception

      Add a listener for the ChangeBranchObject callback. Note that an object can have multiple ChangeBranchObject listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all ChangeBranchObject listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addChangeBranchObjectListener

          public void addChangeBranchObjectListener​(XPRSchangeBranchObjectListener listener,
                                                    java.lang.Object data)
                                             throws XPRSexception

      Add a listener for the ChangeBranchObject callback. Note that an object can have multiple ChangeBranchObject listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all ChangeBranchObject listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addChangeBranchObjectListener

          public void addChangeBranchObjectListener​(XPRSchangeBranchObjectListener listener,
                                                    int priority)
                                             throws XPRSexception

      Add a listener for the ChangeBranchObject callback. Note that an object can have multiple ChangeBranchObject listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all ChangeBranchObject listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addChangeBranchObjectListener

          public void addChangeBranchObjectListener​(XPRSchangeBranchObjectListener listener,
                                                    java.lang.Object data,
                                                    int priority)
                                             throws XPRSexception

      Add a listener for the ChangeBranchObject callback. Note that an object can have multiple ChangeBranchObject listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all ChangeBranchObject listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeChangeBranchObjectListener

          public void removeChangeBranchObjectListener​(XPRSchangeBranchObjectListener listener)
                                                throws XPRSexception

      Removes the given ChangeBranchObject listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeChangeBranchObjectListener

          public void removeChangeBranchObjectListener​(XPRSchangeBranchObjectListener listener,
                                                       java.lang.Object data)
                                                throws XPRSexception

      Removes the given ChangeBranchObject listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeChangeBranchObjectListeners

          public void removeChangeBranchObjectListeners()
                                                 throws XPRSexception

      Remove all listeners for the ChangeBranchObject callback
      Throws:
        `XPRSexception`

    - #### addComputeRestartListener

          public void addComputeRestartListener​(XPRScomputeRestartListener listener)
                                         throws XPRSexception

      Add a listener for the ComputeRestart callback. Note that an object can have multiple ComputeRestart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all ComputeRestart listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addComputeRestartListener

          public void addComputeRestartListener​(XPRScomputeRestartListener listener,
                                                java.lang.Object data)
                                         throws XPRSexception

      Add a listener for the ComputeRestart callback. Note that an object can have multiple ComputeRestart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all ComputeRestart listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addComputeRestartListener

          public void addComputeRestartListener​(XPRScomputeRestartListener listener,
                                                int priority)
                                         throws XPRSexception

      Add a listener for the ComputeRestart callback. Note that an object can have multiple ComputeRestart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all ComputeRestart listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addComputeRestartListener

          public void addComputeRestartListener​(XPRScomputeRestartListener listener,
                                                java.lang.Object data,
                                                int priority)
                                         throws XPRSexception

      Add a listener for the ComputeRestart callback. Note that an object can have multiple ComputeRestart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all ComputeRestart listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeComputeRestartListener

          public void removeComputeRestartListener​(XPRScomputeRestartListener listener)
                                            throws XPRSexception

      Removes the given ComputeRestart listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeComputeRestartListener

          public void removeComputeRestartListener​(XPRScomputeRestartListener listener,
                                                   java.lang.Object data)
                                            throws XPRSexception

      Removes the given ComputeRestart listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeComputeRestartListeners

          public void removeComputeRestartListeners()
                                             throws XPRSexception

      Remove all listeners for the ComputeRestart callback
      Throws:
        `XPRSexception`

    - #### addNodeLPSolvedListener

          public void addNodeLPSolvedListener​(XPRSnodeLPSolvedListener listener)
                                       throws XPRSexception

      Add a listener for the NodeLPSolved callback. Note that an object can have multiple NodeLPSolved listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all NodeLPSolved listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addNodeLPSolvedListener

          public void addNodeLPSolvedListener​(XPRSnodeLPSolvedListener listener,
                                              java.lang.Object data)
                                       throws XPRSexception

      Add a listener for the NodeLPSolved callback. Note that an object can have multiple NodeLPSolved listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all NodeLPSolved listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addNodeLPSolvedListener

          public void addNodeLPSolvedListener​(XPRSnodeLPSolvedListener listener,
                                              int priority)
                                       throws XPRSexception

      Add a listener for the NodeLPSolved callback. Note that an object can have multiple NodeLPSolved listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all NodeLPSolved listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addNodeLPSolvedListener

          public void addNodeLPSolvedListener​(XPRSnodeLPSolvedListener listener,
                                              java.lang.Object data,
                                              int priority)
                                       throws XPRSexception

      Add a listener for the NodeLPSolved callback. Note that an object can have multiple NodeLPSolved listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all NodeLPSolved listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeNodeLPSolvedListener

          public void removeNodeLPSolvedListener​(XPRSnodeLPSolvedListener listener)
                                          throws XPRSexception

      Removes the given NodeLPSolved listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeNodeLPSolvedListener

          public void removeNodeLPSolvedListener​(XPRSnodeLPSolvedListener listener,
                                                 java.lang.Object data)
                                          throws XPRSexception

      Removes the given NodeLPSolved listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeNodeLPSolvedListeners

          public void removeNodeLPSolvedListeners()
                                           throws XPRSexception

      Remove all listeners for the NodeLPSolved callback
      Throws:
        `XPRSexception`

    - #### addGapNotifyListener

          public void addGapNotifyListener​(XPRSgapNotifyListener listener)
                                    throws XPRSexception

      Add a listener for the GapNotify callback. Note that an object can have multiple GapNotify listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all GapNotify listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addGapNotifyListener

          public void addGapNotifyListener​(XPRSgapNotifyListener listener,
                                           java.lang.Object data)
                                    throws XPRSexception

      Add a listener for the GapNotify callback. Note that an object can have multiple GapNotify listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all GapNotify listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addGapNotifyListener

          public void addGapNotifyListener​(XPRSgapNotifyListener listener,
                                           int priority)
                                    throws XPRSexception

      Add a listener for the GapNotify callback. Note that an object can have multiple GapNotify listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all GapNotify listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addGapNotifyListener

          public void addGapNotifyListener​(XPRSgapNotifyListener listener,
                                           java.lang.Object data,
                                           int priority)
                                    throws XPRSexception

      Add a listener for the GapNotify callback. Note that an object can have multiple GapNotify listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all GapNotify listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeGapNotifyListener

          public void removeGapNotifyListener​(XPRSgapNotifyListener listener)
                                       throws XPRSexception

      Removes the given GapNotify listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeGapNotifyListener

          public void removeGapNotifyListener​(XPRSgapNotifyListener listener,
                                              java.lang.Object data)
                                       throws XPRSexception

      Removes the given GapNotify listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeGapNotifyListeners

          public void removeGapNotifyListeners()
                                        throws XPRSexception

      Remove all listeners for the GapNotify callback
      Throws:
        `XPRSexception`

    - #### addUserSolNotifyListener

          public void addUserSolNotifyListener​(XPRSuserSolNotifyListener listener)
                                        throws XPRSexception

      Add a listener for the UserSolNotify callback. Note that an object can have multiple UserSolNotify listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all UserSolNotify listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addUserSolNotifyListener

          public void addUserSolNotifyListener​(XPRSuserSolNotifyListener listener,
                                               java.lang.Object data)
                                        throws XPRSexception

      Add a listener for the UserSolNotify callback. Note that an object can have multiple UserSolNotify listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all UserSolNotify listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addUserSolNotifyListener

          public void addUserSolNotifyListener​(XPRSuserSolNotifyListener listener,
                                               int priority)
                                        throws XPRSexception

      Add a listener for the UserSolNotify callback. Note that an object can have multiple UserSolNotify listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all UserSolNotify listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addUserSolNotifyListener

          public void addUserSolNotifyListener​(XPRSuserSolNotifyListener listener,
                                               java.lang.Object data,
                                               int priority)
                                        throws XPRSexception

      Add a listener for the UserSolNotify callback. Note that an object can have multiple UserSolNotify listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all UserSolNotify listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeUserSolNotifyListener

          public void removeUserSolNotifyListener​(XPRSuserSolNotifyListener listener)
                                           throws XPRSexception

      Removes the given UserSolNotify listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeUserSolNotifyListener

          public void removeUserSolNotifyListener​(XPRSuserSolNotifyListener listener,
                                                  java.lang.Object data)
                                           throws XPRSexception

      Removes the given UserSolNotify listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeUserSolNotifyListeners

          public void removeUserSolNotifyListeners()
                                            throws XPRSexception

      Remove all listeners for the UserSolNotify callback
      Throws:
        `XPRSexception`

    - #### addBeforeObjectiveListener

          public void addBeforeObjectiveListener​(XPRSbeforeObjectiveListener listener)
                                          throws XPRSexception

      Add a listener for the BeforeObjective callback. Note that an object can have multiple BeforeObjective listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all BeforeObjective listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addBeforeObjectiveListener

          public void addBeforeObjectiveListener​(XPRSbeforeObjectiveListener listener,
                                                 java.lang.Object data)
                                          throws XPRSexception

      Add a listener for the BeforeObjective callback. Note that an object can have multiple BeforeObjective listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all BeforeObjective listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addBeforeObjectiveListener

          public void addBeforeObjectiveListener​(XPRSbeforeObjectiveListener listener,
                                                 int priority)
                                          throws XPRSexception

      Add a listener for the BeforeObjective callback. Note that an object can have multiple BeforeObjective listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all BeforeObjective listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addBeforeObjectiveListener

          public void addBeforeObjectiveListener​(XPRSbeforeObjectiveListener listener,
                                                 java.lang.Object data,
                                                 int priority)
                                          throws XPRSexception

      Add a listener for the BeforeObjective callback. Note that an object can have multiple BeforeObjective listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all BeforeObjective listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeBeforeObjectiveListener

          public void removeBeforeObjectiveListener​(XPRSbeforeObjectiveListener listener)
                                             throws XPRSexception

      Removes the given BeforeObjective listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeBeforeObjectiveListener

          public void removeBeforeObjectiveListener​(XPRSbeforeObjectiveListener listener,
                                                    java.lang.Object data)
                                             throws XPRSexception

      Removes the given BeforeObjective listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeBeforeObjectiveListeners

          public void removeBeforeObjectiveListeners()
                                              throws XPRSexception

      Remove all listeners for the BeforeObjective callback
      Throws:
        `XPRSexception`

    - #### addAfterObjectiveListener

          public void addAfterObjectiveListener​(XPRSafterObjectiveListener listener)
                                         throws XPRSexception

      Add a listener for the AfterObjective callback. Note that an object can have multiple AfterObjective listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all AfterObjective listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addAfterObjectiveListener

          public void addAfterObjectiveListener​(XPRSafterObjectiveListener listener,
                                                java.lang.Object data)
                                         throws XPRSexception

      Add a listener for the AfterObjective callback. Note that an object can have multiple AfterObjective listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all AfterObjective listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addAfterObjectiveListener

          public void addAfterObjectiveListener​(XPRSafterObjectiveListener listener,
                                                int priority)
                                         throws XPRSexception

      Add a listener for the AfterObjective callback. Note that an object can have multiple AfterObjective listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all AfterObjective listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addAfterObjectiveListener

          public void addAfterObjectiveListener​(XPRSafterObjectiveListener listener,
                                                java.lang.Object data,
                                                int priority)
                                         throws XPRSexception

      Add a listener for the AfterObjective callback. Note that an object can have multiple AfterObjective listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all AfterObjective listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeAfterObjectiveListener

          public void removeAfterObjectiveListener​(XPRSafterObjectiveListener listener)
                                            throws XPRSexception

      Removes the given AfterObjective listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeAfterObjectiveListener

          public void removeAfterObjectiveListener​(XPRSafterObjectiveListener listener,
                                                   java.lang.Object data)
                                            throws XPRSexception

      Removes the given AfterObjective listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeAfterObjectiveListeners

          public void removeAfterObjectiveListeners()
                                             throws XPRSexception

      Remove all listeners for the AfterObjective callback
      Throws:
        `XPRSexception`

    - #### addCheckTimeListener

          public void addCheckTimeListener​(XPRScheckTimeListener listener)
                                    throws XPRSexception

      Add a listener for the CheckTime callback. Note that an object can have multiple CheckTime listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all CheckTime listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addCheckTimeListener

          public void addCheckTimeListener​(XPRScheckTimeListener listener,
                                           java.lang.Object data)
                                    throws XPRSexception

      Add a listener for the CheckTime callback. Note that an object can have multiple CheckTime listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all CheckTime listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addCheckTimeListener

          public void addCheckTimeListener​(XPRScheckTimeListener listener,
                                           int priority)
                                    throws XPRSexception

      Add a listener for the CheckTime callback. Note that an object can have multiple CheckTime listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all CheckTime listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addCheckTimeListener

          public void addCheckTimeListener​(XPRScheckTimeListener listener,
                                           java.lang.Object data,
                                           int priority)
                                    throws XPRSexception

      Add a listener for the CheckTime callback. Note that an object can have multiple CheckTime listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all CheckTime listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeCheckTimeListener

          public void removeCheckTimeListener​(XPRScheckTimeListener listener)
                                       throws XPRSexception

      Removes the given CheckTime listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeCheckTimeListener

          public void removeCheckTimeListener​(XPRScheckTimeListener listener,
                                              java.lang.Object data)
                                       throws XPRSexception

      Removes the given CheckTime listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeCheckTimeListeners

          public void removeCheckTimeListeners()
                                        throws XPRSexception

      Remove all listeners for the CheckTime callback
      Throws:
        `XPRSexception`

    - #### addCutRoundListener

          public void addCutRoundListener​(XPRScutRoundListener listener)
                                   throws XPRSexception

      Add a listener for the CutRound callback. Note that an object can have multiple CutRound listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all CutRound listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addCutRoundListener

          public void addCutRoundListener​(XPRScutRoundListener listener,
                                          java.lang.Object data)
                                   throws XPRSexception

      Add a listener for the CutRound callback. Note that an object can have multiple CutRound listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all CutRound listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addCutRoundListener

          public void addCutRoundListener​(XPRScutRoundListener listener,
                                          int priority)
                                   throws XPRSexception

      Add a listener for the CutRound callback. Note that an object can have multiple CutRound listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all CutRound listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addCutRoundListener

          public void addCutRoundListener​(XPRScutRoundListener listener,
                                          java.lang.Object data,
                                          int priority)
                                   throws XPRSexception

      Add a listener for the CutRound callback. Note that an object can have multiple CutRound listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all CutRound listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeCutRoundListener

          public void removeCutRoundListener​(XPRScutRoundListener listener)
                                      throws XPRSexception

      Removes the given CutRound listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeCutRoundListener

          public void removeCutRoundListener​(XPRScutRoundListener listener,
                                             java.lang.Object data)
                                      throws XPRSexception

      Removes the given CutRound listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeCutRoundListeners

          public void removeCutRoundListeners()
                                       throws XPRSexception

      Remove all listeners for the CutRound callback
      Throws:
        `XPRSexception`

    - #### addSlpCascadeEndListener

          public void addSlpCascadeEndListener​(XPRSslpCascadeEndListener listener)
                                        throws XPRSexception

      Add a listener for the SlpCascadeEnd callback. Note that an object can have multiple SlpCascadeEnd listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeEnd listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addSlpCascadeEndListener

          public void addSlpCascadeEndListener​(XPRSslpCascadeEndListener listener,
                                               java.lang.Object data)
                                        throws XPRSexception

      Add a listener for the SlpCascadeEnd callback. Note that an object can have multiple SlpCascadeEnd listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeEnd listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addSlpCascadeEndListener

          public void addSlpCascadeEndListener​(XPRSslpCascadeEndListener listener,
                                               int priority)
                                        throws XPRSexception

      Add a listener for the SlpCascadeEnd callback. Note that an object can have multiple SlpCascadeEnd listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeEnd listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addSlpCascadeEndListener

          public void addSlpCascadeEndListener​(XPRSslpCascadeEndListener listener,
                                               java.lang.Object data,
                                               int priority)
                                        throws XPRSexception

      Add a listener for the SlpCascadeEnd callback. Note that an object can have multiple SlpCascadeEnd listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeEnd listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeSlpCascadeEndListener

          public void removeSlpCascadeEndListener​(XPRSslpCascadeEndListener listener)
                                           throws XPRSexception

      Removes the given SlpCascadeEnd listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpCascadeEndListener

          public void removeSlpCascadeEndListener​(XPRSslpCascadeEndListener listener,
                                                  java.lang.Object data)
                                           throws XPRSexception

      Removes the given SlpCascadeEnd listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpCascadeEndListeners

          public void removeSlpCascadeEndListeners()
                                            throws XPRSexception

      Remove all listeners for the SlpCascadeEnd callback
      Throws:
        `XPRSexception`

    - #### addSlpCascadeStartListener

          public void addSlpCascadeStartListener​(XPRSslpCascadeStartListener listener)
                                          throws XPRSexception

      Add a listener for the SlpCascadeStart callback. Note that an object can have multiple SlpCascadeStart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeStart listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addSlpCascadeStartListener

          public void addSlpCascadeStartListener​(XPRSslpCascadeStartListener listener,
                                                 java.lang.Object data)
                                          throws XPRSexception

      Add a listener for the SlpCascadeStart callback. Note that an object can have multiple SlpCascadeStart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeStart listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addSlpCascadeStartListener

          public void addSlpCascadeStartListener​(XPRSslpCascadeStartListener listener,
                                                 int priority)
                                          throws XPRSexception

      Add a listener for the SlpCascadeStart callback. Note that an object can have multiple SlpCascadeStart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeStart listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addSlpCascadeStartListener

          public void addSlpCascadeStartListener​(XPRSslpCascadeStartListener listener,
                                                 java.lang.Object data,
                                                 int priority)
                                          throws XPRSexception

      Add a listener for the SlpCascadeStart callback. Note that an object can have multiple SlpCascadeStart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeStart listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeSlpCascadeStartListener

          public void removeSlpCascadeStartListener​(XPRSslpCascadeStartListener listener)
                                             throws XPRSexception

      Removes the given SlpCascadeStart listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpCascadeStartListener

          public void removeSlpCascadeStartListener​(XPRSslpCascadeStartListener listener,
                                                    java.lang.Object data)
                                             throws XPRSexception

      Removes the given SlpCascadeStart listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpCascadeStartListeners

          public void removeSlpCascadeStartListeners()
                                              throws XPRSexception

      Remove all listeners for the SlpCascadeStart callback
      Throws:
        `XPRSexception`

    - #### addSlpCascadeVarListener

          public void addSlpCascadeVarListener​(XPRSslpCascadeVarListener listener)
                                        throws XPRSexception

      Add a listener for the SlpCascadeVar callback. Note that an object can have multiple SlpCascadeVar listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeVar listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addSlpCascadeVarListener

          public void addSlpCascadeVarListener​(XPRSslpCascadeVarListener listener,
                                               java.lang.Object data)
                                        throws XPRSexception

      Add a listener for the SlpCascadeVar callback. Note that an object can have multiple SlpCascadeVar listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeVar listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addSlpCascadeVarListener

          public void addSlpCascadeVarListener​(XPRSslpCascadeVarListener listener,
                                               int priority)
                                        throws XPRSexception

      Add a listener for the SlpCascadeVar callback. Note that an object can have multiple SlpCascadeVar listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeVar listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addSlpCascadeVarListener

          public void addSlpCascadeVarListener​(XPRSslpCascadeVarListener listener,
                                               java.lang.Object data,
                                               int priority)
                                        throws XPRSexception

      Add a listener for the SlpCascadeVar callback. Note that an object can have multiple SlpCascadeVar listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeVar listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeSlpCascadeVarListener

          public void removeSlpCascadeVarListener​(XPRSslpCascadeVarListener listener)
                                           throws XPRSexception

      Removes the given SlpCascadeVar listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpCascadeVarListener

          public void removeSlpCascadeVarListener​(XPRSslpCascadeVarListener listener,
                                                  java.lang.Object data)
                                           throws XPRSexception

      Removes the given SlpCascadeVar listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpCascadeVarListeners

          public void removeSlpCascadeVarListeners()
                                            throws XPRSexception

      Remove all listeners for the SlpCascadeVar callback
      Throws:
        `XPRSexception`

    - #### addSlpCascadeVarFailListener

          public void addSlpCascadeVarFailListener​(XPRSslpCascadeVarFailListener listener)
                                            throws XPRSexception

      Add a listener for the SlpCascadeVarFail callback. Note that an object can have multiple SlpCascadeVarFail listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeVarFail listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addSlpCascadeVarFailListener

          public void addSlpCascadeVarFailListener​(XPRSslpCascadeVarFailListener listener,
                                                   java.lang.Object data)
                                            throws XPRSexception

      Add a listener for the SlpCascadeVarFail callback. Note that an object can have multiple SlpCascadeVarFail listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeVarFail listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addSlpCascadeVarFailListener

          public void addSlpCascadeVarFailListener​(XPRSslpCascadeVarFailListener listener,
                                                   int priority)
                                            throws XPRSexception

      Add a listener for the SlpCascadeVarFail callback. Note that an object can have multiple SlpCascadeVarFail listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeVarFail listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addSlpCascadeVarFailListener

          public void addSlpCascadeVarFailListener​(XPRSslpCascadeVarFailListener listener,
                                                   java.lang.Object data,
                                                   int priority)
                                            throws XPRSexception

      Add a listener for the SlpCascadeVarFail callback. Note that an object can have multiple SlpCascadeVarFail listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpCascadeVarFail listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeSlpCascadeVarFailListener

          public void removeSlpCascadeVarFailListener​(XPRSslpCascadeVarFailListener listener)
                                               throws XPRSexception

      Removes the given SlpCascadeVarFail listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpCascadeVarFailListener

          public void removeSlpCascadeVarFailListener​(XPRSslpCascadeVarFailListener listener,
                                                      java.lang.Object data)
                                               throws XPRSexception

      Removes the given SlpCascadeVarFail listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpCascadeVarFailListeners

          public void removeSlpCascadeVarFailListeners()
                                                throws XPRSexception

      Remove all listeners for the SlpCascadeVarFail callback
      Throws:
        `XPRSexception`

    - #### addSlpConstructListener

          public void addSlpConstructListener​(XPRSslpConstructListener listener)
                                       throws XPRSexception

      Add a listener for the SlpConstruct callback. Note that an object can have multiple SlpConstruct listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpConstruct listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addSlpConstructListener

          public void addSlpConstructListener​(XPRSslpConstructListener listener,
                                              java.lang.Object data)
                                       throws XPRSexception

      Add a listener for the SlpConstruct callback. Note that an object can have multiple SlpConstruct listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpConstruct listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addSlpConstructListener

          public void addSlpConstructListener​(XPRSslpConstructListener listener,
                                              int priority)
                                       throws XPRSexception

      Add a listener for the SlpConstruct callback. Note that an object can have multiple SlpConstruct listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpConstruct listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addSlpConstructListener

          public void addSlpConstructListener​(XPRSslpConstructListener listener,
                                              java.lang.Object data,
                                              int priority)
                                       throws XPRSexception

      Add a listener for the SlpConstruct callback. Note that an object can have multiple SlpConstruct listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpConstruct listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeSlpConstructListener

          public void removeSlpConstructListener​(XPRSslpConstructListener listener)
                                          throws XPRSexception

      Removes the given SlpConstruct listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpConstructListener

          public void removeSlpConstructListener​(XPRSslpConstructListener listener,
                                                 java.lang.Object data)
                                          throws XPRSexception

      Removes the given SlpConstruct listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpConstructListeners

          public void removeSlpConstructListeners()
                                           throws XPRSexception

      Remove all listeners for the SlpConstruct callback
      Throws:
        `XPRSexception`

    - #### addSlpIntSolListener

          public void addSlpIntSolListener​(XPRSslpIntSolListener listener)
                                    throws XPRSexception

      Add a listener for the SlpIntSol callback. Note that an object can have multiple SlpIntSol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIntSol listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addSlpIntSolListener

          public void addSlpIntSolListener​(XPRSslpIntSolListener listener,
                                           java.lang.Object data)
                                    throws XPRSexception

      Add a listener for the SlpIntSol callback. Note that an object can have multiple SlpIntSol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIntSol listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addSlpIntSolListener

          public void addSlpIntSolListener​(XPRSslpIntSolListener listener,
                                           int priority)
                                    throws XPRSexception

      Add a listener for the SlpIntSol callback. Note that an object can have multiple SlpIntSol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIntSol listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addSlpIntSolListener

          public void addSlpIntSolListener​(XPRSslpIntSolListener listener,
                                           java.lang.Object data,
                                           int priority)
                                    throws XPRSexception

      Add a listener for the SlpIntSol callback. Note that an object can have multiple SlpIntSol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIntSol listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeSlpIntSolListener

          public void removeSlpIntSolListener​(XPRSslpIntSolListener listener)
                                       throws XPRSexception

      Removes the given SlpIntSol listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpIntSolListener

          public void removeSlpIntSolListener​(XPRSslpIntSolListener listener,
                                              java.lang.Object data)
                                       throws XPRSexception

      Removes the given SlpIntSol listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpIntSolListeners

          public void removeSlpIntSolListeners()
                                        throws XPRSexception

      Remove all listeners for the SlpIntSol callback
      Throws:
        `XPRSexception`

    - #### addSlpIterEndListener

          public void addSlpIterEndListener​(XPRSslpIterEndListener listener)
                                     throws XPRSexception

      Add a listener for the SlpIterEnd callback. Note that an object can have multiple SlpIterEnd listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIterEnd listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addSlpIterEndListener

          public void addSlpIterEndListener​(XPRSslpIterEndListener listener,
                                            java.lang.Object data)
                                     throws XPRSexception

      Add a listener for the SlpIterEnd callback. Note that an object can have multiple SlpIterEnd listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIterEnd listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addSlpIterEndListener

          public void addSlpIterEndListener​(XPRSslpIterEndListener listener,
                                            int priority)
                                     throws XPRSexception

      Add a listener for the SlpIterEnd callback. Note that an object can have multiple SlpIterEnd listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIterEnd listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addSlpIterEndListener

          public void addSlpIterEndListener​(XPRSslpIterEndListener listener,
                                            java.lang.Object data,
                                            int priority)
                                     throws XPRSexception

      Add a listener for the SlpIterEnd callback. Note that an object can have multiple SlpIterEnd listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIterEnd listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeSlpIterEndListener

          public void removeSlpIterEndListener​(XPRSslpIterEndListener listener)
                                        throws XPRSexception

      Removes the given SlpIterEnd listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpIterEndListener

          public void removeSlpIterEndListener​(XPRSslpIterEndListener listener,
                                               java.lang.Object data)
                                        throws XPRSexception

      Removes the given SlpIterEnd listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpIterEndListeners

          public void removeSlpIterEndListeners()
                                         throws XPRSexception

      Remove all listeners for the SlpIterEnd callback
      Throws:
        `XPRSexception`

    - #### addSlpIterStartListener

          public void addSlpIterStartListener​(XPRSslpIterStartListener listener)
                                       throws XPRSexception

      Add a listener for the SlpIterStart callback. Note that an object can have multiple SlpIterStart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIterStart listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addSlpIterStartListener

          public void addSlpIterStartListener​(XPRSslpIterStartListener listener,
                                              java.lang.Object data)
                                       throws XPRSexception

      Add a listener for the SlpIterStart callback. Note that an object can have multiple SlpIterStart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIterStart listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addSlpIterStartListener

          public void addSlpIterStartListener​(XPRSslpIterStartListener listener,
                                              int priority)
                                       throws XPRSexception

      Add a listener for the SlpIterStart callback. Note that an object can have multiple SlpIterStart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIterStart listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addSlpIterStartListener

          public void addSlpIterStartListener​(XPRSslpIterStartListener listener,
                                              java.lang.Object data,
                                              int priority)
                                       throws XPRSexception

      Add a listener for the SlpIterStart callback. Note that an object can have multiple SlpIterStart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIterStart listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeSlpIterStartListener

          public void removeSlpIterStartListener​(XPRSslpIterStartListener listener)
                                          throws XPRSexception

      Removes the given SlpIterStart listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpIterStartListener

          public void removeSlpIterStartListener​(XPRSslpIterStartListener listener,
                                                 java.lang.Object data)
                                          throws XPRSexception

      Removes the given SlpIterStart listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpIterStartListeners

          public void removeSlpIterStartListeners()
                                           throws XPRSexception

      Remove all listeners for the SlpIterStart callback
      Throws:
        `XPRSexception`

    - #### addSlpIterVarListener

          public void addSlpIterVarListener​(XPRSslpIterVarListener listener)
                                     throws XPRSexception

      Add a listener for the SlpIterVar callback. Note that an object can have multiple SlpIterVar listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIterVar listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addSlpIterVarListener

          public void addSlpIterVarListener​(XPRSslpIterVarListener listener,
                                            java.lang.Object data)
                                     throws XPRSexception

      Add a listener for the SlpIterVar callback. Note that an object can have multiple SlpIterVar listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIterVar listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addSlpIterVarListener

          public void addSlpIterVarListener​(XPRSslpIterVarListener listener,
                                            int priority)
                                     throws XPRSexception

      Add a listener for the SlpIterVar callback. Note that an object can have multiple SlpIterVar listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIterVar listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addSlpIterVarListener

          public void addSlpIterVarListener​(XPRSslpIterVarListener listener,
                                            java.lang.Object data,
                                            int priority)
                                     throws XPRSexception

      Add a listener for the SlpIterVar callback. Note that an object can have multiple SlpIterVar listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpIterVar listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeSlpIterVarListener

          public void removeSlpIterVarListener​(XPRSslpIterVarListener listener)
                                        throws XPRSexception

      Removes the given SlpIterVar listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpIterVarListener

          public void removeSlpIterVarListener​(XPRSslpIterVarListener listener,
                                               java.lang.Object data)
                                        throws XPRSexception

      Removes the given SlpIterVar listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpIterVarListeners

          public void removeSlpIterVarListeners()
                                         throws XPRSexception

      Remove all listeners for the SlpIterVar callback
      Throws:
        `XPRSexception`

    - #### addSlpDrColListener

          public void addSlpDrColListener​(XPRSslpDrColListener listener)
                                   throws XPRSexception

      Add a listener for the SlpDrCol callback. Note that an object can have multiple SlpDrCol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpDrCol listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addSlpDrColListener

          public void addSlpDrColListener​(XPRSslpDrColListener listener,
                                          java.lang.Object data)
                                   throws XPRSexception

      Add a listener for the SlpDrCol callback. Note that an object can have multiple SlpDrCol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpDrCol listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addSlpDrColListener

          public void addSlpDrColListener​(XPRSslpDrColListener listener,
                                          int priority)
                                   throws XPRSexception

      Add a listener for the SlpDrCol callback. Note that an object can have multiple SlpDrCol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpDrCol listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addSlpDrColListener

          public void addSlpDrColListener​(XPRSslpDrColListener listener,
                                          java.lang.Object data,
                                          int priority)
                                   throws XPRSexception

      Add a listener for the SlpDrCol callback. Note that an object can have multiple SlpDrCol listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpDrCol listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeSlpDrColListener

          public void removeSlpDrColListener​(XPRSslpDrColListener listener)
                                      throws XPRSexception

      Removes the given SlpDrCol listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpDrColListener

          public void removeSlpDrColListener​(XPRSslpDrColListener listener,
                                             java.lang.Object data)
                                      throws XPRSexception

      Removes the given SlpDrCol listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpDrColListeners

          public void removeSlpDrColListeners()
                                       throws XPRSexception

      Remove all listeners for the SlpDrCol callback
      Throws:
        `XPRSexception`

    - #### addMsJobStartListener

          public void addMsJobStartListener​(XPRSmsJobStartListener listener)
                                     throws XPRSexception

      Add a listener for the MsJobStart callback. Note that an object can have multiple MsJobStart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsJobStart listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addMsJobStartListener

          public void addMsJobStartListener​(XPRSmsJobStartListener listener,
                                            java.lang.Object data)
                                     throws XPRSexception

      Add a listener for the MsJobStart callback. Note that an object can have multiple MsJobStart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsJobStart listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addMsJobStartListener

          public void addMsJobStartListener​(XPRSmsJobStartListener listener,
                                            int priority)
                                     throws XPRSexception

      Add a listener for the MsJobStart callback. Note that an object can have multiple MsJobStart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsJobStart listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addMsJobStartListener

          public void addMsJobStartListener​(XPRSmsJobStartListener listener,
                                            java.lang.Object data,
                                            int priority)
                                     throws XPRSexception

      Add a listener for the MsJobStart callback. Note that an object can have multiple MsJobStart listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsJobStart listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeMsJobStartListener

          public void removeMsJobStartListener​(XPRSmsJobStartListener listener)
                                        throws XPRSexception

      Removes the given MsJobStart listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeMsJobStartListener

          public void removeMsJobStartListener​(XPRSmsJobStartListener listener,
                                               java.lang.Object data)
                                        throws XPRSexception

      Removes the given MsJobStart listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeMsJobStartListeners

          public void removeMsJobStartListeners()
                                         throws XPRSexception

      Remove all listeners for the MsJobStart callback
      Throws:
        `XPRSexception`

    - #### addMsJobEndListener

          public void addMsJobEndListener​(XPRSmsJobEndListener listener)
                                   throws XPRSexception

      Add a listener for the MsJobEnd callback. Note that an object can have multiple MsJobEnd listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsJobEnd listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addMsJobEndListener

          public void addMsJobEndListener​(XPRSmsJobEndListener listener,
                                          java.lang.Object data)
                                   throws XPRSexception

      Add a listener for the MsJobEnd callback. Note that an object can have multiple MsJobEnd listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsJobEnd listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addMsJobEndListener

          public void addMsJobEndListener​(XPRSmsJobEndListener listener,
                                          int priority)
                                   throws XPRSexception

      Add a listener for the MsJobEnd callback. Note that an object can have multiple MsJobEnd listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsJobEnd listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addMsJobEndListener

          public void addMsJobEndListener​(XPRSmsJobEndListener listener,
                                          java.lang.Object data,
                                          int priority)
                                   throws XPRSexception

      Add a listener for the MsJobEnd callback. Note that an object can have multiple MsJobEnd listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsJobEnd listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeMsJobEndListener

          public void removeMsJobEndListener​(XPRSmsJobEndListener listener)
                                      throws XPRSexception

      Removes the given MsJobEnd listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeMsJobEndListener

          public void removeMsJobEndListener​(XPRSmsJobEndListener listener,
                                             java.lang.Object data)
                                      throws XPRSexception

      Removes the given MsJobEnd listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeMsJobEndListeners

          public void removeMsJobEndListeners()
                                       throws XPRSexception

      Remove all listeners for the MsJobEnd callback
      Throws:
        `XPRSexception`

    - #### addMsWinnerListener

          public void addMsWinnerListener​(XPRSmsWinnerListener listener)
                                   throws XPRSexception

      Add a listener for the MsWinner callback. Note that an object can have multiple MsWinner listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsWinner listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addMsWinnerListener

          public void addMsWinnerListener​(XPRSmsWinnerListener listener,
                                          java.lang.Object data)
                                   throws XPRSexception

      Add a listener for the MsWinner callback. Note that an object can have multiple MsWinner listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsWinner listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addMsWinnerListener

          public void addMsWinnerListener​(XPRSmsWinnerListener listener,
                                          int priority)
                                   throws XPRSexception

      Add a listener for the MsWinner callback. Note that an object can have multiple MsWinner listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsWinner listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addMsWinnerListener

          public void addMsWinnerListener​(XPRSmsWinnerListener listener,
                                          java.lang.Object data,
                                          int priority)
                                   throws XPRSexception

      Add a listener for the MsWinner callback. Note that an object can have multiple MsWinner listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsWinner listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeMsWinnerListener

          public void removeMsWinnerListener​(XPRSmsWinnerListener listener)
                                      throws XPRSexception

      Removes the given MsWinner listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeMsWinnerListener

          public void removeMsWinnerListener​(XPRSmsWinnerListener listener,
                                             java.lang.Object data)
                                      throws XPRSexception

      Removes the given MsWinner listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeMsWinnerListeners

          public void removeMsWinnerListeners()
                                       throws XPRSexception

      Remove all listeners for the MsWinner callback
      Throws:
        `XPRSexception`

    - #### addNlpCoefEvalErrorListener

          public void addNlpCoefEvalErrorListener​(XPRSnlpCoefEvalErrorListener listener)
                                           throws XPRSexception

      Add a listener for the NlpCoefEvalError callback. Note that an object can have multiple NlpCoefEvalError listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all NlpCoefEvalError listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addNlpCoefEvalErrorListener

          public void addNlpCoefEvalErrorListener​(XPRSnlpCoefEvalErrorListener listener,
                                                  java.lang.Object data)
                                           throws XPRSexception

      Add a listener for the NlpCoefEvalError callback. Note that an object can have multiple NlpCoefEvalError listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all NlpCoefEvalError listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addNlpCoefEvalErrorListener

          public void addNlpCoefEvalErrorListener​(XPRSnlpCoefEvalErrorListener listener,
                                                  int priority)
                                           throws XPRSexception

      Add a listener for the NlpCoefEvalError callback. Note that an object can have multiple NlpCoefEvalError listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all NlpCoefEvalError listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addNlpCoefEvalErrorListener

          public void addNlpCoefEvalErrorListener​(XPRSnlpCoefEvalErrorListener listener,
                                                  java.lang.Object data,
                                                  int priority)
                                           throws XPRSexception

      Add a listener for the NlpCoefEvalError callback. Note that an object can have multiple NlpCoefEvalError listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all NlpCoefEvalError listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeNlpCoefEvalErrorListener

          public void removeNlpCoefEvalErrorListener​(XPRSnlpCoefEvalErrorListener listener)
                                              throws XPRSexception

      Removes the given NlpCoefEvalError listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeNlpCoefEvalErrorListener

          public void removeNlpCoefEvalErrorListener​(XPRSnlpCoefEvalErrorListener listener,
                                                     java.lang.Object data)
                                              throws XPRSexception

      Removes the given NlpCoefEvalError listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeNlpCoefEvalErrorListeners

          public void removeNlpCoefEvalErrorListeners()
                                               throws XPRSexception

      Remove all listeners for the NlpCoefEvalError callback
      Throws:
        `XPRSexception`

    - #### addSlpPreUpdateLinearizationListener

          public void addSlpPreUpdateLinearizationListener​(XPRSslpPreUpdateLinearizationListener listener)
                                                    throws XPRSexception

      Add a listener for the SlpPreUpdateLinearization callback. Note that an object can have multiple SlpPreUpdateLinearization listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpPreUpdateLinearization listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addSlpPreUpdateLinearizationListener

          public void addSlpPreUpdateLinearizationListener​(XPRSslpPreUpdateLinearizationListener listener,
                                                           java.lang.Object data)
                                                    throws XPRSexception

      Add a listener for the SlpPreUpdateLinearization callback. Note that an object can have multiple SlpPreUpdateLinearization listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpPreUpdateLinearization listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addSlpPreUpdateLinearizationListener

          public void addSlpPreUpdateLinearizationListener​(XPRSslpPreUpdateLinearizationListener listener,
                                                           int priority)
                                                    throws XPRSexception

      Add a listener for the SlpPreUpdateLinearization callback. Note that an object can have multiple SlpPreUpdateLinearization listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpPreUpdateLinearization listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addSlpPreUpdateLinearizationListener

          public void addSlpPreUpdateLinearizationListener​(XPRSslpPreUpdateLinearizationListener listener,
                                                           java.lang.Object data,
                                                           int priority)
                                                    throws XPRSexception

      Add a listener for the SlpPreUpdateLinearization callback. Note that an object can have multiple SlpPreUpdateLinearization listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all SlpPreUpdateLinearization listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeSlpPreUpdateLinearizationListener

          public void removeSlpPreUpdateLinearizationListener​(XPRSslpPreUpdateLinearizationListener listener)
                                                       throws XPRSexception

      Removes the given SlpPreUpdateLinearization listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpPreUpdateLinearizationListener

          public void removeSlpPreUpdateLinearizationListener​(XPRSslpPreUpdateLinearizationListener listener,
                                                              java.lang.Object data)
                                                       throws XPRSexception

      Removes the given SlpPreUpdateLinearization listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeSlpPreUpdateLinearizationListeners

          public void removeSlpPreUpdateLinearizationListeners()
                                                        throws XPRSexception

      Remove all listeners for the SlpPreUpdateLinearization callback
      Throws:
        `XPRSexception`

    - #### addMsgHandlerListener

          public void addMsgHandlerListener​(XPRSmsgHandlerListener listener)
                                     throws XPRSexception

      Add a listener for the MsgHandler callback. Note that an object can have multiple MsgHandler listeners.
      Specified by:
        `addMsgHandlerListener` in class `XPRSobject`
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsgHandler listeners will be removed.)
      Throws:
        `XPRSexception`

    - #### addMsgHandlerListener

          public void addMsgHandlerListener​(XPRSmsgHandlerListener listener,
                                            java.lang.Object data)
                                     throws XPRSexception

      Add a listener for the MsgHandler callback. Note that an object can have multiple MsgHandler listeners.
      Specified by:
        `addMsgHandlerListener` in class `XPRSobject`
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsgHandler listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
      Throws:
        `XPRSexception`

    - #### addMsgHandlerListener

          public void addMsgHandlerListener​(XPRSmsgHandlerListener listener,
                                            int priority)
                                     throws XPRSexception

      Add a listener for the MsgHandler callback. Note that an object can have multiple MsgHandler listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsgHandler listeners will be removed.)
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### addMsgHandlerListener

          public void addMsgHandlerListener​(XPRSmsgHandlerListener listener,
                                            java.lang.Object data,
                                            int priority)
                                     throws XPRSexception

      Add a listener for the MsgHandler callback. Note that an object can have multiple MsgHandler listeners.
      Parameters:
        `listener` - The listener to which the event will be dispatched. (If null, all MsgHandler listeners will be removed.)
        `data` - An additional object which will be passed down to the callback function
        `priority` - Listeners with higher priorities are called first
      Throws:
        `XPRSexception`

    - #### removeMsgHandlerListener

          public void removeMsgHandlerListener​(XPRSmsgHandlerListener listener)
                                        throws XPRSexception

      Removes the given MsgHandler listener from the object.
      Parameters:
        `listener` - The listener to remove.
      Throws:
        `XPRSexception`

    - #### removeMsgHandlerListener

          public void removeMsgHandlerListener​(XPRSmsgHandlerListener listener,
                                               java.lang.Object data)
                                        throws XPRSexception

      Removes the given MsgHandler listener with the given data value from the object.
      Parameters:
        `listener` - The listener to remove.
        `data` - The user data to remove.
      Throws:
        `XPRSexception`

    - #### removeMsgHandlerListeners

          public void removeMsgHandlerListeners()
                                         throws XPRSexception

      Remove all listeners for the MsgHandler callback
      Throws:
        `XPRSexception`

    - #### attributes

          public XPRSprob.Attributes attributes()

      Access the attributes of this instance.
      Returns:
        an object that allows accessing the attributes of this instance.

    - #### controls

          public XPRSprob.Controls controls()

      Access the controls of this instance.
      Returns:
        an object that allows accessing the controls of this instance.

    - #### getSolX

          @Deprecated
          public double[] getSolX()
                           throws XPRSprobException

      Deprecated.
      since 41.00, will be removed in a future release, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, `getCallbackDuals()` instead
      Get the x values of a solution. This is a convenience wrapper for `getSol(double[],double[],double[],double[])` that allocates and returns only the `x` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getSol(double[], double[], double[], double[])`

    - #### getSolSlack

          @Deprecated
          public double[] getSolSlack()
                               throws XPRSprobException

      Deprecated.
      since 41.00, will be removed in a future release, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, `getCallbackDuals()` instead
      Get the slack values of a solution. This is a convenience wrapper for `getSol(double[],double[],double[],double[])` that allocates and returns only the `slack` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getSol(double[], double[], double[], double[])`

    - #### getSolDuals

          @Deprecated
          public double[] getSolDuals()
                               throws XPRSprobException

      Deprecated.
      since 41.00, will be removed in a future release, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, `getCallbackDuals()` instead
      Get the duals values of a solution. This is a convenience wrapper for `getSol(double[],double[],double[],double[])` that allocates and returns only the `duals` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getSol(double[], double[], double[], double[])`

    - #### getSolDjs

          @Deprecated
          public double[] getSolDjs()
                             throws XPRSprobException

      Deprecated.
      since 41.00, will be removed in a future release, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, `getCallbackDuals()` instead
      Get the djs values of a solution. This is a convenience wrapper for `getSol(double[],double[],double[],double[])` that allocates and returns only the `djs` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getSol(double[], double[], double[], double[])`

    - #### getSol

          @Deprecated
          public XPRSprob.Solution getSol()
                                   throws XPRSprobException

      Deprecated.
      since 41.00, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()`, `getRedCosts()`, `getCallbackRedCosts()`, `getDuals()`, `getCallbackDuals()` instead
      Get a solution. This is a convenience wrapper for `getSol(double[],double[],double[],double[])` that allocates and returns all arrays in a single object.
      Throws:
        `XPRSprobException`
      See Also:
        `getSol(double[], double[], double[], double[])`

    - #### getPresolveSolX

          public double[] getPresolveSolX()
                                   throws XPRSprobException

      Get the x values of a solution. This is a convenience wrapper for `getPresolveSol(double[],double[],double[],double[])` that allocates and returns only the `x` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getPresolveSol(double[], double[], double[], double[])`

    - #### getPresolveSolSlack

          public double[] getPresolveSolSlack()
                                       throws XPRSprobException

      Get the slack values of a solution. This is a convenience wrapper for `getPresolveSol(double[],double[],double[],double[])` that allocates and returns only the `slack` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getPresolveSol(double[], double[], double[], double[])`

    - #### getPresolveSolDuals

          public double[] getPresolveSolDuals()
                                       throws XPRSprobException

      Get the duals values of a solution. This is a convenience wrapper for `getPresolveSol(double[],double[],double[],double[])` that allocates and returns only the `duals` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getPresolveSol(double[], double[], double[], double[])`

    - #### getPresolveSolDjs

          public double[] getPresolveSolDjs()
                                     throws XPRSprobException

      Get the djs values of a solution. This is a convenience wrapper for `getPresolveSol(double[],double[],double[],double[])` that allocates and returns only the `djs` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getPresolveSol(double[], double[], double[], double[])`

    - #### getPresolveSol

          public XPRSprob.Solution getPresolveSol()
                                           throws XPRSprobException

      Get a solution. This is a convenience wrapper for `getPresolveSol(double[],double[],double[],double[])` that allocates and returns all arrays in a single object.
      Throws:
        `XPRSprobException`
      See Also:
        `getPresolveSol(double[], double[], double[], double[])`

    - #### getLpSolX

          public double[] getLpSolX()
                             throws XPRSprobException

      Get the x values of a solution. This is a convenience wrapper for `getLpSol(double[],double[],double[],double[])` that allocates and returns only the `x` array.

      Examples using `getLpSolX`:

      - FixBV.java
      Throws:
        `XPRSprobException`
      See Also:
        `getLpSol(double[], double[], double[], double[])`

    - #### getLpSolSlack

          public double[] getLpSolSlack()
                                 throws XPRSprobException

      Get the slack values of a solution. This is a convenience wrapper for `getLpSol(double[],double[],double[],double[])` that allocates and returns only the `slack` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getLpSol(double[], double[], double[], double[])`

    - #### getLpSolDuals

          public double[] getLpSolDuals()
                                 throws XPRSprobException

      Get the duals values of a solution. This is a convenience wrapper for `getLpSol(double[],double[],double[],double[])` that allocates and returns only the `duals` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getLpSol(double[], double[], double[], double[])`

    - #### getLpSolDjs

          public double[] getLpSolDjs()
                               throws XPRSprobException

      Get the djs values of a solution. This is a convenience wrapper for `getLpSol(double[],double[],double[],double[])` that allocates and returns only the `djs` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getLpSol(double[], double[], double[], double[])`

    - #### getLpSol

          public XPRSprob.Solution getLpSol()
                                     throws XPRSprobException

      Get a solution. This is a convenience wrapper for `getLpSol(double[],double[],double[],double[])` that allocates and returns all arrays in a single object.
      Throws:
        `XPRSprobException`
      See Also:
        `getLpSol(double[], double[], double[], double[])`

    - #### getMipSolX

          @Deprecated
          public double[] getMipSolX()
                              throws XPRSprobException

      Deprecated.
      since 44.00, will be removed in a future release, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()` instead
      Get the x values of a solution. This is a convenience wrapper for `getMipSol(double[],double[])` that allocates and returns only the `x` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getMipSol(double[], double[])`

    - #### getMipSolSlack

          @Deprecated
          public double[] getMipSolSlack()
                                  throws XPRSprobException

      Deprecated.
      since 44.00, will be removed in a future release, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()` instead
      Get the slack values of a solution. This is a convenience wrapper for `getMipSol(double[],double[])` that allocates and returns only the `slack` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getMipSol(double[], double[])`

    - #### getMipSol

          @Deprecated
          public XPRSprob.Solution getMipSol()
                                      throws XPRSprobException

      Deprecated.
      since 44.00, use one of `getSolution()`, `getCallbackSolution()`, `getSlacks()`, `getCallbackSlacks()` instead
      Get a solution. This is a convenience wrapper for `getMipSol(double[],double[])` that allocates and returns all arrays in a single object.
      Throws:
        `XPRSprobException`
      See Also:
        `getMipSol(double[], double[])`

    - #### getLastBarSolX

          public double[] getLastBarSolX()
                                  throws XPRSprobException

      Get the x values of a solution. This is a convenience wrapper for `getLastBarSol(double[],double[],double[],double[],com.dashoptimization.IntHolder)` that allocates and returns only the `x` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getLastBarSol(double[], double[], double[], double[], IntHolder)`

    - #### getLastBarSolSlack

          public double[] getLastBarSolSlack()
                                      throws XPRSprobException

      Get the slack values of a solution. This is a convenience wrapper for `getLastBarSol(double[],double[],double[],double[],com.dashoptimization.IntHolder)` that allocates and returns only the `slack` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getLastBarSol(double[], double[], double[], double[], IntHolder)`

    - #### getLastBarSolDuals

          public double[] getLastBarSolDuals()
                                      throws XPRSprobException

      Get the duals values of a solution. This is a convenience wrapper for `getLastBarSol(double[],double[],double[],double[],com.dashoptimization.IntHolder)` that allocates and returns only the `duals` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getLastBarSol(double[], double[], double[], double[], IntHolder)`

    - #### getLastBarSolDjs

          public double[] getLastBarSolDjs()
                                    throws XPRSprobException

      Get the djs values of a solution. This is a convenience wrapper for `getLastBarSol(double[],double[],double[],double[],com.dashoptimization.IntHolder)` that allocates and returns only the `djs` array.
      Throws:
        `XPRSprobException`
      See Also:
        `getLastBarSol(double[], double[], double[], double[], IntHolder)`

    - #### getLastBarSol

          public XPRSprob.StatusSolution getLastBarSol()
                                                throws XPRSprobException

      Get a solution. This is a convenience wrapper for `getLastBarSol(double[],double[],double[],double[],com.dashoptimization.IntHolder)` that allocates and returns all arrays in a single object.
      Throws:
        `XPRSprobException`
      See Also:
        `getLastBarSol(double[], double[], double[], double[], IntHolder)`

Covered Topics

- XPRSprob.AbstractUserFunction
- XPRSprob.Attributes
- XPRSprob.Controls
- XPRSprob.MapDeltaFunction
- XPRSprob.MapFunction
- XPRSprob.MIPEntityInfo
- XPRSprob.MultiMapDeltaFunction
- XPRSprob.MultiMapFunction
- XPRSprob.VecMapDeltaFunction
- XPRSprob.VecMapFunction

Parent Topic Class Summary

© 2001-2026 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.