• Tom Lane's avatar
    Adjust degree-based trig functions for more portability. · 73193d82
    Tom Lane authored
    The buildfarm isn't very happy with the results of commit e1bd684a.
    To try to get the expected exact results everywhere:
    
    * Replace M_PI / 180 subexpressions with a precomputed constant, so that
    the compiler can't decide to rearrange that division with an adjacent
    operation.  Hopefully this will fix failures to get exactly 0.5 from
    sind(30) and cosd(60).
    
    * Add scaling to ensure that tand(45) and cotd(45) give exactly 1; there
    was nothing particularly guaranteeing that before.
    
    * Replace minus zero by zero when tand() or cotd() would output that;
    many machines did so for tand(180) and cotd(270), but not all.  We could
    alternatively deem both results valid, but that doesn't seem likely to
    be what users will want.
    73193d82
float.c 73.4 KB