• Travis Cross's avatar
    Fix mod_expr `clamp` function · 65e678ba
    Travis Cross 提交于
    The clamp(v,a,b) function wraps v around the interval [a,b).
    
    However prior to this commit, `clamp` was ignoring the third argument
    and using the second argument again in its place.  This resulted in a
    division by zero.  Hence `clamp` didn't work at all.
    
    Even if the arguments were treated correctly, `clamp` incorrectly
    multiplied rather than added whenever v < a.  This would have produced
    bogus results.  (Thanks to Shona McNeill for pointing this out.)
    
    Note that as implemented, `clamp` is undefined for b >= a.
    
    These errors are present in the last upstream C version, v2.7.
    They've been corrected in the C++ version that upstream now maintains
    instead.
    
    Thanks-to: Shona McNeill <prufrax@googlemail.com>
    
    FS-7070 #resolve
    65e678ba
exprilfs.h 14.8 KB