See:
int main() { const auto inf = std::numeric_limits<double>::infinity(); print(_MSC_VER); print(atan2(inf, inf)); print(atan2(-inf, -inf)); print(atan2(inf, -inf)); print(fmod(10.0, inf)); print(fmod(10.0, -inf)); return 0; }
->
_MSC_VER: 1920 atan2(inf, inf): 0.785398 atan2(-inf, -inf): -2.35619 atan2(inf, -inf): 2.35619 fmod(10.0, inf): 10 fmod(10.0, -inf): 10