Пример #1
0
//## Complex Complex.cacos();
static KMETHOD Complex_cacosf(KonohaContext *kctx, KonohaStack *sfp)
{
	kComplex *kc = (kComplex *) sfp[0].asObject;
	float _Complex zf = (float _Complex)kc->z;
	float ret = cacosf(zf);
	KReturnFloatValue(ret);
}
Пример #2
0
float complex
cacoshf(float complex z)
{
	float complex w;

	w = I * cacosf (z);
	return (w);
}
Пример #3
0
float complex
cacoshf(float complex z)
{
	float complex w;

#if 0 /* does not give the principal value */
	w = I * cacosf(z);
#else
	w = clogf(z + csqrtf(z + 1) * csqrtf(z - 1));
#endif
	return w;
}
Пример #4
0
float complex
cacoshf(float complex z)
{
	float complex w;
	float rx, ry;

	w = cacosf(z);
	rx = crealf(w);
	ry = cimagf(w);
	if (isnan(rx) && isnan(ry))
		return (CMPLXF(ry, rx));
	if (isnan(rx))
		return (CMPLXF(fabsf(ry), rx));
	if (isnan(ry))
		return (CMPLXF(ry, ry));
	return (CMPLXF(fabsf(ry), copysignf(rx, cimagf(z))));
}
Пример #5
0
// RUN: %mipselecc -o %t %s -lm && %mipselrun %t
// RUN: %ppcecc -o %t %s -lm && %ppcrun %t
// FAIL: %ppc64ecc -o %t %s -lm && %ppc64run %t
// RUN: %x86_64ecc -o %t %s -lm && %x86_64run %t
#include "../ecc_test.h"
#include <complex.h>

// The type imaginary is not supported.
TEST_GROUP(Complex)
    float complex f = I;
    double complex d = I;
    long double complex ld = I;
    TEST_RESOLVED(MIPS, "http://ellcc.org/bugzilla/show_bug.cgi?id=59") {
    TEST_TRACE(C99 7.3.5.1)
        d = cacos(d);
        f = cacosf(f);
        ld = cacosl(ld);
        TEST_TRACE(C99 7.3.5.2)
        d = casin(d);
        f = casinf(f);
        ld = casinl(ld);
        TEST_TRACE(C99 7.3.5.3)
        d = catan(d);
        f = catanf(f);
        ld = catanl(ld);
        TEST_TRACE(C99 7.3.5.4)
        d = ccos(d);
        f = ccosf(f);
        ld = ccosl(ld);
        TEST_TRACE(C99 7.3.5.5)
        d = csin(d);
Пример #6
0
void
docomplexf (void)
{
#ifndef NO_FLOAT
  complex float ca, cb, cc;
  float f1;

  ca = 1.0 + 1.0 * I;
  cb = 1.0 - 1.0 * I;

  f1 = cabsf (ca);
  fprintf (stdout, "cabsf  : %f\n", f1);

  cc = cacosf (ca);
  fprintf (stdout, "cacosf : %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = cacoshf (ca);
  fprintf (stdout, "cacoshf: %f %fi\n", crealf (cc),
	   cimagf (cc));

  f1 = cargf (ca);
  fprintf (stdout, "cargf  : %f\n", f1);

  cc = casinf (ca);
  fprintf (stdout, "casinf : %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = casinhf (ca);
  fprintf (stdout, "casinhf: %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = catanf (ca);
  fprintf (stdout, "catanf : %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = catanhf (ca);
  fprintf (stdout, "catanhf: %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = ccosf (ca);
  fprintf (stdout, "ccosf  : %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = ccoshf (ca);
  fprintf (stdout, "ccoshf : %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = cexpf (ca);
  fprintf (stdout, "cexpf  : %f %fi\n", crealf (cc),
	   cimagf (cc));

  f1 = cimagf (ca);
  fprintf (stdout, "cimagf : %f\n", f1);

  cc = clogf (ca);
  fprintf (stdout, "clogf  : %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = conjf (ca);
  fprintf (stdout, "conjf  : %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = cpowf (ca, cb);
  fprintf (stdout, "cpowf  : %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = cprojf (ca);
  fprintf (stdout, "cprojf : %f %fi\n", crealf (cc),
	   cimagf (cc));

  f1 = crealf (ca);
  fprintf (stdout, "crealf : %f\n", f1);

  cc = csinf (ca);
  fprintf (stdout, "csinf  : %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = csinhf (ca);
  fprintf (stdout, "csinhf : %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = csqrtf (ca);
  fprintf (stdout, "csqrtf : %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = ctanf (ca);
  fprintf (stdout, "ctanf  : %f %fi\n", crealf (cc),
	   cimagf (cc));

  cc = ctanhf (ca);
  fprintf (stdout, "ctanhf : %f %fi\n", crealf (cc),
	   cimagf (cc));
#endif
}
Пример #7
0
TEST(complex, cacosf) {
  ASSERT_EQ(static_cast<float>(M_PI)/2.0f, cacosf(0.0));
}