The problematic expression is: let ticks = R.atTimes [0,0.1..] :: R.Event () integration = ticks `R.integral` R.time in integration The value inside integration is always 0. But here is a full sample program to demonstrate the problem: {-# OPTIONS -fglasgow-exts -O2 -Wall #-} import Control.Applicative import qualified FRP.Reactive as R import qualified Graphics.FieldTrip as FT import Graphics.FieldTrip((*%)) import qualified FRP.Reactive.FieldTrip.Adapter as FieldTripA resize :: (FT.Transform (FT.Transform3 s) a) => s -> a -> a resize size = (FT.uscale3 size *%) utext :: String -> FT.Geometry3 utext = FT.flatG . FT.utext main :: IO () main = do let ticks = R.atTimes [0,0.1..] :: R.Event () integration = ticks `R.integral` R.time FieldTripA.anim3 . pure $ resize (0.3::Double) . utext . show <$> integration
Hi Eyal, Yes, integral is probably broken. It uses snapshot, which uses event join, which relies on my new unreleased changes in the structure of Time, which relies on unamb working well, which needs recent fixes to GHC's run-time system. Thanks to community input (notably from Sterling, Bertram, and Simon M), the RTS problems were identified and solved. I'm waiting for a stable ghc snapshot with RTS fixes that will then unblock unamb and the new Reactive stuff. Regards, - Conal 2009/1/13 Eyal Lotem <eyal.lotem@gmail.com>
The problematic expression is:
let ticks = R.atTimes [0,0.1..] :: R.Event () integration = ticks `R.integral` R.time in integration
The value inside integration is always 0.
But here is a full sample program to demonstrate the problem:
{-# OPTIONS -fglasgow-exts -O2 -Wall #-}
import Control.Applicative import qualified FRP.Reactive as R import qualified Graphics.FieldTrip as FT import Graphics.FieldTrip((*%)) import qualified FRP.Reactive.FieldTrip.Adapter as FieldTripA
resize :: (FT.Transform (FT.Transform3 s) a) => s -> a -> a resize size = (FT.uscale3 size *%)
utext :: String -> FT.Geometry3 utext = FT.flatG . FT.utext
main :: IO () main = do let ticks = R.atTimes [0,0.1..] :: R.Event () integration = ticks `R.integral` R.time FieldTripA.anim3 . pure $ resize (0.3::Double) . utext . show <$> integration
_______________________________________________ Reactive mailing list Reactive@haskell.org http://www.haskell.org/mailman/listinfo/reactive
participants (2)
-
Conal Elliott -
Eyal Lotem