#include #include #pragma STDC FENV_ACCESS ON double my_op(double x, double y); int main(int argc, char *argv[]) { double a, b, x, y; int old_fp_mode, status1, status2, status3; x = 7.1; y = 1.0/5.0; old_fp_mode = fegetround(); status1 = fesetround(FE_DOWNWARD); a = my_op(x, y); status2 = fesetround(FE_UPWARD); b = my_op(x, y); status3 = fesetround(old_fp_mode); /* All status values should be zero */ printf("Status values are: %d, %d, %d\n", status1, status2, status3); printf("Difference is %g\n", b-a); }