Commit bf866c20 by Kaveh R. Ghazi Committed by Kaveh Ghazi

builtin-math-6.c (link_error): Accept a value number, update all callers and…

builtin-math-6.c (link_error): Accept a value number, update all callers and synchronize results for latest MPC.

	* gcc.dg/torture/builtin-math-6.c (link_error): Accept a value
	number, update all callers and synchronize results for latest MPC.

From-SVN: r151065
parent c3313412
2009-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.dg/torture/builtin-math-6.c (link_error): Accept a value
number, update all callers and synchronize results for latest MPC.
2009-08-21 Jason Merrill <jason@redhat.com> 2009-08-21 Jason Merrill <jason@redhat.com>
* g++.dg/warn/Wunused-17.C: New. * g++.dg/warn/Wunused-17.C: New.
......
...@@ -8,8 +8,11 @@ ...@@ -8,8 +8,11 @@
/* { dg-do link } */ /* { dg-do link } */
/* { dg-require-effective-target mpc_pow } */ /* { dg-require-effective-target mpc_pow } */
/* All references to link_error should go away at compile-time. */ /* All references to link_error should go away at compile-time. The
extern void link_error(int); first number is the line number and the second is the value number
among several tests. These appear in the tree dump file and aid in
debugging. */
extern void link_error(int, int);
#define CONJ(X) __builtin_conjf(X) #define CONJ(X) __builtin_conjf(X)
...@@ -32,69 +35,69 @@ extern void link_error(int); ...@@ -32,69 +35,69 @@ extern void link_error(int);
(CKSGN_L(__real__ (X), __real__ (Y)) || CKSGN_L (__imag__ (X), __imag__ (Y))) (CKSGN_L(__real__ (X), __real__ (Y)) || CKSGN_L (__imag__ (X), __imag__ (Y)))
/* For complex numbers, test that FUNC(ARG) == (RES). */ /* For complex numbers, test that FUNC(ARG) == (RES). */
#define TESTIT_COMPLEX(FUNC, ARG, RES) do { \ #define TESTIT_COMPLEX(VAL_NUM, FUNC, ARG, RES) do { \
if (__builtin_##FUNC##f(ARG) != (RES) \ if (__builtin_##FUNC##f(ARG) != (RES) \
|| COMPLEX_CKSGN_F(__builtin_##FUNC##f(ARG), (RES))) \ || COMPLEX_CKSGN_F(__builtin_##FUNC##f(ARG), (RES))) \
link_error(__LINE__); \ link_error(__LINE__, VAL_NUM); \
if (__builtin_##FUNC(ARG) != (RES) \ if (__builtin_##FUNC(ARG) != (RES) \
|| COMPLEX_CKSGN(__builtin_##FUNC(ARG), (RES))) \ || COMPLEX_CKSGN(__builtin_##FUNC(ARG), (RES))) \
link_error(__LINE__); \ link_error(__LINE__, VAL_NUM); \
if (__builtin_##FUNC##l(ARG) != (RES) \ if (__builtin_##FUNC##l(ARG) != (RES) \
|| COMPLEX_CKSGN_L(__builtin_##FUNC##l(ARG), (RES))) \ || COMPLEX_CKSGN_L(__builtin_##FUNC##l(ARG), (RES))) \
link_error(__LINE__); \ link_error(__LINE__, VAL_NUM); \
} while (0) } while (0)
/* For complex numbers, call the TESTIT_COMPLEX macro for all /* For complex numbers, call the TESTIT_COMPLEX macro for all
combinations of neg and conj. */ combinations of neg and conj. */
#define TESTIT_COMPLEX_ALLNEG(FUNC, ARG, RES1, RES2, RES3, RES4) do { \ #define TESTIT_COMPLEX_ALLNEG(FUNC, ARG, RES1, RES2, RES3, RES4) do { \
TESTIT_COMPLEX(FUNC, (_Complex float)(ARG), RES1); \ TESTIT_COMPLEX(1, FUNC, (_Complex float)(ARG), RES1); \
TESTIT_COMPLEX(FUNC, -CONJ(ARG), RES2); \ TESTIT_COMPLEX(2, FUNC, -CONJ(ARG), RES2); \
TESTIT_COMPLEX(FUNC, CONJ(ARG), RES3); \ TESTIT_COMPLEX(3, FUNC, CONJ(ARG), RES3); \
TESTIT_COMPLEX(FUNC, -(_Complex float)(ARG), RES4); \ TESTIT_COMPLEX(4, FUNC, -(_Complex float)(ARG), RES4); \
} while (0) } while (0)
/* For complex numbers, call the TESTIT_COMPLEX_R macro for all /* For complex numbers, call the TESTIT_COMPLEX_R macro for all
combinations of neg and conj. */ combinations of neg and conj. */
#define TESTIT_COMPLEX_R_ALLNEG(FUNC, ARG, RES1, RES2, RES3, RES4) do { \ #define TESTIT_COMPLEX_R_ALLNEG(FUNC, ARG, RES1, RES2, RES3, RES4) do { \
TESTIT_COMPLEX_R(FUNC, (_Complex float)(ARG), RES1); \ TESTIT_COMPLEX_R(1, FUNC, (_Complex float)(ARG), RES1); \
TESTIT_COMPLEX_R(FUNC, -CONJ(ARG), RES2); \ TESTIT_COMPLEX_R(2, FUNC, -CONJ(ARG), RES2); \
TESTIT_COMPLEX_R(FUNC, CONJ(ARG), RES3); \ TESTIT_COMPLEX_R(3, FUNC, CONJ(ARG), RES3); \
TESTIT_COMPLEX_R(FUNC, -(_Complex float)(ARG), RES4); \ TESTIT_COMPLEX_R(4, FUNC, -(_Complex float)(ARG), RES4); \
} while (0) } while (0)
/* For complex numbers, test that FUNC(ARG0, ARG1) == (RES). */ /* For complex numbers, test that FUNC(ARG0, ARG1) == (RES). */
#define TESTIT_COMPLEX2(FUNC, ARG0, ARG1, RES) do { \ #define TESTIT_COMPLEX2(VAL_NUM, FUNC, ARG0, ARG1, RES) do { \
if (__builtin_##FUNC##f(ARG0, ARG1) != (RES) \ if (__builtin_##FUNC##f(ARG0, ARG1) != (RES) \
|| COMPLEX_CKSGN_F(__builtin_##FUNC##f(ARG0, ARG1), (RES))) \ || COMPLEX_CKSGN_F(__builtin_##FUNC##f(ARG0, ARG1), (RES))) \
link_error(__LINE__); \ link_error(__LINE__, VAL_NUM); \
if (__builtin_##FUNC(ARG0, ARG1) != (RES) \ if (__builtin_##FUNC(ARG0, ARG1) != (RES) \
|| COMPLEX_CKSGN(__builtin_##FUNC(ARG0, ARG1), (RES))) \ || COMPLEX_CKSGN(__builtin_##FUNC(ARG0, ARG1), (RES))) \
link_error(__LINE__); \ link_error(__LINE__, VAL_NUM); \
if (__builtin_##FUNC##l(ARG0, ARG1) != (RES) \ if (__builtin_##FUNC##l(ARG0, ARG1) != (RES) \
|| COMPLEX_CKSGN_L(__builtin_##FUNC##l(ARG0, ARG1), (RES))) \ || COMPLEX_CKSGN_L(__builtin_##FUNC##l(ARG0, ARG1), (RES))) \
link_error(__LINE__); \ link_error(__LINE__, VAL_NUM); \
} while (0) } while (0)
/* For complex numbers, call the TESTIT_COMPLEX2 macro for all /* For complex numbers, call the TESTIT_COMPLEX2 macro for all
combinations of neg and conj. */ combinations of neg and conj. */
#define TESTIT_COMPLEX2_ALLNEG(FUNC, ARG0, ARG1, RES1, RES2, RES3, RES4, RES5,\ #define TESTIT_COMPLEX2_ALLNEG(FUNC, ARG0, ARG1, RES1, RES2, RES3, RES4, RES5,\
RES6, RES7, RES8, RES9, RES10, RES11, RES12, RES13, RES14, RES15, RES16) do{ \ RES6, RES7, RES8, RES9, RES10, RES11, RES12, RES13, RES14, RES15, RES16) do{ \
TESTIT_COMPLEX2(FUNC, (_Complex float)(ARG0),(_Complex float)(ARG1), RES1);\ TESTIT_COMPLEX2(1, FUNC, (_Complex float)(ARG0),(_Complex float)(ARG1), RES1);\
TESTIT_COMPLEX2(FUNC, (_Complex float)(ARG0),CONJ(ARG1), RES2); \ TESTIT_COMPLEX2(2, FUNC, (_Complex float)(ARG0),CONJ(ARG1), RES2); \
TESTIT_COMPLEX2(FUNC, (_Complex float)(ARG0),-(_Complex float)(ARG1), RES3); \ TESTIT_COMPLEX2(3, FUNC, (_Complex float)(ARG0),-(_Complex float)(ARG1), RES3); \
TESTIT_COMPLEX2(FUNC, (_Complex float)(ARG0),-CONJ(ARG1), RES4); \ TESTIT_COMPLEX2(4, FUNC, (_Complex float)(ARG0),-CONJ(ARG1), RES4); \
TESTIT_COMPLEX2(FUNC, -(_Complex float)(ARG0),(_Complex float)(ARG1), RES5); \ TESTIT_COMPLEX2(5, FUNC, -(_Complex float)(ARG0),(_Complex float)(ARG1), RES5); \
TESTIT_COMPLEX2(FUNC, -(_Complex float)(ARG0),CONJ(ARG1), RES6); \ TESTIT_COMPLEX2(6, FUNC, -(_Complex float)(ARG0),CONJ(ARG1), RES6); \
TESTIT_COMPLEX2(FUNC, -(_Complex float)(ARG0),-(_Complex float)(ARG1), RES7); \ TESTIT_COMPLEX2(7, FUNC, -(_Complex float)(ARG0),-(_Complex float)(ARG1), RES7); \
TESTIT_COMPLEX2(FUNC, -(_Complex float)(ARG0),-CONJ(ARG1), RES8); \ TESTIT_COMPLEX2(8, FUNC, -(_Complex float)(ARG0),-CONJ(ARG1), RES8); \
TESTIT_COMPLEX2(FUNC, CONJ(ARG0),(_Complex float)(ARG1), RES9); \ TESTIT_COMPLEX2(9, FUNC, CONJ(ARG0),(_Complex float)(ARG1), RES9); \
TESTIT_COMPLEX2(FUNC, CONJ(ARG0),CONJ(ARG1), RES10); \ TESTIT_COMPLEX2(10, FUNC, CONJ(ARG0),CONJ(ARG1), RES10); \
TESTIT_COMPLEX2(FUNC, CONJ(ARG0),-(_Complex float)(ARG1), RES11); \ TESTIT_COMPLEX2(11, FUNC, CONJ(ARG0),-(_Complex float)(ARG1), RES11); \
TESTIT_COMPLEX2(FUNC, CONJ(ARG0),-CONJ(ARG1), RES12); \ TESTIT_COMPLEX2(12, FUNC, CONJ(ARG0),-CONJ(ARG1), RES12); \
TESTIT_COMPLEX2(FUNC, -CONJ(ARG0),(_Complex float)(ARG1), RES13); \ TESTIT_COMPLEX2(13, FUNC, -CONJ(ARG0),(_Complex float)(ARG1), RES13); \
TESTIT_COMPLEX2(FUNC, -CONJ(ARG0),CONJ(ARG1), RES14); \ TESTIT_COMPLEX2(14, FUNC, -CONJ(ARG0),CONJ(ARG1), RES14); \
TESTIT_COMPLEX2(FUNC, -CONJ(ARG0),-(_Complex float)(ARG1), RES15); \ TESTIT_COMPLEX2(15, FUNC, -CONJ(ARG0),-(_Complex float)(ARG1), RES15); \
TESTIT_COMPLEX2(FUNC, -CONJ(ARG0),-CONJ(ARG1), RES16); \ TESTIT_COMPLEX2(16, FUNC, -CONJ(ARG0),-CONJ(ARG1), RES16); \
} while (0) } while (0)
/* Return TRUE if X differs from EXPECTED by more than 1%. If /* Return TRUE if X differs from EXPECTED by more than 1%. If
...@@ -124,16 +127,16 @@ extern void link_error(int); ...@@ -124,16 +127,16 @@ extern void link_error(int);
merely checking that we get relatively sane results. I.e. the GCC merely checking that we get relatively sane results. I.e. the GCC
builtin is hooked up to the correct MPC function call. We first builtin is hooked up to the correct MPC function call. We first
check the magnitude and then the sign. */ check the magnitude and then the sign. */
#define TESTIT_COMPLEX_R(FUNC, ARG, RES) do { \ #define TESTIT_COMPLEX_R(VAL_NUM, FUNC, ARG, RES) do { \
if (COMPLEX_DIFF1PCT_F (__builtin_##FUNC##f(ARG), (RES)) \ if (COMPLEX_DIFF1PCT_F (__builtin_##FUNC##f(ARG), (RES)) \
|| COMPLEX_CKSGN_F(__builtin_##FUNC##f(ARG), (RES))) \ || COMPLEX_CKSGN_F(__builtin_##FUNC##f(ARG), (RES))) \
link_error(__LINE__); \ link_error(__LINE__, VAL_NUM); \
if (COMPLEX_DIFF1PCT (__builtin_##FUNC(ARG), (RES)) \ if (COMPLEX_DIFF1PCT (__builtin_##FUNC(ARG), (RES)) \
|| COMPLEX_CKSGN(__builtin_##FUNC(ARG), (RES))) \ || COMPLEX_CKSGN(__builtin_##FUNC(ARG), (RES))) \
link_error(__LINE__); \ link_error(__LINE__, VAL_NUM); \
if (COMPLEX_DIFF1PCT (__builtin_##FUNC(ARG), (RES)) \ if (COMPLEX_DIFF1PCT (__builtin_##FUNC(ARG), (RES)) \
|| COMPLEX_CKSGN(__builtin_##FUNC(ARG), (RES))) \ || COMPLEX_CKSGN(__builtin_##FUNC(ARG), (RES))) \
link_error(__LINE__); \ link_error(__LINE__, VAL_NUM); \
} while (0) } while (0)
/* Range test, for complex numbers check that FUNC(ARG0, ARG1) is /* Range test, for complex numbers check that FUNC(ARG0, ARG1) is
...@@ -141,38 +144,38 @@ extern void link_error(int); ...@@ -141,38 +144,38 @@ extern void link_error(int);
we're merely checking that we get relatively sane results. we're merely checking that we get relatively sane results.
I.e. the GCC builtin is hooked up to the correct MPC function call. I.e. the GCC builtin is hooked up to the correct MPC function call.
We first check the magnitude and then the sign. */ We first check the magnitude and then the sign. */
#define TESTIT_COMPLEX_R2(FUNC, ARG0, ARG1, RES) do { \ #define TESTIT_COMPLEX_R2(VAL_NUM, FUNC, ARG0, ARG1, RES) do { \
if (COMPLEX_DIFF1PCT_F (__builtin_##FUNC##f(ARG0, ARG1), (RES)) \ if (COMPLEX_DIFF1PCT_F (__builtin_##FUNC##f(ARG0, ARG1), (RES)) \
|| COMPLEX_CKSGN_F (__builtin_##FUNC##f(ARG0, ARG1), (RES))) \ || COMPLEX_CKSGN_F (__builtin_##FUNC##f(ARG0, ARG1), (RES))) \
link_error(__LINE__); \ link_error(__LINE__, VAL_NUM); \
if (COMPLEX_DIFF1PCT (__builtin_##FUNC(ARG0, ARG1), (RES)) \ if (COMPLEX_DIFF1PCT (__builtin_##FUNC(ARG0, ARG1), (RES)) \
|| COMPLEX_CKSGN (__builtin_##FUNC(ARG0, ARG1), (RES))) \ || COMPLEX_CKSGN (__builtin_##FUNC(ARG0, ARG1), (RES))) \
link_error(__LINE__); \ link_error(__LINE__, VAL_NUM); \
if (COMPLEX_DIFF1PCT_L (__builtin_##FUNC##l(ARG0, ARG1), (RES)) \ if (COMPLEX_DIFF1PCT_L (__builtin_##FUNC##l(ARG0, ARG1), (RES)) \
|| COMPLEX_CKSGN_L (__builtin_##FUNC##l(ARG0, ARG1), (RES))) \ || COMPLEX_CKSGN_L (__builtin_##FUNC##l(ARG0, ARG1), (RES))) \
link_error(__LINE__); \ link_error(__LINE__, VAL_NUM); \
} while (0) } while (0)
/* For complex numbers, call the TESTIT_COMPLEX_R2 macro for all /* For complex numbers, call the TESTIT_COMPLEX_R2 macro for all
combinations of neg and conj. */ combinations of neg and conj. */
#define TESTIT_COMPLEX_R2_ALLNEG(FUNC, ARG0, ARG1, RES1, RES2, RES3, RES4, RES5,\ #define TESTIT_COMPLEX_R2_ALLNEG(FUNC, ARG0, ARG1, RES1, RES2, RES3, RES4, RES5,\
RES6, RES7, RES8, RES9, RES10, RES11, RES12, RES13, RES14, RES15, RES16) do{ \ RES6, RES7, RES8, RES9, RES10, RES11, RES12, RES13, RES14, RES15, RES16) do{ \
TESTIT_COMPLEX_R2(FUNC, (_Complex float)(ARG0),(_Complex float)(ARG1), RES1);\ TESTIT_COMPLEX_R2(1, FUNC, (_Complex float)(ARG0),(_Complex float)(ARG1), RES1);\
TESTIT_COMPLEX_R2(FUNC, (_Complex float)(ARG0),CONJ(ARG1), RES2); \ TESTIT_COMPLEX_R2(2, FUNC, (_Complex float)(ARG0),CONJ(ARG1), RES2); \
TESTIT_COMPLEX_R2(FUNC, (_Complex float)(ARG0),-(_Complex float)(ARG1), RES3); \ TESTIT_COMPLEX_R2(3, FUNC, (_Complex float)(ARG0),-(_Complex float)(ARG1), RES3); \
TESTIT_COMPLEX_R2(FUNC, (_Complex float)(ARG0),-CONJ(ARG1), RES4); \ TESTIT_COMPLEX_R2(4, FUNC, (_Complex float)(ARG0),-CONJ(ARG1), RES4); \
TESTIT_COMPLEX_R2(FUNC, -(_Complex float)(ARG0),(_Complex float)(ARG1), RES5); \ TESTIT_COMPLEX_R2(5, FUNC, -(_Complex float)(ARG0),(_Complex float)(ARG1), RES5); \
TESTIT_COMPLEX_R2(FUNC, -(_Complex float)(ARG0),CONJ(ARG1), RES6); \ TESTIT_COMPLEX_R2(6, FUNC, -(_Complex float)(ARG0),CONJ(ARG1), RES6); \
TESTIT_COMPLEX_R2(FUNC, -(_Complex float)(ARG0),-(_Complex float)(ARG1), RES7); \ TESTIT_COMPLEX_R2(7, FUNC, -(_Complex float)(ARG0),-(_Complex float)(ARG1), RES7); \
TESTIT_COMPLEX_R2(FUNC, -(_Complex float)(ARG0),-CONJ(ARG1), RES8); \ TESTIT_COMPLEX_R2(8, FUNC, -(_Complex float)(ARG0),-CONJ(ARG1), RES8); \
TESTIT_COMPLEX_R2(FUNC, CONJ(ARG0),(_Complex float)(ARG1), RES9); \ TESTIT_COMPLEX_R2(9, FUNC, CONJ(ARG0),(_Complex float)(ARG1), RES9); \
TESTIT_COMPLEX_R2(FUNC, CONJ(ARG0),CONJ(ARG1), RES10); \ TESTIT_COMPLEX_R2(10, FUNC, CONJ(ARG0),CONJ(ARG1), RES10); \
TESTIT_COMPLEX_R2(FUNC, CONJ(ARG0),-(_Complex float)(ARG1), RES11); \ TESTIT_COMPLEX_R2(11, FUNC, CONJ(ARG0),-(_Complex float)(ARG1), RES11); \
TESTIT_COMPLEX_R2(FUNC, CONJ(ARG0),-CONJ(ARG1), RES12); \ TESTIT_COMPLEX_R2(12, FUNC, CONJ(ARG0),-CONJ(ARG1), RES12); \
TESTIT_COMPLEX_R2(FUNC, -CONJ(ARG0),(_Complex float)(ARG1), RES13); \ TESTIT_COMPLEX_R2(13, FUNC, -CONJ(ARG0),(_Complex float)(ARG1), RES13); \
TESTIT_COMPLEX_R2(FUNC, -CONJ(ARG0),CONJ(ARG1), RES14); \ TESTIT_COMPLEX_R2(14, FUNC, -CONJ(ARG0),CONJ(ARG1), RES14); \
TESTIT_COMPLEX_R2(FUNC, -CONJ(ARG0),-(_Complex float)(ARG1), RES15); \ TESTIT_COMPLEX_R2(15, FUNC, -CONJ(ARG0),-(_Complex float)(ARG1), RES15); \
TESTIT_COMPLEX_R2(FUNC, -CONJ(ARG0),-CONJ(ARG1), RES16); \ TESTIT_COMPLEX_R2(16, FUNC, -CONJ(ARG0),-CONJ(ARG1), RES16); \
} while (0) } while (0)
int main (void) int main (void)
...@@ -214,10 +217,10 @@ int main (void) ...@@ -214,10 +217,10 @@ int main (void)
1.000040F - 0.001988FI, -1.000040F - 0.001988FI, 1.000040F - 0.001988FI, -1.000040F - 0.001988FI,
1.000040F + 0.001988FI, -1.000040F + 0.001988FI); 1.000040F + 0.001988FI, -1.000040F + 0.001988FI);
TESTIT_COMPLEX (clog, 1, 0); TESTIT_COMPLEX (1, clog, 1, 0);
TESTIT_COMPLEX_R (clog, -1, 3.141593FI); TESTIT_COMPLEX_R (1, clog, -1, 3.141593FI);
TESTIT_COMPLEX (clog, CONJ(1), CONJ(0)); /* Fails with mpc-0.6. */ TESTIT_COMPLEX (1, clog, CONJ(1), CONJ(0)); /* Fails with mpc-0.6. */
TESTIT_COMPLEX_R (clog, CONJ(-1), CONJ(3.141593FI)); /* Fails with mpc-0.6. */ TESTIT_COMPLEX_R (1, clog, CONJ(-1), CONJ(3.141593FI)); /* Fails with mpc-0.6. */
TESTIT_COMPLEX_R_ALLNEG (clog, 3.45678F + 2.34567FI, TESTIT_COMPLEX_R_ALLNEG (clog, 3.45678F + 2.34567FI,
1.429713F + 0.596199FI, 1.429713F + 2.545394FI, 1.429713F + 0.596199FI, 1.429713F + 2.545394FI,
1.429713F - 0.596199FI, 1.429713F - 2.545394FI); 1.429713F - 0.596199FI, 1.429713F - 2.545394FI);
...@@ -229,33 +232,33 @@ int main (void) ...@@ -229,33 +232,33 @@ int main (void)
1.953750F - 0.600299FI, 0.600299F - 1.953750FI); 1.953750F - 0.600299FI, 0.600299F - 1.953750FI);
TESTIT_COMPLEX2_ALLNEG (cpow, 1, 0, TESTIT_COMPLEX2_ALLNEG (cpow, 1, 0,
1, 1, CONJ(1), CONJ(1), 1, CONJ(1), 1, 1, 1, 1, CONJ(1), CONJ(1), CONJ(1), CONJ(1), 1, 1,
CONJ(1), CONJ(1), 1, 1, 1, 1, CONJ(1), 1); CONJ(1), CONJ(1), 1, 1, 1, 1, CONJ(1), CONJ(1));
TESTIT_COMPLEX2_ALLNEG (cpow, 1.FI, 0, TESTIT_COMPLEX2_ALLNEG (cpow, 1.FI, 0,
1, 1, CONJ(1), 1, 1, CONJ(1), 1, 1, 1, 1, CONJ(1), CONJ(1), CONJ(1), CONJ(1), 1, 1,
1, CONJ(1), 1, 1, 1, 1, CONJ(1), 1); CONJ(1), CONJ(1), 1, 1, 1, 1, CONJ(1), CONJ(1));
TESTIT_COMPLEX_R2_ALLNEG (cpow, 2, 3, TESTIT_COMPLEX_R2_ALLNEG (cpow, 2, 3,
8, 8, CONJ(1/8.F), 1/8.F, CONJ(-8), -8, -1/8.F, -1/8.F, 8, 8, CONJ(1/8.F), CONJ(1/8.F), CONJ(-8), CONJ(-8), -1/8.F, -1/8.F,
8, CONJ(8), 1/8.F, 1/8.F, -8, -8, -1/8.F, CONJ(-1/8.F)); CONJ(8), CONJ(8), 1/8.F, 1/8.F, -8, -8, CONJ(-1/8.F), CONJ(-1/8.F));
TESTIT_COMPLEX_R2_ALLNEG (cpow, 3, 4, TESTIT_COMPLEX_R2_ALLNEG (cpow, 3, 4,
81, 81, CONJ(1/81.F), 1/81.F, 81, 81, CONJ(1/81.F), 1/81.F, 81, 81, CONJ(1/81.F), CONJ(1/81.F), CONJ(81), CONJ(81), 1/81.F, 1/81.F,
81, CONJ(81), 1/81.F, 1/81.F, 81, CONJ(81), 1/81.F, 1/81.F); CONJ(81), CONJ(81), 1/81.F, 1/81.F, 81, 81, CONJ(1/81.F), CONJ(1/81.F));
TESTIT_COMPLEX_R2_ALLNEG (cpow, 3, 5, TESTIT_COMPLEX_R2_ALLNEG (cpow, 3, 5,
243, 243, CONJ(1/243.F), 1/243.F, CONJ(-243), -243, -1/243.F, -1/243.F, 243, 243, CONJ(1/243.F), CONJ(1/243.F), CONJ(-243), CONJ(-243), -1/243.F, -1/243.F,
243, CONJ(243), 1/243.F, 1/243.F, -243, -243, -1/243.F, CONJ(-1/243.F)); CONJ(243), CONJ(243), 1/243.F, 1/243.F, -243, -243, CONJ(-1/243.F), CONJ(-1/243.F));
TESTIT_COMPLEX_R2_ALLNEG (cpow, 4, 2, TESTIT_COMPLEX_R2_ALLNEG (cpow, 4, 2,
16, 16, CONJ(1/16.F), 1/16.F, 16, 16, CONJ(1/16.F), 1/16.F, 16, 16, CONJ(1/16.F), CONJ(1/16.F), CONJ(16), CONJ(16), 1/16.F, 1/16.F,
16, CONJ(16), 1/16.F, 1/16.F, 16, CONJ(16), 1/16.F, 1/16.F); CONJ(16), CONJ(16), 1/16.F, 1/16.F, 16, 16, CONJ(1/16.F), CONJ(1/16.F));
TESTIT_COMPLEX_R2_ALLNEG (cpow, 1.5, 3, TESTIT_COMPLEX_R2_ALLNEG (cpow, 1.5, 3,
3.375F, 3.375F, CONJ(1/3.375F), 1/3.375F, CONJ(-3.375F), -3.375F, -1/3.375F, -1/3.375F, 3.375F, 3.375F, CONJ(1/3.375F), CONJ(1/3.375F), CONJ(-3.375F), CONJ(-3.375F), -1/3.375F, -1/3.375F,
3.375F, CONJ(3.375F), 1/3.375F, 1/3.375F, -3.375F, -3.375F, -1/3.375F, CONJ(-1/3.375F)); CONJ(3.375F), CONJ(3.375F), 1/3.375F, 1/3.375F, -3.375F, -3.375F, CONJ(-1/3.375F), CONJ(-1/3.375F));
TESTIT_COMPLEX2 (cpow, 16, 0.25F, 2); TESTIT_COMPLEX2 (1, cpow, 16, 0.25F, 2);
TESTIT_COMPLEX_R2 (cpow, 3.45678F + 2.34567FI, 1.23456 + 4.56789FI, 0.212485F + 0.319304FI); TESTIT_COMPLEX_R2 (1, cpow, 3.45678F + 2.34567FI, 1.23456 + 4.56789FI, 0.212485F + 0.319304FI);
TESTIT_COMPLEX_R2 (cpow, 3.45678F - 2.34567FI, 1.23456 + 4.56789FI, 78.576402F + -41.756208FI); TESTIT_COMPLEX_R2 (1, cpow, 3.45678F - 2.34567FI, 1.23456 + 4.56789FI, 78.576402F + -41.756208FI);
TESTIT_COMPLEX_R2 (cpow, -1.23456F + 2.34567FI, 2.34567 - 1.23456FI, -110.629847F + -57.021655FI); TESTIT_COMPLEX_R2 (1, cpow, -1.23456F + 2.34567FI, 2.34567 - 1.23456FI, -110.629847F + -57.021655FI);
TESTIT_COMPLEX_R2 (cpow, -1.23456F - 2.34567FI, 2.34567 - 1.23456FI, 0.752336F + 0.199095FI); TESTIT_COMPLEX_R2 (1, cpow, -1.23456F - 2.34567FI, 2.34567 - 1.23456FI, 0.752336F + 0.199095FI);
return 0; return 0;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment