diff options
author | enge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2010-08-31 18:11:38 +0000 |
---|---|---|
committer | enge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2010-08-31 18:11:38 +0000 |
commit | 3e9daad0e04c9504b6372f3ad702f9f292f3a442 (patch) | |
tree | 9dd3a059430e9c307f564e31415566befff0c995 /tests/tset.c | |
parent | 8127c551c5936221227fdf7292cb2f1bc511580f (diff) | |
download | mpc-3e9daad0e04c9504b6372f3ad702f9f292f3a442.tar.gz |
new functions mpc_set_c, mpc_set_lc, mpc_get_c, mpc_get_lc
git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@820 211d60ee-9f03-0410-a15a-8952a2c7a4e4
Diffstat (limited to 'tests/tset.c')
-rw-r--r-- | tests/tset.c | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/tests/tset.c b/tests/tset.c index fd38ee4..729cc68 100644 --- a/tests/tset.c +++ b/tests/tset.c @@ -1,6 +1,6 @@ /* tset.c -- Test file for mpc_set_x and mpc_set_x_x functions. -Copyright (C) 2009 Philippe Th\'eveny, Paul Zimmermann, Andreas Enge +Copyright (C) 2009, 2010 Philippe Th\'eveny, Paul Zimmermann, Andreas Enge This file is part of the MPC Library. @@ -30,6 +30,10 @@ MA 02111-1307, USA. */ # endif #endif +#if HAVE_COMPLEX_H +# include <complex.h> +#endif + #ifdef HAVE_LOCALE_H #include <locale.h> #endif @@ -91,7 +95,13 @@ check_set (void) mpc_set_d (z, 1.23456789, MPC_RNDNN); if (mpfr_cmp (MPC_RE(z), fr) != 0 || mpfr_cmp_si (MPC_IM(z), 0) != 0) - PRINT_ERROR ("mpc_set", prec, z); + PRINT_ERROR ("mpc_set_d", prec, z); + +#if defined _MPC_H_HAVE_COMPLEX + mpc_set_c (z, I*1.23456789+1.23456789, MPC_RNDNN); + if (mpfr_cmp (MPC_RE(z), fr) != 0 || mpfr_cmp (MPC_IM(z), fr) != 0) + PRINT_ERROR ("mpc_set_c", prec, z); +#endif mpc_set_ui (z, prec, MPC_RNDNN); if (mpfr_cmp_ui (MPC_RE(z), prec) != 0 @@ -112,6 +122,11 @@ check_set (void) if (mpfr_cmp (MPC_RE(z), fr) != 0 || mpfr_cmp (MPC_IM(z), fr) != 0) PRINT_ERROR ("mpc_set_ld_ld", prec, z); +#if defined _MPC_H_HAVE_COMPLEX + mpc_set_lc (z, I*1.23456789L+1.23456789L, MPC_RNDNN); + if (mpfr_cmp (MPC_RE(z), fr) != 0 || mpfr_cmp (MPC_IM(z), fr) != 0) + PRINT_ERROR ("mpc_set_lc", prec, z); +#endif mpc_set_ui_ui (z, prec, prec, MPC_RNDNN); if (mpfr_cmp_ui (MPC_RE(z), prec) != 0 || mpfr_cmp_ui (MPC_IM(z), prec) != 0) @@ -271,6 +286,20 @@ check_set (void) PRINT_ERROR ("mpc_set_sj_sj (2)", im, z); } #endif /* _MPC_H_HAVE_INTMAX_T */ + +#if defined _MPC_H_HAVE_COMPLEX + { + double _Complex c = 1.0 - 2.0*I; + long double _Complex lc = c; + + mpc_set_c (z, c, MPC_RNDNN); + if (mpc_get_c (z, MPC_RNDNN) != c) + PRINT_ERROR ("mpc_get_c", prec, z); + mpc_set_lc (z, lc, MPC_RNDNN); + if (mpc_get_lc (z, MPC_RNDNN) != lc) + PRINT_ERROR ("mpc_get_lc", prec, z); + } +#endif } mpz_clear (mpz); |