(** Bouncing ball. *) let y_0 = 10.0 let g = 9.81 let loose = 0.5 (* The bouncing ball *) let hybrid ball(y_0) = (y, y_v, z) where rec der y = y_v init y_0 and der y_v = -. g init 0.0 reset z -> (-. loose *. last y_v) and z = up(-. y) let node showtime () = let rec t = (0.0 fby t +. 0.01) in Showball.showtime (t) (* Main entry point *) let hybrid main () = let (y, y_v, z) = ball(y_0) in present z -> Showball.show (y, y_v); present (period (0.01)) -> showtime (); ()