Safe Haskell | None |
---|---|
Language | Haskell2010 |
- toPrecondAD :: (forall a. AnyRFCxt a => V.Vector a -> a) -> Precond
- toPrecondG :: (VG.Vector vec Double, v ~ vec Double) => (v -> v -> IO v) -> Precond
- toFuncM :: VG.Vector v Double => (v Double -> IO (v Double)) -> MFunc
- toFuncMG :: (VG.Vector n Double, VG.Vector n (m Double), n ~ m) => (n Double -> IO (m Double)) -> (n Double -> IO (n (m Double))) -> MFunc
- toFuncMAD :: (forall a. AnyRFCxt a => V.Vector a -> V.Vector a) -> MFunc
- toFunc :: VG.Vector v Double => (v Double -> IO Double) -> Func
- toFuncAD :: (forall a. AnyRFCxt a => V.Vector a -> a) -> Func
- toFuncG :: VG.Vector v Double => (v Double -> IO Double) -> (v Double -> IO (v Double)) -> Func
- type family UnFunPtr a
- type Func = UnFunPtr FunPtrFunc
- type FunPtrMFunc = C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ())
- type MFunc = UnFunPtr FunPtrMFunc
- type FunPtrPrecond = C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ())
- type Precond = UnFunPtr FunPtrPrecond
- newtype NLOpt = NLOpt (C2HSImp.ForeignPtr NLOpt)
- withNLOpt :: NLOpt -> (C2HSImp.Ptr NLOpt -> IO b) -> IO b
- type FunPtrFunc = C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble)
- data NloptAlgorithm
- = NLOPT_GN_DIRECT
- | NLOPT_GN_DIRECT_L
- | NLOPT_GN_DIRECT_L_RAND
- | NLOPT_GN_DIRECT_NOSCAL
- | NLOPT_GN_DIRECT_L_NOSCAL
- | NLOPT_GN_DIRECT_L_RAND_NOSCAL
- | NLOPT_GN_ORIG_DIRECT
- | NLOPT_GN_ORIG_DIRECT_L
- | NLOPT_GD_STOGO
- | NLOPT_GD_STOGO_RAND
- | NLOPT_LD_LBFGS_NOCEDAL
- | NLOPT_LD_LBFGS
- | NLOPT_LN_PRAXIS
- | NLOPT_LD_VAR1
- | NLOPT_LD_VAR2
- | NLOPT_LD_TNEWTON
- | NLOPT_LD_TNEWTON_RESTART
- | NLOPT_LD_TNEWTON_PRECOND
- | NLOPT_LD_TNEWTON_PRECOND_RESTART
- | NLOPT_GN_CRS2_LM
- | NLOPT_GN_MLSL
- | NLOPT_GD_MLSL
- | NLOPT_GN_MLSL_LDS
- | NLOPT_GD_MLSL_LDS
- | NLOPT_LD_MMA
- | NLOPT_LN_COBYLA
- | NLOPT_LN_NEWUOA
- | NLOPT_LN_NEWUOA_BOUND
- | NLOPT_LN_NELDERMEAD
- | NLOPT_LN_SBPLX
- | NLOPT_LN_AUGLAG
- | NLOPT_LD_AUGLAG
- | NLOPT_LN_AUGLAG_EQ
- | NLOPT_LD_AUGLAG_EQ
- | NLOPT_LN_BOBYQA
- | NLOPT_GN_ISRES
- | NLOPT_AUGLAG
- | NLOPT_AUGLAG_EQ
- | NLOPT_G_MLSL
- | NLOPT_G_MLSL_LDS
- | NLOPT_LD_SLSQP
- | NLOPT_LD_CCSAQ
- | NLOPT_GN_ESCH
- | NLOPT_NUM_ALGORITHMS
- data NloptResult
- checkEC :: C2HSImp.CInt -> IO NloptResult
- nloptSrand :: Int -> IO ()
- nloptSrandTime :: IO ()
- nloptVersion :: IO (Int, Int, Int)
- nloptCreate :: NloptAlgorithm -> Int -> IO NLOpt
- nloptCopy :: NLOpt -> IO NLOpt
- nloptDestroy :: C2HSImp.Ptr () -> IO ()
- nloptOptimize :: NLOpt -> Vec -> IO (NloptResult, Double)
- nloptSetMinObjective :: NLOpt -> Func -> IO NloptResult
- nloptSetMaxObjective :: NLOpt -> Func -> IO NloptResult
- nloptSetPrecondMinObjective :: NLOpt -> Func -> Precond -> IO NloptResult
- nloptSetPrecondMaxObjective :: NLOpt -> Func -> Precond -> IO NloptResult
- nloptGetAlgorithm :: NLOpt -> IO NloptAlgorithm
- nloptGetDimension :: NLOpt -> IO Int
- nloptSetLowerBounds :: NLOpt -> Vec -> IO NloptResult
- nloptSetUpperBounds :: NLOpt -> Vec -> IO NloptResult
- nloptGetLowerBounds :: NLOpt -> Vec -> IO NloptResult
- nloptGetUpperBounds :: NLOpt -> Vec -> IO NloptResult
- nloptSetLowerBounds1 :: NLOpt -> Double -> IO NloptResult
- nloptSetUpperBounds1 :: NLOpt -> Double -> IO NloptResult
- nloptRemoveInequalityConstraints :: NLOpt -> IO NloptResult
- nloptAddInequalityConstraint :: NLOpt -> Func -> Double -> IO NloptResult
- nloptAddPrecondInequalityConstraint :: NLOpt -> Func -> Precond -> Double -> IO NloptResult
- nloptAddInequalityMconstraint :: NLOpt -> Int -> MFunc -> Vec -> IO NloptResult
- nloptRemoveEqualityConstraints :: NLOpt -> IO NloptResult
- nloptAddEqualityConstraint :: NLOpt -> Func -> Double -> IO NloptResult
- nloptAddPrecondEqualityConstraint :: NLOpt -> Func -> Precond -> Double -> IO NloptResult
- nloptAddEqualityMconstraint :: NLOpt -> Int -> MFunc -> Vec -> IO NloptResult
- nloptSetStopval :: NLOpt -> Double -> IO NloptResult
- nloptGetStopval :: NLOpt -> IO Double
- nloptSetFtolRel :: NLOpt -> Double -> IO NloptResult
- nloptGetFtolRel :: NLOpt -> IO Double
- nloptSetFtolAbs :: NLOpt -> Double -> IO NloptResult
- nloptGetFtolAbs :: NLOpt -> IO Double
- nloptSetXtolRel :: NLOpt -> Double -> IO NloptResult
- nloptGetXtolRel :: NLOpt -> IO Double
- nloptSetXtolAbs1 :: NLOpt -> Double -> IO NloptResult
- nloptSetXtolAbs :: NLOpt -> Vec -> IO NloptResult
- nloptGetXtolAbs :: NLOpt -> Vec -> IO NloptResult
- nloptSetMaxeval :: NLOpt -> Int -> IO NloptResult
- nloptGetMaxeval :: NLOpt -> IO Int
- nloptSetMaxtime :: NLOpt -> Double -> IO NloptResult
- nloptGetMaxtime :: NLOpt -> IO Double
- nloptForceStop :: NLOpt -> IO NloptResult
- nloptSetForceStop :: NLOpt -> Int -> IO NloptResult
- nloptGetForceStop :: NLOpt -> IO Int
- nloptSetLocalOptimizer :: NLOpt -> NLOpt -> IO NloptResult
- nloptSetPopulation :: NLOpt -> Int -> IO NloptResult
- nloptGetPopulation :: NLOpt -> IO Int
- nloptSetVectorStorage :: NLOpt -> Int -> IO NloptResult
- nloptGetVectorStorage :: NLOpt -> IO Int
- nloptSetInitialStep :: NLOpt -> Vec -> IO NloptResult
- nloptGetInitialStep :: NLOpt -> Vec -> Vec -> IO NloptResult
- nloptSetInitialStep1 :: NLOpt -> Double -> IO NloptResult
- withNLOpt_ :: NLOpt -> (C2HSImp.Ptr b1 -> IO b) -> IO b
- vmUnsafeWith :: VM.IOVector Double -> (C2HSImp.Ptr C2HSImp.CDouble -> IO b) -> IO b
- ptrToVS :: Integral n => n -> C2HSImp.Ptr C2HSImp.CDouble -> IO Vec
- ptrToV :: (VG.Vector v Double, Integral n) => n -> C2HSImp.Ptr C2HSImp.CDouble -> IO (v Double)
- copyInto :: (Integral n, VG.Vector v Double) => n -> C2HSImp.Ptr C2HSImp.CDouble -> v Double -> IO ()
- type Vec = VM.IOVector Double
- toCInt :: (Enum a, Num b) => a -> b
- fromCInt :: (Enum a, Integral a1) => a1 -> a
- peekInt :: (Integral a, Num b, Storable a) => C2HSImp.Ptr a -> IO b
- ptrToNLOpt :: C2HSImp.Ptr () -> IO NLOpt
- mkNloptFinalizer :: (C2HSImp.Ptr () -> IO ()) -> IO (C2HSImp.FunPtr (C2HSImp.Ptr () -> IO ()))
- nloptDestroyFP :: C2HSImp.FunPtr (C2HSImp.Ptr () -> IO ())
- mkFunc :: Func -> IO (C2HSImp.FunPtr Func)
- mkPrecond :: Precond -> IO (C2HSImp.FunPtr Precond)
- mkMFunc :: MFunc -> IO (C2HSImp.FunPtr MFunc)
- withFunc :: Func -> (C2HSImp.FunPtr Func -> IO b) -> IO b
- withPrecond :: Precond -> (C2HSImp.FunPtr Precond -> IO b) -> IO b
- withMFunc :: MFunc -> (C2HSImp.FunPtr MFunc -> IO b) -> IO b
- withNull :: (C2HSImp.Ptr a -> t) -> t
- peekDouble :: C2HSImp.Ptr C2HSImp.CDouble -> IO Double
- mXv :: Num a => V.Vector (V.Vector a) -> V.Vector a -> V.Vector a
- nloptSrand'_ :: C2HSImp.CULong -> IO ()
- nloptSrandTime'_ :: IO ()
- nloptVersion'_ :: C2HSImp.Ptr C2HSImp.CInt -> C2HSImp.Ptr C2HSImp.CInt -> C2HSImp.Ptr C2HSImp.CInt -> IO ()
- nloptCreate'_ :: C2HSImp.CInt -> C2HSImp.CUInt -> IO (C2HSImp.Ptr ())
- nloptCopy'_ :: C2HSImp.Ptr () -> IO (C2HSImp.Ptr ())
- nloptDestroy'_ :: C2HSImp.Ptr () -> IO ()
- nloptOptimize'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptSetMinObjective'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.Ptr () -> IO C2HSImp.CInt
- nloptSetMaxObjective'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.Ptr () -> IO C2HSImp.CInt
- nloptSetPrecondMinObjective'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) -> C2HSImp.Ptr () -> IO C2HSImp.CInt
- nloptSetPrecondMaxObjective'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) -> C2HSImp.Ptr () -> IO C2HSImp.CInt
- nloptGetAlgorithm'_ :: C2HSImp.Ptr () -> IO C2HSImp.CInt
- nloptGetDimension'_ :: C2HSImp.Ptr () -> IO C2HSImp.CUInt
- nloptSetLowerBounds'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptSetUpperBounds'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptGetLowerBounds'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptGetUpperBounds'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptSetLowerBounds1'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptSetUpperBounds1'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptRemoveInequalityConstraints'_ :: C2HSImp.Ptr () -> IO C2HSImp.CInt
- nloptAddInequalityConstraint'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptAddPrecondInequalityConstraint'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) -> C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptAddInequalityMconstraint'_ :: C2HSImp.Ptr () -> C2HSImp.CUInt -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) -> C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptRemoveEqualityConstraints'_ :: C2HSImp.Ptr () -> IO C2HSImp.CInt
- nloptAddEqualityConstraint'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptAddPrecondEqualityConstraint'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) -> C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptAddEqualityMconstraint'_ :: C2HSImp.Ptr () -> C2HSImp.CUInt -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) -> C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptSetStopval'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptGetStopval'_ :: C2HSImp.Ptr () -> IO C2HSImp.CDouble
- nloptSetFtolRel'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptGetFtolRel'_ :: C2HSImp.Ptr () -> IO C2HSImp.CDouble
- nloptSetFtolAbs'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptGetFtolAbs'_ :: C2HSImp.Ptr () -> IO C2HSImp.CDouble
- nloptSetXtolRel'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptGetXtolRel'_ :: C2HSImp.Ptr () -> IO C2HSImp.CDouble
- nloptSetXtolAbs1'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptSetXtolAbs'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptGetXtolAbs'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptSetMaxeval'_ :: C2HSImp.Ptr () -> C2HSImp.CInt -> IO C2HSImp.CInt
- nloptGetMaxeval'_ :: C2HSImp.Ptr () -> IO C2HSImp.CInt
- nloptSetMaxtime'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptGetMaxtime'_ :: C2HSImp.Ptr () -> IO C2HSImp.CDouble
- nloptForceStop'_ :: C2HSImp.Ptr () -> IO C2HSImp.CInt
- nloptSetForceStop'_ :: C2HSImp.Ptr () -> C2HSImp.CInt -> IO C2HSImp.CInt
- nloptGetForceStop'_ :: C2HSImp.Ptr () -> IO C2HSImp.CInt
- nloptSetLocalOptimizer'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr () -> IO C2HSImp.CInt
- nloptSetPopulation'_ :: C2HSImp.Ptr () -> C2HSImp.CUInt -> IO C2HSImp.CInt
- nloptGetPopulation'_ :: C2HSImp.Ptr () -> IO C2HSImp.CUInt
- nloptSetVectorStorage'_ :: C2HSImp.Ptr () -> C2HSImp.CUInt -> IO C2HSImp.CInt
- nloptGetVectorStorage'_ :: C2HSImp.Ptr () -> IO C2HSImp.CUInt
- nloptSetInitialStep'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptGetInitialStep'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt
- nloptSetInitialStep1'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt
converting haskell functions
NLOpt has three different types for functions FunPtrFunc
FunPtrMFunc
and FunPtrPrecond
.
AD
- means derivatives are calculated, and the haskell function does no IO.
G
- mean you are providing the derivatives
M
- means m functions are calculated at a time
toPrecondAD :: (forall a. AnyRFCxt a => V.Vector a -> a) -> Precond Source
an exact hessian calculated with AD. See toPrecondG
XXX BFGS approx could also be done...
toFuncMG :: (VG.Vector n Double, VG.Vector n (m Double), n ~ m) => (n Double -> IO (m Double)) -> (n Double -> IO (n (m Double))) -> MFunc Source
n
and m
type variables indicate the vector size as
number of inputs and number of outputs respectively
toFuncAD :: (forall a. AnyRFCxt a => V.Vector a -> a) -> Func Source
where the gradient happens via AD
type UnFunPtr (C2HSImp.FunPtr a) = a Source |
type Func = UnFunPtr FunPtrFunc Source
type FunPtrMFunc = C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) Source
type MFunc = UnFunPtr FunPtrMFunc Source
type FunPtrPrecond = C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) Source
type Precond = UnFunPtr FunPtrPrecond Source
type FunPtrFunc = C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) Source
data NloptAlgorithm Source
data NloptResult Source
negative (above NLOPT_SUCCESS) values of these are thrown as exceptions. The positive ones are return values.
checkEC :: C2HSImp.CInt -> IO NloptResult Source
nloptSrand :: Int -> IO () Source
nloptSrandTime :: IO () Source
nloptCreate :: NloptAlgorithm -> Int -> IO NLOpt Source
nloptDestroy :: C2HSImp.Ptr () -> IO () Source
should not need to be called manually
nloptOptimize :: NLOpt -> Vec -> IO (NloptResult, Double) Source
nloptSetMinObjective :: NLOpt -> Func -> IO NloptResult Source
nloptSetMaxObjective :: NLOpt -> Func -> IO NloptResult Source
nloptSetPrecondMinObjective :: NLOpt -> Func -> Precond -> IO NloptResult Source
nloptSetPrecondMaxObjective :: NLOpt -> Func -> Precond -> IO NloptResult Source
nloptGetDimension :: NLOpt -> IO Int Source
constraints
nloptSetLowerBounds :: NLOpt -> Vec -> IO NloptResult Source
nloptSetUpperBounds :: NLOpt -> Vec -> IO NloptResult Source
nloptGetLowerBounds :: NLOpt -> Vec -> IO NloptResult Source
nloptGetUpperBounds :: NLOpt -> Vec -> IO NloptResult Source
nloptSetLowerBounds1 :: NLOpt -> Double -> IO NloptResult Source
nloptSetUpperBounds1 :: NLOpt -> Double -> IO NloptResult Source
nloptAddInequalityConstraint :: NLOpt -> Func -> Double -> IO NloptResult Source
nloptAddPrecondInequalityConstraint :: NLOpt -> Func -> Precond -> Double -> IO NloptResult Source
nloptAddInequalityMconstraint :: NLOpt -> Int -> MFunc -> Vec -> IO NloptResult Source
nloptAddEqualityConstraint :: NLOpt -> Func -> Double -> IO NloptResult Source
nloptAddPrecondEqualityConstraint :: NLOpt -> Func -> Precond -> Double -> IO NloptResult Source
nloptAddEqualityMconstraint :: NLOpt -> Int -> MFunc -> Vec -> IO NloptResult Source
stopping criteria
nloptSetStopval :: NLOpt -> Double -> IO NloptResult Source
nloptGetStopval :: NLOpt -> IO Double Source
nloptSetFtolRel :: NLOpt -> Double -> IO NloptResult Source
nloptGetFtolRel :: NLOpt -> IO Double Source
nloptSetFtolAbs :: NLOpt -> Double -> IO NloptResult Source
nloptGetFtolAbs :: NLOpt -> IO Double Source
nloptSetXtolRel :: NLOpt -> Double -> IO NloptResult Source
nloptGetXtolRel :: NLOpt -> IO Double Source
nloptSetXtolAbs1 :: NLOpt -> Double -> IO NloptResult Source
nloptSetXtolAbs :: NLOpt -> Vec -> IO NloptResult Source
nloptGetXtolAbs :: NLOpt -> Vec -> IO NloptResult Source
nloptSetMaxeval :: NLOpt -> Int -> IO NloptResult Source
nloptGetMaxeval :: NLOpt -> IO Int Source
nloptSetMaxtime :: NLOpt -> Double -> IO NloptResult Source
nloptGetMaxtime :: NLOpt -> IO Double Source
nloptForceStop :: NLOpt -> IO NloptResult Source
nloptSetForceStop :: NLOpt -> Int -> IO NloptResult Source
nloptGetForceStop :: NLOpt -> IO Int Source
more algorithm-specific parameters
nloptSetLocalOptimizer :: NLOpt -> NLOpt -> IO NloptResult Source
nloptSetPopulation :: NLOpt -> Int -> IO NloptResult Source
nloptGetPopulation :: NLOpt -> IO Int Source
nloptSetVectorStorage :: NLOpt -> Int -> IO NloptResult Source
nloptGetVectorStorage :: NLOpt -> IO Int Source
nloptSetInitialStep :: NLOpt -> Vec -> IO NloptResult Source
nloptGetInitialStep :: NLOpt -> Vec -> Vec -> IO NloptResult Source
nloptSetInitialStep1 :: NLOpt -> Double -> IO NloptResult Source
utils for ffi
much is copied from Ipopt.Raw
withNLOpt_ :: NLOpt -> (C2HSImp.Ptr b1 -> IO b) -> IO b Source
vmUnsafeWith :: VM.IOVector Double -> (C2HSImp.Ptr C2HSImp.CDouble -> IO b) -> IO b Source
ptrToVS :: Integral n => n -> C2HSImp.Ptr C2HSImp.CDouble -> IO Vec Source
ptrToV :: (VG.Vector v Double, Integral n) => n -> C2HSImp.Ptr C2HSImp.CDouble -> IO (v Double) Source
copyInto :: (Integral n, VG.Vector v Double) => n -> C2HSImp.Ptr C2HSImp.CDouble -> v Double -> IO () Source
type Vec = VM.IOVector Double Source
ptrToNLOpt :: C2HSImp.Ptr () -> IO NLOpt Source
mkNloptFinalizer :: (C2HSImp.Ptr () -> IO ()) -> IO (C2HSImp.FunPtr (C2HSImp.Ptr () -> IO ())) Source
nloptDestroyFP :: C2HSImp.FunPtr (C2HSImp.Ptr () -> IO ()) Source
withPrecond :: Precond -> (C2HSImp.FunPtr Precond -> IO b) -> IO b Source
withNull :: (C2HSImp.Ptr a -> t) -> t Source
peekDouble :: C2HSImp.Ptr C2HSImp.CDouble -> IO Double Source
c2hs generates CDouble peek a Double instead
c2hs-generated
nloptSrand'_ :: C2HSImp.CULong -> IO () Source
nloptSrandTime'_ :: IO () Source
nloptVersion'_ :: C2HSImp.Ptr C2HSImp.CInt -> C2HSImp.Ptr C2HSImp.CInt -> C2HSImp.Ptr C2HSImp.CInt -> IO () Source
nloptCreate'_ :: C2HSImp.CInt -> C2HSImp.CUInt -> IO (C2HSImp.Ptr ()) Source
nloptCopy'_ :: C2HSImp.Ptr () -> IO (C2HSImp.Ptr ()) Source
nloptDestroy'_ :: C2HSImp.Ptr () -> IO () Source
nloptOptimize'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptSetMinObjective'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.Ptr () -> IO C2HSImp.CInt Source
nloptSetMaxObjective'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.Ptr () -> IO C2HSImp.CInt Source
nloptSetPrecondMinObjective'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) -> C2HSImp.Ptr () -> IO C2HSImp.CInt Source
nloptSetPrecondMaxObjective'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) -> C2HSImp.Ptr () -> IO C2HSImp.CInt Source
nloptGetAlgorithm'_ :: C2HSImp.Ptr () -> IO C2HSImp.CInt Source
nloptGetDimension'_ :: C2HSImp.Ptr () -> IO C2HSImp.CUInt Source
nloptSetLowerBounds1'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptSetUpperBounds1'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptAddInequalityConstraint'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptAddPrecondInequalityConstraint'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) -> C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptAddInequalityMconstraint'_ :: C2HSImp.Ptr () -> C2HSImp.CUInt -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) -> C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptAddEqualityConstraint'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptAddPrecondEqualityConstraint'_ :: C2HSImp.Ptr () -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO C2HSImp.CDouble) -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) -> C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptAddEqualityMconstraint'_ :: C2HSImp.Ptr () -> C2HSImp.CUInt -> C2HSImp.FunPtr (C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.CUInt -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr () -> IO ()) -> C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptSetStopval'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptGetStopval'_ :: C2HSImp.Ptr () -> IO C2HSImp.CDouble Source
nloptSetFtolRel'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptGetFtolRel'_ :: C2HSImp.Ptr () -> IO C2HSImp.CDouble Source
nloptSetFtolAbs'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptGetFtolAbs'_ :: C2HSImp.Ptr () -> IO C2HSImp.CDouble Source
nloptSetXtolRel'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptGetXtolRel'_ :: C2HSImp.Ptr () -> IO C2HSImp.CDouble Source
nloptSetXtolAbs1'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptSetMaxeval'_ :: C2HSImp.Ptr () -> C2HSImp.CInt -> IO C2HSImp.CInt Source
nloptGetMaxeval'_ :: C2HSImp.Ptr () -> IO C2HSImp.CInt Source
nloptSetMaxtime'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptGetMaxtime'_ :: C2HSImp.Ptr () -> IO C2HSImp.CDouble Source
nloptForceStop'_ :: C2HSImp.Ptr () -> IO C2HSImp.CInt Source
nloptSetForceStop'_ :: C2HSImp.Ptr () -> C2HSImp.CInt -> IO C2HSImp.CInt Source
nloptGetForceStop'_ :: C2HSImp.Ptr () -> IO C2HSImp.CInt Source
nloptSetLocalOptimizer'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr () -> IO C2HSImp.CInt Source
nloptSetPopulation'_ :: C2HSImp.Ptr () -> C2HSImp.CUInt -> IO C2HSImp.CInt Source
nloptGetPopulation'_ :: C2HSImp.Ptr () -> IO C2HSImp.CUInt Source
nloptSetVectorStorage'_ :: C2HSImp.Ptr () -> C2HSImp.CUInt -> IO C2HSImp.CInt Source
nloptGetInitialStep'_ :: C2HSImp.Ptr () -> C2HSImp.Ptr C2HSImp.CDouble -> C2HSImp.Ptr C2HSImp.CDouble -> IO C2HSImp.CInt Source
nloptSetInitialStep1'_ :: C2HSImp.Ptr () -> C2HSImp.CDouble -> IO C2HSImp.CInt Source