frac32 in
bool32 glideOFF
frac32 out
frac32.u.map glide
int32_t prev;
int32_t follow;
int64_t diff;
int64_t rate;
if (inlet_glideOFF == 0) {
diff = inlet_in - follow;
rate = param_glide;
rate = rate << 8;
diff = (diff << 21) / ((1 << 21) + rate);
follow += diff;
outlet_out = follow;
prev = inlet_in;
} else {
outlet_out = inlet_in;
}