packages feed

nonlinear-optimization 0.3 → 0.3.1

raw patch · 2 files changed

+14/−3 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

Numeric/Optimization/Algorithms/HagerZhang05.hsc view
@@ -100,7 +100,7 @@     bracket (mkCFunction cf) freeHaskellFunPtr $ \cf_ptr    ->     bracket (mkCGradient cg) freeHaskellFunPtr $ \cg_ptr    ->     bracket (mkCCombined cc) freeHaskellFunPtr $ \cc_ptr    ->-    allocaArray (4*n)                          $ \work_ptr  -> do+    allocateWorkSpace n                        $ \work_ptr  -> do       -- Go to C land.       poke param_ptr params       ret <- cg_descent x_ptr (fromIntegral n)@@ -113,6 +113,17 @@   x' <- G.unsafeFreeze x   return $ ret `seq` (x', ret, stats) +-- | Allocates enough work space for CG_DESCENT.  If the number+-- of dimensions is "small enough" then we allocate on the stack,+-- otherwise we allocate via malloc.+allocateWorkSpace :: Int -> (Ptr Double -> IO a) -> IO a+allocateWorkSpace n+    | size < threshold = allocaBytes size+    | otherwise        = bracket (mallocBytes size) free+    where+      size = 4 * n * sizeOf (undefined :: Double)+      threshold = 4096 -- gives room to 128 dimensions+ type CFunction = Ptr Double ->               CInt -> IO Double type CGradient = Ptr Double -> Ptr Double -> CInt -> IO () type CCombined = Ptr Double -> Ptr Double -> CInt -> IO Double@@ -240,7 +251,7 @@   --- | Function calculating the both the value of the objective+-- | Function calculating both the value of the objective -- function @f@ and its gradient at a point @x@. data Combined t where     VCombined :: G.Vector v Double
nonlinear-optimization.cabal view
@@ -3,7 +3,7 @@ Tested-With:         GHC Category:            Math Name:                nonlinear-optimization-Version:             0.3+Version:             0.3.1 Stability:           experimental License:             GPL License-File:        LICENSE