------- Comment #2 from pinskia at gcc dot gnu dot org  2010-04-19 22:57 -------
Here is the fixed up C testcase:
#include <math.h>
#include <complex.h>
#include <stdio.h>
#define _GNU_SOURCE
#include <gnu/libc-version.h>
#include <stdlib.h>

int main (int argc, char **argv)
{
  long double complex arg = 1 + _Complex_I;
  long double complex s, c, r, t;
  long mult;
  if (argc == 2) {
        mult = atol(argv[1]);
  } else {
        mult = 50000L;
  }

  arg *= mult;

  s = csinhl (arg);
  c = ccoshl (arg);
  r = s / c;
  t = ctanhl (arg);

  printf ("libc version %s\n", gnu_get_libc_version ());
  printf ("libc release %s\n", gnu_get_libc_release ());
  printf ("arg        = %Le + %Le * i\n", creall (arg), cimagl
                  (arg));
  printf ("sinh (arg) = %Le + %Le * i\n",
                  creall (s), cimagl (s));
  printf ("cosh (arg) = %Le + %Le * i\n",
                  creall (c), cimagl (c));
  printf("s/c         = %Le + %Le * i   (should be 1 + 0 * i)\n",
                 creall (r), cimagl (r));
  printf ("tanh (arg) = %Le + %Le * i   (should be 1 + 0 * i)\n",
                  creall (t), cimagl (t));
  return 0;
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43802

Reply via email to