Total Variation Inpainting using Split Bregman
|
Mersenne Twister MT19937 pseudorandom number generator. More...
Go to the source code of this file.
Macros | |
#define | M_PI 3.14159265358979323846264338327950288419176939937510 |
The constant . | |
#define | rand_unif_r(generator) |
Generate a uniform random number on (0,1) (reentrant) More... | |
#define | rand_normal_r(generator) |
Generate a standard normal distributed random number (reentrant) More... | |
#define | rand_exp_r(generator, mu) |
Generate an exponentially-distributed number (reentrant) More... | |
#define | rand_geometric_r(generator, p) |
Generate a geometrically-distributed number (reentrant) More... | |
#define | init_randmt(seed) (init_randmt_r(&__randmt_global_generator, seed)) |
Initialize the global generator with a seed. More... | |
#define | init_randmt_auto() (init_randmt_auto_r(&__randmt_global_generator)) |
Initialize the global generator with the current time. More... | |
#define | rand_uint32() (rand_uint32_r(&__randmt_global_generator)) |
Generate a random 32-bit unsigned integer (nonreentrant) More... | |
#define | rand_unif() (rand_unif_r(&__randmt_global_generator)) |
Generate a uniform random number on (0,1) (nonreentrant) More... | |
#define | rand_normal() (rand_normal_r(&__randmt_global_generator)) |
Generate a standard normal distributed random number (nonreentrant) More... | |
#define | rand_exp(mu) (rand_exp_r(&__randmt_global_generator, mu)) |
Generate an exponentially-distributed number (nonreentrant) More... | |
#define | rand_gamma(a, b) (rand_gamma_r(&__randmt_global_generator, a, b)) |
Generate a Gamma-distributed number (nonreentrant) More... | |
#define | rand_poisson(mu) (rand_poisson_r(&__randmt_global_generator, mu)) |
Generate a Poisson-distributed number (nonreentrant) More... | |
#define | rand_geometric(p) (rand_geometric_r(&__randmt_global_generator, p)) |
Generate a geometrically-distributed number (nonreentrant) More... | |
Typedefs | |
typedef struct randmtstruct_t | randmt_t |
An MT19937 pseudo-random number generator. More... | |
Functions | |
randmt_t * | new_randmt () |
Create a new randmt_t. More... | |
void | free_randmt (randmt_t *generator) |
Free a randmt_t. More... | |
void | init_randmt_r (randmt_t *generator, unsigned long seed) |
Initialize randmt_t with a seed. More... | |
void | init_randmt_auto_r (randmt_t *generator) |
Initialize generator with the current time and memory address. More... | |
unsigned long | rand_uint32_r (randmt_t *generator) |
Generate a random 32-bit unsigned integer (reentrant) More... | |
double | rand_gamma_r (randmt_t *generator, double a, double b) |
Generate a Gamma-distributed number (reentrant) More... | |
double | rand_poisson_r (randmt_t *generator, double mu) |
Generate a Poisson-distributed number (reentrant) More... | |
Variables | |
randmt_t | __randmt_global_generator |
Global randmt_t, used with the global versions of the functions. | |
Mersenne Twister MT19937 pseudorandom number generator.
This software provides a high-quality pseudorandom number generator, the Mersenne Twister MT19937.
Definition in file randmt.h.
typedef struct randmtstruct_t randmt_t |
An MT19937 pseudo-random number generator.
This object represents the state of an MT19937 pseudo-random number generator. Use the following functions to create, initialize, and destroy randmt_t objects:
The randmt_t is encapsulated by forward declaration, and defined in randmt.c.
Copyright (C) 1997-2002, Makoto Matsumoto and Takuji Nishimura
Copyright (C) 2008, Seiji Nishimura seiji 1976 @gmai l.co m
Copyright (C) 2010-2011 Nicolas Limare nicol as.l imare @cml a.ens -cac han.f r
Copyright (C) 2011, Pascal Getreuer getre uer@ gmail .com
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.