/*=============================================================================

    This file is part of FLINT.

    FLINT is free software; you can redistribute it and/or modify
    it under the terms of 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.

    FLINT 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.

    You should have received a copy of the GNU General Public License
    along with FLINT; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

=============================================================================*/
/******************************************************************************

    Copyright (C) 2010 Sebastian Pancratz

******************************************************************************/

*******************************************************************************

    Properties

*******************************************************************************

size_t z_sizeinbase(slong n, int b)

    Returns the number of digits in the base $b$ representation 
    of the absolute value of the integer $n$.

    Assumes that $b \geq 2$.

*******************************************************************************

    Random functions 

*******************************************************************************

mp_limb_signed_t z_randtest(flint_rand_t state)

    Returns a pseudo random number with a random number of bits, from 
    $0$ to \code{FLINT_BITS}.  The probability of the special values $0$, 
    $\pm 1$, \code{COEFF_MAX}, \code{COEFF_MIN}, \code{WORD_MAX} and 
    \code{WORD_MIN} is increased.

    This random function is mainly used for testing purposes.

mp_limb_signed_t z_randtest_not_zero(flint_rand_t state)

    As for \code{z_randtest(state)}, but does not return $0$.

mp_limb_t z_randint(flint_rand_t state, mp_limb_t limit) 

    Returns a pseudo random number of absolute value less than 
    \code{limit}.  If \code{limit} is zero or exceeds \code{WORD_MAX}, 
    it is interpreted as \code{WORD_MAX}.

