summaryrefslogtreecommitdiff
path: root/tests/tadd_si.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tadd_si.c')
-rw-r--r--tests/tadd_si.c68
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;
}