xref: /netbsd-src/external/lgpl3/mpc/dist/tests/tasinh.c (revision 39f28e1e142c5bfb6be935a49cb55e2287fec7ea)
1 /* tasinh -- test file for mpc_asinh.
2 
3 Copyright (C) 2009, 2013 INRIA
4 
5 This file is part of GNU MPC.
6 
7 GNU MPC is free software; you can redistribute it and/or modify it under
8 the terms of the GNU Lesser General Public License as published by the
9 Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11 
12 GNU MPC is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
15 more details.
16 
17 You should have received a copy of the GNU Lesser General Public License
18 along with this program. If not, see http://www.gnu.org/licenses/ .
19 */
20 
21 #include "mpc-tests.h"
22 
23 static void
bug20091120(void)24 bug20091120 (void)
25 {
26   mpc_t x, y;
27 
28   mpc_init2 (x, 53);
29   mpc_init3 (y, 17, 42);
30   mpc_set_ui_ui (x, 1, 1, MPC_RNDNN);
31   mpc_asinh (y, x, MPC_RNDNN);
32   if (mpfr_get_prec (mpc_realref(y)) != 17 ||
33       mpfr_get_prec (mpc_imagref(y)) != 42)
34     {
35       printf ("Error, mpc_asinh changed the precisions!!!\n");
36       exit (1);
37     }
38   mpc_clear (x);
39   mpc_clear (y);
40 }
41 
42 #define MPC_FUNCTION_CALL                                       \
43   P[0].mpc_inex = mpc_asinh (P[1].mpc, P[2].mpc, P[3].mpc_rnd)
44 #define MPC_FUNCTION_CALL_REUSE_OP1                             \
45   P[0].mpc_inex = mpc_asinh (P[1].mpc, P[1].mpc, P[3].mpc_rnd)
46 
47 #include "data_check.tpl"
48 #include "tgeneric.tpl"
49 
50 int
main(void)51 main (void)
52 {
53   test_start ();
54 
55   bug20091120 ();
56 
57   data_check_template ("asinh.dsc", "asinh.dat");
58 
59   tgeneric_template ("asinh.dsc", 2, 512, 7, 7);
60 
61   test_end ();
62 
63   return 0;
64 }
65