相关疑难解决方法(0)

我如何摆脱Core中的`let`?

我有一个在内部循环中经常调用的函数.它看起来像这样:

import qualified Data.Vector.Storable as SV

newtype Timedelta = Timedelta Double

cklsLogDens :: SV.Vector Double -> Timedelta -> Double -> Double -> Double
cklsLogDens p (Timedelta dt) x0 x1 = if si <= 0 then -1e50 else c - 0.5*((x1-mu)/sd)^2 
  where
    al  = p `SV.unsafeIndex` 0
    be  = p `SV.unsafeIndex` 1
    si  = p `SV.unsafeIndex` 2
    xi  = p `SV.unsafeIndex` 3
    sdt = sqrt dt
    mu  = x0 + (al + be*x0)*dt
    sd  = si * (x0 ** xi) * …
Run Code Online (Sandbox Code Playgroud)

optimization haskell core

10
推荐指数
2
解决办法
329
查看次数

标签 统计

core ×1

haskell ×1

optimization ×1