1 /*
2     Copyright (C) 2015 Kushagra Singh
3 
4     This file is part of FLINT.
5 
6     FLINT is free software: you can redistribute it and/or modify it under
7     the terms of the GNU Lesser General Public License (LGPL) as published
8     by the Free Software Foundation; either version 2.1 of the License, or
9     (at your option) any later version.  See <https://www.gnu.org/licenses/>.
10 */
11 
12 #include <gmp.h>
13 #include "flint.h"
14 #include "fmpz.h"
15 #include "mpn_extras.h"
16 
17 void
fmpz_factor_ecm_init(ecm_t ecm_inf,mp_limb_t sz)18 fmpz_factor_ecm_init(ecm_t ecm_inf, mp_limb_t sz)
19 {
20     ecm_inf->t = flint_malloc(sz * sizeof(mp_limb_t));
21     ecm_inf->u = flint_malloc(sz * sizeof(mp_limb_t));
22     ecm_inf->v = flint_malloc(sz * sizeof(mp_limb_t));
23     ecm_inf->w = flint_malloc(sz * sizeof(mp_limb_t));
24 
25     ecm_inf->x = flint_malloc(sz * sizeof(mp_limb_t));
26     ecm_inf->z = flint_malloc(sz * sizeof(mp_limb_t));
27 
28     ecm_inf->a24 = flint_malloc(sz * sizeof(mp_limb_t));
29     ecm_inf->ninv = flint_malloc(sz * sizeof(mp_limb_t));
30     ecm_inf->one = flint_malloc(sz * sizeof(mp_limb_t));
31 
32     mpn_zero(ecm_inf->t, sz);
33     mpn_zero(ecm_inf->u, sz);
34     mpn_zero(ecm_inf->v, sz);
35     mpn_zero(ecm_inf->w, sz);
36 
37     mpn_zero(ecm_inf->x, sz);
38     mpn_zero(ecm_inf->z, sz);
39 
40     mpn_zero(ecm_inf->a24, sz);
41     mpn_zero(ecm_inf->ninv, sz);
42     mpn_zero(ecm_inf->one, sz);
43 
44     ecm_inf->n_size = sz;
45 }
46