Rev 90299 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
/** R : A Computer Language for Statistical Data Analysis* Copyright (C) 1998-2026 The R Core Team** This header file 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 2.1 of the License, or* (at your option) any later version.** This file is part of R. R is distributed under the terms of the* GNU General Public License, either Version 2, June 1991 or Version 3,* June 2007. See doc/COPYRIGHTS for details of the copyright status of R.** 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; if not, a copy is available at* https://www.R-project.org/Licenses/*//* Included by R.h: Part of the API. */#ifndef R_RANDOM_H#define R_RANDOM_H#include <R_ext/Boolean.h>#ifdef __cplusplusextern "C" {#endiftypedef enum {WICHMANN_HILL,MARSAGLIA_MULTICARRY,SUPER_DUPER,MERSENNE_TWISTER,KNUTH_TAOCP,USER_UNIF,KNUTH_TAOCP2,LECUYER_CMRG} RNGtype;/* Different kinds of "N(0,1)" generators :*/typedef enum {BUGGY_KINDERMAN_RAMAGE,AHRENS_DIETER,BOX_MULLER,USER_NORM,INVERSION,KINDERMAN_RAMAGE} N01type;/* Different ways to generate discrete uniform samples */typedef enum {ROUNDING,REJECTION} Sampletype;Sampletype R_sample_kind(void);/* Different kinds of "Bin(n,p)" generators :*/typedef enum {BUGGY_BTPE, BTPE// if you add a new option, update Bin_kind()'s check in RNG.c} Binomtype;#ifdef CALLED_FROM_rbinomextern#endifBinomtype R_binom_kind(void);void GetRNGstate(void);void PutRNGstate(void);double unif_rand(void);double R_unif_index(double);/* These are also defined in Rmath.h */double norm_rand(void);double exp_rand(void);typedef unsigned int Int32;double * user_unif_rand(void);void user_unif_init(Int32);int * user_unif_nseed(void);int * user_unif_seedloc(void);double * user_norm_rand(void);#ifdef __cplusplus}#endif#endif /* R_RANDOM_H */