/*  Copyright (C) 2008--2010 Joshua Judson Rosen <rozzin@geekspace.com>.

    This program is free software: you can redistribute it and/or
    modify 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..

    This program 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 Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with this program; see the file COPYING. If not, see
    <http://www.gnu.org/licenses/> or write to:

        The Free Software Foundation, inc.
        51 Franklin Street, Fifth Floor
        Boston, MA 02110-1301
        USA
*/

#ifndef VIRAND_RANDOM_H
#define VIRAND_RANDOM_H

double virand_range_biased (GRand *state,
                            double low, double high, double rnd_power);

gboolean virand_prob (GRand *state, double probability);

gboolean virand_prob_reduced (GRand *state,
                         double probability, int level);

double virand_rational (GRand *state,
                        int low_num, int high_num, int denominator);

void virand_set_seed_string (GRand *state,
                             const char *seed, size_t seed_length);

#endif
