Home | History | Annotate | Line # | Download | only in tests
      1  1.1  mrg /* init_parameters -- Allocate memory for function parameters.
      2  1.1  mrg 
      3  1.1  mrg Copyright (C) 2012, 2014 INRIA
      4  1.1  mrg 
      5  1.1  mrg This file is part of GNU MPC.
      6  1.1  mrg 
      7  1.1  mrg GNU MPC is free software; you can redistribute it and/or modify it under
      8  1.1  mrg the terms of the GNU Lesser General Public License as published by the
      9  1.1  mrg Free Software Foundation; either version 3 of the License, or (at your
     10  1.1  mrg option) any later version.
     11  1.1  mrg 
     12  1.1  mrg GNU MPC is distributed in the hope that it will be useful, but WITHOUT ANY
     13  1.1  mrg WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     14  1.1  mrg FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
     15  1.1  mrg more details.
     16  1.1  mrg 
     17  1.1  mrg You should have received a copy of the GNU Lesser General Public License
     18  1.1  mrg along with this program. If not, see http://www.gnu.org/licenses/ .
     19  1.1  mrg */
     20  1.1  mrg 
     21  1.1  mrg #include <stdio.h>
     22  1.1  mrg #include "mpc-tests.h"
     23  1.1  mrg 
     24  1.1  mrg static void
     25  1.1  mrg init_param (mpc_operand_t* p, mpc_param_t t)
     26  1.1  mrg {
     27  1.1  mrg   switch (t)
     28  1.1  mrg     {
     29  1.1  mrg     case NATIVE_INT:
     30  1.1  mrg     case NATIVE_UL:
     31  1.1  mrg     case NATIVE_L:
     32  1.1  mrg     case NATIVE_D:
     33  1.1  mrg       break;
     34  1.1  mrg 
     35  1.1  mrg     case GMP_Z:
     36  1.1  mrg       mpz_init (p->mpz);
     37  1.1  mrg       break;
     38  1.1  mrg     case GMP_Q:
     39  1.1  mrg       mpq_init (p->mpq);
     40  1.1  mrg       break;
     41  1.1  mrg     case GMP_F:
     42  1.1  mrg       mpf_init (p->mpf);
     43  1.1  mrg       break;
     44  1.1  mrg 
     45  1.1  mrg     case MPFR_INEX:
     46  1.1  mrg       break;
     47  1.1  mrg     case MPFR:
     48  1.1  mrg       mpfr_init2 (p->mpfr, 512);
     49  1.1  mrg       break;
     50  1.1  mrg 
     51  1.1  mrg     case MPC_INEX:
     52  1.1  mrg     case MPCC_INEX:
     53  1.1  mrg       break;
     54  1.1  mrg     case MPC:
     55  1.1  mrg       mpc_init2 (p->mpc, 512);
     56  1.1  mrg       break;
     57  1.1  mrg 
     58  1.1  mrg     case MPFR_RND:
     59  1.1  mrg     case MPC_RND:
     60  1.1  mrg       break;
     61  1.1  mrg 
     62  1.1  mrg     default:
     63  1.1  mrg       fprintf (stderr, "init_parameters: unsupported type.\n");
     64  1.1  mrg       exit (1);
     65  1.1  mrg     }
     66  1.1  mrg }
     67  1.1  mrg 
     68  1.1  mrg void
     69  1.1  mrg init_parameters (mpc_fun_param_t *params)
     70  1.1  mrg {
     71  1.1  mrg   int in, out;
     72  1.1  mrg   int total = params->nbout + params->nbin;
     73  1.1  mrg 
     74  1.1  mrg   for (out = 0; out < params->nbout; out++)
     75  1.1  mrg     {
     76  1.1  mrg       init_param (&(params->P[out]), params->T[out]);
     77  1.1  mrg       init_param (&(params->P[total + out]), params->T[total + out]);
     78  1.1  mrg     }
     79  1.1  mrg 
     80  1.1  mrg   for (in = params->nbout; in < total; in++)
     81  1.1  mrg     {
     82  1.1  mrg       init_param (&(params->P[in]), params->T[in]);
     83  1.1  mrg     }
     84  1.1  mrg }
     85