home *** CD-ROM | disk | FTP | other *** search
- /* math.c (emx+gcc) */
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <float.h>
-
- int main (void)
- {
- double x, y;
- volatile long n;
- volatile unsigned long un;
- int i;
-
- #if defined (__EMX__)
- if (!(_emx_env & 0x20))
- {
- printf ("This program requires a coprocessor.\n");
- return (1);
- }
- #endif
- #if defined (MSDOS)
- _control87 (EM_OVERFLOW|EM_UNDERFLOW|EM_INEXACT, MCW_EM);
- #endif
- while (scanf ("%lf", &x) == 1)
- {
- printf ("x=%g, floor(x)=%g, ceil(x)=%g\n",
- x, floor (x), ceil (x));
- printf ("rint(x)=%g, trunc(x)=%g\n", rint (x), trunc (x));
- printf ("fabs(x)=%g, sqrt(x)=%g\n", fabs (x), sqrt (x));
- printf ("exp(x)=%g, log(x)=%g, log10(x)=%g\n", exp (x), log (x), log10 (x));
- printf ("sinh(x)=%g, cosh(x)=%g, tanh(x)=%g\n", sinh (x), cosh (x), tanh (x));
- printf ("sin(x)=%g, cos(x)=%g, tan(x)=%g\n", sin (x), cos (x), tan (x));
- printf ("atan(x)=%g, asin(x)=%g, acos(x)=%g\n", atan (x), asin (x), acos (x));
- printf ("atan2(x,1)=%g\n", atan2 (x, 1));
- printf ("ldexp(x,0)=%g, ldexp(x,-2)=%g, ldexp(x,3)=%g\n", ldexp (x, 0), ldexp (x, -2), ldexp (x, 3));
- printf ("pow(x,1.8)=%g pow(1.8,x)=%g\n", pow (x, 1.8), pow (1.8, x));
- printf ("pow(x,3.8)=%g pow(3.8,x)=%g\n", pow (x, 3.8), pow (3.8, x));
- printf ("pow(-2.0,x)=%g\n", pow (-2.0, x));
- printf ("fmod(-200000,x)=%g fmod(x,-3)=%g\n", fmod (-200000.0, x), fmod (x, -3.0));
- printf ("cbrt(x)=%g, hypot(x,4)=%g\n", cbrt (x), hypot (x, 4.0));
- y = frexp (x, &i);
- printf ("frexp: x=%g*2^%d\n", y, i);
- n = (long)x; un = (unsigned long)x;
- printf ("(long)x =%ld -> %g\n", n, (double)n);
- printf ("(unsigned long)x=%lu -> %g\n", un, (double)un);
- }
- return (0);
- }
-