Blame doc/examples/ieeeround.c

Packit 67cb25
#include <stdio.h>
Packit 67cb25
#include <gsl/gsl_math.h>
Packit 67cb25
#include <gsl/gsl_ieee_utils.h>
Packit 67cb25
Packit 67cb25
int
Packit 67cb25
main (void)
Packit 67cb25
{
Packit 67cb25
  double x = 1, oldsum = 0, sum = 0; 
Packit 67cb25
  int i = 0;
Packit 67cb25
Packit 67cb25
  gsl_ieee_env_setup (); /* read GSL_IEEE_MODE */
Packit 67cb25
Packit 67cb25
  do 
Packit 67cb25
    {
Packit 67cb25
      i++;
Packit 67cb25
      
Packit 67cb25
      oldsum = sum;
Packit 67cb25
      sum += x;
Packit 67cb25
      x = x / i;
Packit 67cb25
      
Packit 67cb25
      printf ("i=%2d sum=%.18f error=%g\n",
Packit 67cb25
              i, sum, sum - M_E);
Packit 67cb25
Packit 67cb25
      if (i > 30)
Packit 67cb25
         break;
Packit 67cb25
    }  
Packit 67cb25
  while (sum != oldsum);
Packit 67cb25
Packit 67cb25
  return 0;
Packit 67cb25
}