# Enums

The members of the fundamental HiGHS enums are defined below. If `Enum`

refers to a particular enum, and `Member`

to a particular member, the members are available as follows.

- Python:
`highspy.Enum.Member`

- C++:
`Enum::Member`

Members for internal use only are not documented.

## HighsStatus

This is (part of) the return value of most HiGHS methods:

`kError`

: The method has exposed an error`kOk`

: The method has completed successfully`kWarning`

: The method has recovered from an unusual event, or has terminated

due to reaching a time or iteration limit

## MatrixFormat

This defines the format of a HighsSparseMatrix:

`kColwise`

: The matrix is stored column-wise`kRowwise`

: The matrix is stored row-wise

## ObjSense

This defines optimization sense of a HighsLp:

`kMinimize`

: The objective is to be minimized`kMaximize`

: The objective is to be maximized

## HighsVarType

This defines the feasible values of a variable within a model:

`kContinuous`

: The variable can take continuous values between its bounds`kInteger`

: The variable must take integer values between its bounds`kSemiContinuous`

: The variable must be zero or take continuous values between its bounds`kSemiInteger`

: The variable must be zero or take integer values between its bounds

## HessianFormat

This defines the format of a HighsHessian:

`kTriangular`

: The lower triangular component of the Hessian is stored column-wise or, equivalently, the upper triangular component is stored row-wise`kSquare`

: The whole Hessian $Q$ is stored column-wise. This is for input only: internally the lower triangular component of $(Q+Q^T)/2$ will be stored

## SolutionStatus

This defines the nature of any primal or dual solution information:

`kSolutionStatusNone`

: There is no solution information`kSolutionStatusInfeasible`

: The solution is not feasible`kSolutionStatusFeasible`

: The solution is feasible

## BasisValidity

This defines the nature of any basis information:

`kBasisValidityInvalid`

: There is no basisn information`kBasisValidityValid`

: The basis information is valid

## HighsModelStatus

This defines the status of the model after a call to `run`

`kNotset`

: The model status has not been set`kModelError`

: There is an error in the model`kSolveError`

: There has been an error when solving the model`kModelEmpty`

: The model is empty`kOptimal`

: The model has been solved to optimality`kInfeasible`

: The model is infeasible`kUnboundedOrInfeasible`

: The model is unbounded or infeasible`kUnbounded`

: The model is unbounded`kObjectiveBound`

: The bound on the model objective value has been reached`kObjectiveTarget`

: The target value for the model objective has been reached`kTimeLimit`

: The run time limit has been reached`kIterationLimit`

: The iteration limit has been reached`kSolutionLimit`

: The MIP solver has reached the limit on the number of LPs solved`kInterrupt`

: The solver has been interrupted by the user`kMemoryLimit`

: The solver has been unable to allocate sufficient memory`kUnknown`

: The model status is unknown

## HighsBasisStatus

This defines the status of a variable (or slack variable for a constraint) in a basis:

`kLower`

: The variable is nonbasic at its lower bound (or fixed value)`kBasic`

: The variable is basic`kUpper`

: The variable is at its upper bound`kZero`

: A free variable is nonbasic and set to zero`kNonbasic`

: The variable is nonbasic

## HighsOptionType

This defines the types of option values that control HiGHS:

`kBool`

: The option type is boolean`kInt`

: The option type is integer`kDouble`

: The option type is double`kString`

: The option type is string

## HighsInfoType

This defines the types of (scalar) information available after a call to `run`

:

`kInt64`

: The information type is 64-bit integer`kInt`

: The information type is integer`kDouble`

: The information type is double