--- fix.c Thu Jan 7 10:42:45 1999 +++ fix.c.new Thu Jan 7 10:42:39 1999 @@ -87,7 +87,7 @@ #ifdef do_fixmul return do_fixmul(a,b); #else - return (fix)(((double)a*(double)b)/65536.0); + return (fix)(((long long)a * (long long)b) >> 16); #endif } @@ -96,7 +96,7 @@ #ifdef do_fixdiv return do_fixdiv(a,b); #else - return (fix)(((double)a * 65536.0) / (double)b); + return (fix)((((long long)a) << 16) / (long long) b); #endif } @@ -105,7 +105,7 @@ #ifdef do_fixmuldiv return do_fixmuldiv(a,b,c); #else - return (fix)(((double)a * (double) b) / (double) c); + return (fix)(((long long)a * (long long)b) / (long long) c); #endif }