summaryrefslogtreecommitdiff
path: root/gmp/mpz/array_init.c
diff options
context:
space:
mode:
authorPedro Alvarez <pedro.alvarez@codethink.co.uk>2016-05-27 17:39:31 +0100
committerPedro Alvarez <pedro.alvarez@codethink.co.uk>2016-05-27 17:53:32 +0100
commit26c75cf8267919f81a1759c9c965a52c660233f9 (patch)
treecf2a39cf56c2c8ac45760854413ab233e6263974 /gmp/mpz/array_init.c
parent56892c1d217baea02092b51a09bbc924130ca84c (diff)
downloadgcc-tarball-26c75cf8267919f81a1759c9c965a52c660233f9.tar.gz
Diffstat (limited to 'gmp/mpz/array_init.c')
-rw-r--r--gmp/mpz/array_init.c42
1 files changed, 16 insertions, 26 deletions
diff --git a/gmp/mpz/array_init.c b/gmp/mpz/array_init.c
index b967ddbeef..0e2f9aaa53 100644
--- a/gmp/mpz/array_init.c
+++ b/gmp/mpz/array_init.c
@@ -1,32 +1,22 @@
/* mpz_array_init (array, array_size, size_per_elem) --
-Copyright 1991, 1993-1995, 2000-2002, 2012 Free Software Foundation, Inc.
+Copyright 1991, 1993, 1994, 1995, 2000, 2001, 2002 Free Software Foundation,
+Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 3 of the License, or (at your
+option) any later version.
The GNU MP Library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+License for more details.
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
+You should have received a copy of the GNU Lesser General Public License
+along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#include "gmp.h"
#include "gmp-impl.h"
@@ -34,17 +24,17 @@ see https://www.gnu.org/licenses/. */
void
mpz_array_init (mpz_ptr arr, mp_size_t arr_size, mp_size_t nbits)
{
- mp_ptr p;
- mp_size_t i;
+ register mp_ptr p;
+ register mp_size_t i;
mp_size_t nlimbs;
- nlimbs = nbits / GMP_NUMB_BITS + 1;
- p = (mp_ptr) (*__gmp_allocate_func) ((size_t) arr_size * nlimbs * GMP_LIMB_BYTES);
+ nlimbs = (nbits + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS;
+ p = (mp_ptr) (*__gmp_allocate_func) (arr_size * nlimbs * BYTES_PER_MP_LIMB);
for (i = 0; i < arr_size; i++)
{
- ALLOC (&arr[i]) = nlimbs + 1; /* Yes, lie a little... */
- SIZ (&arr[i]) = 0;
- PTR (&arr[i]) = p + i * nlimbs;
+ arr[i]._mp_alloc = nlimbs + 1; /* Yes, lie a little... */
+ arr[i]._mp_size = 0;
+ arr[i]._mp_d = p + i * nlimbs;
}
}