module: sampler_w_delay
parameters:
inputs: double in, double_interp clk
outputs:  double out
static_variables: double prev_in, double prev_out
classes: EdgeDetect rising_edge()
init:
prev_in = 0.0;
prev_out = 0.0;
out = 0.0;
code:
out = prev_out;
if (rising_edge.inp(clk))
  prev_out = (prev_in*(clk+1.0) + in*(-clk+1.0))/2.0;
prev_in = in; 
