highs-lp-0.0: src/Numeric/HiGHS/LP/Enumeration.hsc
module Numeric.HiGHS.LP.Enumeration where
import qualified Numeric.HiGHS.LP.FFI as Highs
#include "interfaces/highs_c_api.h"
data ModelStatus =
ModelStatusNotset
| ModelStatusLoadError
| ModelStatusModelError
| ModelStatusPresolveError
| ModelStatusSolveError
| ModelStatusPostsolveError
| ModelStatusModelEmpty
| ModelStatusOptimal
| ModelStatusInfeasible
| ModelStatusUnboundedOrInfeasible
| ModelStatusUnbounded
| ModelStatusObjectiveBound
| ModelStatusObjectiveTarget
| ModelStatusTimeLimit
| ModelStatusIterationLimit
| ModelStatusUnknown
| ModelStatusSolutionLimit
| ModelStatusInterrupt
deriving (Eq, Show)
modelStatusFromC :: Highs.ModelStatus -> ModelStatus
modelStatusFromC (Highs.ModelStatus status) =
case status of
(#const kHighsModelStatusNotset) ->
ModelStatusNotset
(#const kHighsModelStatusLoadError) ->
ModelStatusLoadError
(#const kHighsModelStatusModelError) ->
ModelStatusModelError
(#const kHighsModelStatusPresolveError) ->
ModelStatusPresolveError
(#const kHighsModelStatusSolveError) ->
ModelStatusSolveError
(#const kHighsModelStatusPostsolveError) ->
ModelStatusPostsolveError
(#const kHighsModelStatusModelEmpty) ->
ModelStatusModelEmpty
(#const kHighsModelStatusOptimal) ->
ModelStatusOptimal
(#const kHighsModelStatusInfeasible) ->
ModelStatusInfeasible
(#const kHighsModelStatusUnboundedOrInfeasible) ->
ModelStatusUnboundedOrInfeasible
(#const kHighsModelStatusUnbounded) ->
ModelStatusUnbounded
(#const kHighsModelStatusObjectiveBound) ->
ModelStatusObjectiveBound
(#const kHighsModelStatusObjectiveTarget) ->
ModelStatusObjectiveTarget
(#const kHighsModelStatusTimeLimit) ->
ModelStatusTimeLimit
(#const kHighsModelStatusIterationLimit) ->
ModelStatusIterationLimit
(#const kHighsModelStatusUnknown) ->
ModelStatusUnknown
(#const kHighsModelStatusSolutionLimit) ->
ModelStatusSolutionLimit
(#const kHighsModelStatusInterrupt) ->
ModelStatusInterrupt
_ -> error $ "unknown model status " ++ show status