diff options
Diffstat (limited to 'tests/tadd_si.c')
-rw-r--r-- | tests/tadd_si.c | 68 |
1 files changed, 37 insertions, 31 deletions
diff --git a/tests/tadd_si.c b/tests/tadd_si.c index 969f552..7bc1449 100644 --- a/tests/tadd_si.c +++ b/tests/tadd_si.c @@ -1,6 +1,6 @@ /* tadd_si -- test file for mpc_add_si. -Copyright (C) 2011, 2012 INRIA +Copyright (C) 2011, 2012, 2013 INRIA This file is part of GNU MPC. @@ -24,45 +24,51 @@ along with this program. If not, see http://www.gnu.org/licenses/ . static void check_ternary_value (void) { - mpfr_prec_t prec; - mpc_t z; - const long int s = -1; - - mpc_init2 (z, 2); - - for (prec=2; prec <= 1024; prec++) { - mpc_set_prec (z, prec); - mpc_set_ui (z, 3ul, MPC_RNDNN); - if (mpc_add_si (z, z, s, MPC_RNDDU)) { - printf ("Error in mpc_add_si: 3+(-1) should be exact\n"); - exit (1); - } - else if (mpc_cmp_si (z, 2l) != 0) { - printf ("Error in mpc_add_si: 3+(-1) should be 2\n"); - exit (1); - } - - mpc_mul_2ui (z, z, (unsigned long int) prec, MPC_RNDNN); - if (mpc_add_si (z, z, s, MPC_RNDNN) == 0) { - printf ("Error in mpc_add_si: 2^(prec+1)-1 cannot be exact\n"); - exit (1); - } + mpfr_prec_t prec; + mpc_t z; + const long int s = -1; + + mpc_init2 (z, 2); + + for (prec=2; prec <= 1024; prec++) { + mpc_set_prec (z, prec); + mpc_set_ui (z, 3ul, MPC_RNDNN); + if (mpc_add_si (z, z, s, MPC_RNDDU)) { + printf ("Error in mpc_add_si: 3+(-1) should be exact\n"); + exit (1); } + else if (mpc_cmp_si (z, 2l) != 0) { + printf ("Error in mpc_add_si: 3+(-1) should be 2\n"); + exit (1); + } + + mpc_mul_2ui (z, z, (unsigned long int) prec, MPC_RNDNN); + if (mpc_add_si (z, z, s, MPC_RNDNN) == 0) { + printf ("Error in mpc_add_si: 2^(prec+1)-1 cannot be exact\n"); + exit (1); + } + } - mpc_clear (z); + mpc_clear (z); } +#define MPC_FUNCTION_CALL \ + P[0].mpc_inex = mpc_add_si (P[1].mpc, P[2].mpc, P[3].si, P[4].mpc_rnd) +#define MPC_FUNCTION_CALL_REUSE_OP1 \ + P[0].mpc_inex = mpc_add_si (P[1].mpc, P[1].mpc, P[3].si, P[4].mpc_rnd) + +#include "tgeneric.tpl" + int main (void) { - DECL_FUNC (CCS, f, mpc_add_si); + test_start (); - test_start (); + check_ternary_value (); - check_ternary_value (); - tgeneric (f, 2, 1024, 11, -2); + tgeneric_template ("add_si.dsc", 2, 1024, 1, 1024); - test_end (); + test_end (); - return 0; + return 0; } |