diff options
author | lfousse <lfousse@280ebfd0-de03-0410-8827-d642c229c3f4> | 2011-01-14 16:34:48 +0000 |
---|---|---|
committer | lfousse <lfousse@280ebfd0-de03-0410-8827-d642c229c3f4> | 2011-01-14 16:34:48 +0000 |
commit | df72699d68e63fb05d56a301bb780eda8ffb02de (patch) | |
tree | 03dd5a3c53411f3e80042ddacdd9a7f9d240c2a7 | |
parent | 8eddbe5e62da39356cab5a3b30160118c3b47572 (diff) | |
download | mpfr-df72699d68e63fb05d56a301bb780eda8ffb02de.tar.gz |
[src/urandom_gaussian.c] Add missing inits/clears.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@7363 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r-- | src/urandom_gaussian.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/urandom_gaussian.c b/src/urandom_gaussian.c index 2a875a6f7..0c6f1fbb9 100644 --- a/src/urandom_gaussian.c +++ b/src/urandom_gaussian.c @@ -60,19 +60,21 @@ mpfr_urandom_gaussian (mpfr_ptr rop1, mpfr_ptr rop2, gmp_randstate_t rstate, mpf mpz_init (xp); mpz_init (yp); - mpz_init (x); mpz_init (y); - mpz_init (t); mpz_init (s); + mpz_init (a); + mpz_init (b); + mpfr_init2 (sfr, MPFR_PREC_MIN); + mpfr_init2 (l, MPFR_PREC_MIN); + mpfr_init2 (r1, MPFR_PREC (rop1)); + if (rop2 != NULL) + mpfr_init2 (r2, MPFR_PREC (rop2)); mpz_set_ui (xp, 0); mpz_set_ui (yp, 0); - mpfr_init2 (sfr, MPFR_PREC_MIN); - mpfr_init2 (l, MPFR_PREC_MIN); - for (;;) { tprec = tprec0; @@ -165,8 +167,13 @@ mpfr_urandom_gaussian (mpfr_ptr rop1, mpfr_ptr rop2, gmp_randstate_t rstate, mpf } inex1 = mpfr_check_range (rop1, inex1, rnd); + if (rop2 != NULL) + mpfr_clear (r2); + mpfr_clear (r1); mpfr_clear (l); mpfr_clear (sfr); + mpz_clear (b); + mpz_clear (a); mpz_clear (s); mpz_clear (t); mpz_clear (y); |