diff options
Diffstat (limited to 'src/ForwardAD.hs')
| -rw-r--r-- | src/ForwardAD.hs | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/src/ForwardAD.hs b/src/ForwardAD.hs index b353def..6655423 100644 --- a/src/ForwardAD.hs +++ b/src/ForwardAD.hs @@ -254,8 +254,10 @@ makeFwdADArtifactInterp env expr =    in FwdADArtifact env (typeOf expr) (\inp -> interpretOpen False (dne env) inp dexpr)  {-# NOINLINE makeFwdADArtifactCompile #-} -makeFwdADArtifactCompile :: SList STy env -> Ex env t -> IO (FwdADArtifact env t) -makeFwdADArtifactCompile env expr = FwdADArtifact env (typeOf expr) . (unsafePerformIO .) <$> compile (dne env) (dfwdDN expr) +makeFwdADArtifactCompile :: SList STy env -> Ex env t -> IO (FwdADArtifact env t, String) +makeFwdADArtifactCompile env expr = do +  (fun, output) <- compile (dne env) (dfwdDN expr) +  return (FwdADArtifact env (typeOf expr) (unsafePerformIO . fun), output)  drevByFwdInterp :: SList STy env -> Ex env t -> SList Value env -> Rep (Tan t) -> SList Value (TanE env)  drevByFwdInterp env expr = drevByFwd (makeFwdADArtifactInterp env expr)  | 
