((declare (in) float a) (declare (in) float b)
 (function sub
  (signature float (parameters)
   ((declare (temporary) bool execute_flag)
    (assign (x) (var_ref execute_flag) (constant bool (1)))
    (declare (temporary) float return_value)
    (declare (temporary) bool return_flag)
    (assign (x) (var_ref return_flag) (constant bool (0)))
    (if (expression bool > (var_ref a) (constant float (0.000000)))
     ((if (expression bool > (var_ref b) (constant float (0.000000)))
       ((assign (x) (var_ref return_value) (constant float (1.000000)))
        (assign (x) (var_ref return_flag) (constant bool (1)))
        (assign (x) (var_ref execute_flag) (constant bool (0))))
       ()))
     ())
    (if (var_ref execute_flag)
     ((assign (x) (var_ref return_value) (constant float (2.000000)))
      (assign (x) (var_ref return_flag) (constant bool (1)))
      (assign (x) (var_ref execute_flag) (constant bool (0))))
     ())
    (return (var_ref return_value))))))
