hmatrix-nlopt 0.1.3.0 → 0.2.0.0
raw patch · 2 files changed
+12/−13 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Numeric.NLOPT: instance GHC.Exception.Exception Numeric.NLOPT.NloptException
+ Numeric.NLOPT: infixr 5 :|
+ Numeric.NLOPT: instance GHC.Exception.Type.Exception Numeric.NLOPT.NloptException
- Numeric.NLOPT: BOBYQA :: Objective -> [Bounds] -> (Maybe InitialStep) -> LocalAlgorithm
+ Numeric.NLOPT: BOBYQA :: Objective -> [Bounds] -> Maybe InitialStep -> LocalAlgorithm
- Numeric.NLOPT: COBYLA :: Objective -> [Bounds] -> InequalityConstraints -> EqualityConstraints -> (Maybe InitialStep) -> LocalAlgorithm
+ Numeric.NLOPT: COBYLA :: Objective -> [Bounds] -> InequalityConstraints -> EqualityConstraints -> Maybe InitialStep -> LocalAlgorithm
- Numeric.NLOPT: CRS2_LM :: Objective -> RandomSeed -> (Maybe Population) -> GlobalAlgorithm
+ Numeric.NLOPT: CRS2_LM :: Objective -> RandomSeed -> Maybe Population -> GlobalAlgorithm
- Numeric.NLOPT: ISRES :: Objective -> InequalityConstraints -> EqualityConstraints -> RandomSeed -> GlobalAlgorithm
+ Numeric.NLOPT: ISRES :: Objective -> InequalityConstraints -> EqualityConstraints -> RandomSeed -> Maybe Population -> GlobalAlgorithm
- Numeric.NLOPT: InitialStep :: (Vector Double) -> InitialStep
+ Numeric.NLOPT: InitialStep :: Vector Double -> InitialStep
- Numeric.NLOPT: LBFGS :: ObjectiveD -> (Maybe VectorStorage) -> LocalAlgorithm
+ Numeric.NLOPT: LBFGS :: ObjectiveD -> Maybe VectorStorage -> LocalAlgorithm
- Numeric.NLOPT: LBFGS_NOCEDAL :: ObjectiveD -> (Maybe VectorStorage) -> LocalAlgorithm
+ Numeric.NLOPT: LBFGS_NOCEDAL :: ObjectiveD -> Maybe VectorStorage -> LocalAlgorithm
- Numeric.NLOPT: LowerBounds :: (Vector Double) -> Bounds
+ Numeric.NLOPT: LowerBounds :: Vector Double -> Bounds
- Numeric.NLOPT: MLSL :: Objective -> LocalProblem -> (Maybe Population) -> GlobalAlgorithm
+ Numeric.NLOPT: MLSL :: Objective -> LocalProblem -> Maybe Population -> GlobalAlgorithm
- Numeric.NLOPT: MLSL_LDS :: Objective -> LocalProblem -> (Maybe Population) -> GlobalAlgorithm
+ Numeric.NLOPT: MLSL_LDS :: Objective -> LocalProblem -> Maybe Population -> GlobalAlgorithm
- Numeric.NLOPT: NELDERMEAD :: Objective -> [Bounds] -> (Maybe InitialStep) -> LocalAlgorithm
+ Numeric.NLOPT: NELDERMEAD :: Objective -> [Bounds] -> Maybe InitialStep -> LocalAlgorithm
- Numeric.NLOPT: NEWUOA :: Objective -> (Maybe InitialStep) -> LocalAlgorithm
+ Numeric.NLOPT: NEWUOA :: Objective -> Maybe InitialStep -> LocalAlgorithm
- Numeric.NLOPT: NEWUOA_BOUND :: Objective -> [Bounds] -> (Maybe InitialStep) -> LocalAlgorithm
+ Numeric.NLOPT: NEWUOA_BOUND :: Objective -> [Bounds] -> Maybe InitialStep -> LocalAlgorithm
- Numeric.NLOPT: PRAXIS :: Objective -> [Bounds] -> (Maybe InitialStep) -> LocalAlgorithm
+ Numeric.NLOPT: PRAXIS :: Objective -> [Bounds] -> Maybe InitialStep -> LocalAlgorithm
- Numeric.NLOPT: ParameterAbsoluteTolerance :: (Vector Double) -> StoppingCondition
+ Numeric.NLOPT: ParameterAbsoluteTolerance :: Vector Double -> StoppingCondition
- Numeric.NLOPT: SBPLX :: Objective -> [Bounds] -> (Maybe InitialStep) -> LocalAlgorithm
+ Numeric.NLOPT: SBPLX :: Objective -> [Bounds] -> Maybe InitialStep -> LocalAlgorithm
- Numeric.NLOPT: TNEWTON :: ObjectiveD -> (Maybe VectorStorage) -> LocalAlgorithm
+ Numeric.NLOPT: TNEWTON :: ObjectiveD -> Maybe VectorStorage -> LocalAlgorithm
- Numeric.NLOPT: TNEWTON_PRECOND :: ObjectiveD -> (Maybe VectorStorage) -> LocalAlgorithm
+ Numeric.NLOPT: TNEWTON_PRECOND :: ObjectiveD -> Maybe VectorStorage -> LocalAlgorithm
- Numeric.NLOPT: TNEWTON_PRECOND_RESTART :: ObjectiveD -> (Maybe VectorStorage) -> LocalAlgorithm
+ Numeric.NLOPT: TNEWTON_PRECOND_RESTART :: ObjectiveD -> Maybe VectorStorage -> LocalAlgorithm
- Numeric.NLOPT: TNEWTON_RESTART :: ObjectiveD -> (Maybe VectorStorage) -> LocalAlgorithm
+ Numeric.NLOPT: TNEWTON_RESTART :: ObjectiveD -> Maybe VectorStorage -> LocalAlgorithm
- Numeric.NLOPT: UpperBounds :: (Vector Double) -> Bounds
+ Numeric.NLOPT: UpperBounds :: Vector Double -> Bounds
- Numeric.NLOPT: VAR1 :: ObjectiveD -> (Maybe VectorStorage) -> LocalAlgorithm
+ Numeric.NLOPT: VAR1 :: ObjectiveD -> Maybe VectorStorage -> LocalAlgorithm
- Numeric.NLOPT: VAR2 :: ObjectiveD -> (Maybe VectorStorage) -> LocalAlgorithm
+ Numeric.NLOPT: VAR2 :: ObjectiveD -> Maybe VectorStorage -> LocalAlgorithm
- Numeric.NLOPT: data NonEmpty a :: * -> *
+ Numeric.NLOPT: data NonEmpty a
- Numeric.NLOPT: data Result :: *
+ Numeric.NLOPT: data Result
- Numeric.NLOPT: type Objective = Vector Double Parameter vector -> Double Objective function value
+ Numeric.NLOPT: type Objective = Vector Double " Parameter vector" -> Double " Objective function value"
- Numeric.NLOPT: type ObjectiveD = Vector Double Parameter vector -> (Double, Vector Double) (Objective function value, gradient)
+ Numeric.NLOPT: type ObjectiveD = Vector Double " Parameter vector" -> (Double, Vector Double) " (Objective function value, gradient)"
- Numeric.NLOPT: type Preconditioner = Vector Double Parameter vector @x@ -> Vector Double Vector @v@ to precondition at @x@ -> Vector Double Preconditioned vector @vpre@
+ Numeric.NLOPT: type Preconditioner = Vector Double " Parameter vector @x@" -> Vector Double " Vector @v@ to precondition at @x@" -> Vector Double " Preconditioned vector @vpre@"
- Numeric.NLOPT: type ScalarConstraint = Vector Double Parameter vector @x@ -> Double Constraint violation (deviation from 0)
+ Numeric.NLOPT: type ScalarConstraint = Vector Double " Parameter vector @x@" -> Double " Constraint violation (deviation from 0)"
- Numeric.NLOPT: type ScalarConstraintD = Vector Double Parameter vector -> (Double, Vector Double) (Constraint violation, constraint gradient)
+ Numeric.NLOPT: type ScalarConstraintD = Vector Double " Parameter vector" -> (Double, Vector Double) " (Constraint violation, constraint gradient)"
- Numeric.NLOPT: type VectorConstraint = Vector Double Parameter vector -> Word Constraint vector size -> Vector Double Constraint violation vector
+ Numeric.NLOPT: type VectorConstraint = Vector Double " Parameter vector" -> Word " Constraint vector size" -> Vector Double " Constraint violation vector"
- Numeric.NLOPT: type VectorConstraintD = Vector Double Parameter vector -> Word Constraint vector size -> (Vector Double, Matrix Double) (Constraint violation vector, constraint Jacobian)
+ Numeric.NLOPT: type VectorConstraintD = Vector Double " Parameter vector" -> Word " Constraint vector size" -> (Vector Double, Matrix Double) " (Constraint violation vector, constraint Jacobian)"
Files
- hmatrix-nlopt.cabal +2/−2
- src/Numeric/NLOPT.hs +10/−11
hmatrix-nlopt.cabal view
@@ -1,5 +1,5 @@ name: hmatrix-nlopt-version: 0.1.3.0+version: 0.2.0.0 synopsis: Interface HMatrix with the NLOPT minimizer description: A high-level interface to <http://ab-initio.mit.edu/wiki/index.php/NLopt the NLOPT solvers>@@ -14,7 +14,7 @@ build-type: Simple extra-source-files: ChangeLog.md cabal-version: >=1.10-tested-with: GHC == 8.4.3+tested-with: GHC == 9.0.2 bug-reports: https://github.com/peddie/hmatrix-nlopt/issues source-repository head
src/Numeric/NLOPT.hs view
@@ -97,7 +97,6 @@ ) where import Numeric.LinearAlgebra as HM-import Numeric.LinearAlgebra (Vector, Matrix) import qualified Numeric.Optimization.NLOPT.Bindings as N import Data.List.NonEmpty (NonEmpty(..))@@ -502,7 +501,7 @@ -- | Controlled Random Search with Local Mutation | CRS2_LM Objective RandomSeed (Maybe Population) -- | Improved Stochastic Ranking Evolution Strategy- | ISRES Objective InequalityConstraints EqualityConstraints RandomSeed+ | ISRES Objective InequalityConstraints EqualityConstraints RandomSeed (Maybe Population) -- | Evolutionary Algorithm | ESCH Objective -- | Original Multi-Level Single-Linkage@@ -523,7 +522,7 @@ algorithmEnumOfGlobal (STOGO _) = N.GD_STOGO algorithmEnumOfGlobal (STOGO_RAND _ _) = N.GD_STOGO_RAND algorithmEnumOfGlobal (CRS2_LM _ _ _) = N.GN_CRS2_LM-algorithmEnumOfGlobal (ISRES _ _ _ _) = N.GN_ISRES+algorithmEnumOfGlobal (ISRES _ _ _ _ _) = N.GN_ISRES algorithmEnumOfGlobal (ESCH _) = N.GN_ESCH algorithmEnumOfGlobal (MLSL _ _ _) = N.G_MLSL algorithmEnumOfGlobal (MLSL_LDS _ _ _) = N.G_MLSL_LDS@@ -546,7 +545,7 @@ go (ORIG_DIRECT_L o _) = obj o go (STOGO_RAND o _) = objD o go (CRS2_LM o _ _) = obj o- go (ISRES o _ _ _) = obj o+ go (ISRES o _ _ _ _) = obj o go (MLSL o _ _) = obj o go (MLSL_LDS o _ _) = obj o @@ -568,7 +567,7 @@ go (ORIG_DIRECT_L _ ineq) = ic ineq go (STOGO_RAND _ s) = seed s go (CRS2_LM _ s p) = seed s *> pop p- go (ISRES _ ineq eq s) = ic ineq *> ec eq *> seed s+ go (ISRES _ ineq eq s p) = ic ineq *> ec eq *> seed s *> pop p go (MLSL _ lp p) = local lp *> pop p go (MLSL_LDS _ lp p) = local lp *> pop p go _ = return ()@@ -594,13 +593,13 @@ -- dimension. -- -- >>> import Numeric.LinearAlgebra ( dot, fromList )--- >>> let objf x = x `dot` x + 22 -- define objective--- >>> let stop = ObjectiveRelativeTolerance 1e-12 :| [] -- define stopping criterion--- >>> let algorithm = ISRES objf [] [] (SeedValue 22) -- specify algorithm--- >>> let lowerbounds = fromList [-10, -10] -- specify bounds--- >>> let upperbounds = fromList [10, 10] -- specify bounds+-- >>> let objf x = x `dot` x + 22 -- define objective+-- >>> let stop = ObjectiveRelativeTolerance 1e-12 :| [] -- define stopping criterion+-- >>> let algorithm = ISRES objf [] [] (SeedValue 22) Nothing -- specify algorithm+-- >>> let lowerbounds = fromList [-10, -10] -- specify bounds+-- >>> let upperbounds = fromList [10, 10] -- specify bounds -- >>> let problem = GlobalProblem lowerbounds upperbounds stop algorithm--- >>> let x0 = fromList [5, 8] -- specify initial guess+-- >>> let x0 = fromList [5, 8] -- specify initial guess -- >>> minimizeGlobal problem x0 -- Right (Solution {solutionCost = 22.000000000002807, solutionParams = [-1.660591102367038e-6,2.2407062393213684e-7], solutionResult = FTOL_REACHED}) minimizeGlobal :: GlobalProblem -- ^ Problem specification