// % -*- mode: C; c-mode -*-

// use cpp to make Var goes up and down (and so on) between Min and Max, 
// with a derivative bounded by Delta

#define up_and_down(Var, Min, Max, Delta) ( \
    (if \
        (pre Var < Min) or ((pre Var < Max) and (pre pre Var <= pre Var)) \
     then \
          (Var > pre Var) \
     else \
          (Var < pre Var) \
     ) \
     and (abs(Var - pre Var) < Delta) \
 )

