c_distributions.pxd
1 #!python 2 #cython: wraparound=False, nonecheck=False, boundscheck=False, cdivision=True, language_level=3 3 from numpy cimport npy_intp 4 5 from libc.stdint cimport (uint64_t, int32_t, int64_t) 6 from numpy.random cimport bitgen_t 7 8 cdef extern from "numpy/random/distributions.h": 9 10 struct s_binomial_t: 11 int has_binomial 12 double psave 13 int64_t nsave 14 double r 15 double q 16 double fm 17 int64_t m 18 double p1 19 double xm 20 double xl 21 double xr 22 double c 23 double laml 24 double lamr 25 double p2 26 double p3 27 double p4 28 29 ctypedef s_binomial_t binomial_t 30 31 double random_standard_uniform(bitgen_t *bitgen_state) nogil 32 void random_standard_uniform_fill(bitgen_t* bitgen_state, npy_intp cnt, double *out) nogil 33 double random_standard_exponential(bitgen_t *bitgen_state) nogil 34 double random_standard_exponential_f(bitgen_t *bitgen_state) nogil 35 void random_standard_exponential_fill(bitgen_t *bitgen_state, npy_intp cnt, double *out) nogil 36 void random_standard_exponential_fill_f(bitgen_t *bitgen_state, npy_intp cnt, double *out) nogil 37 void random_standard_exponential_inv_fill(bitgen_t *bitgen_state, npy_intp cnt, double *out) nogil 38 void random_standard_exponential_inv_fill_f(bitgen_t *bitgen_state, npy_intp cnt, double *out) nogil 39 double random_standard_normal(bitgen_t* bitgen_state) nogil 40 void random_standard_normal_fill(bitgen_t *bitgen_state, npy_intp count, double *out) nogil 41 void random_standard_normal_fill_f(bitgen_t *bitgen_state, npy_intp count, float *out) nogil 42 double random_standard_gamma(bitgen_t *bitgen_state, double shape) nogil 43 44 float random_standard_uniform_f(bitgen_t *bitgen_state) nogil 45 void random_standard_uniform_fill_f(bitgen_t* bitgen_state, npy_intp cnt, float *out) nogil 46 float random_standard_normal_f(bitgen_t* bitgen_state) nogil 47 float random_standard_gamma_f(bitgen_t *bitgen_state, float shape) nogil 48 49 int64_t random_positive_int64(bitgen_t *bitgen_state) nogil 50 int32_t random_positive_int32(bitgen_t *bitgen_state) nogil 51 int64_t random_positive_int(bitgen_t *bitgen_state) nogil 52 uint64_t random_uint(bitgen_t *bitgen_state) nogil 53 54 double random_normal(bitgen_t *bitgen_state, double loc, double scale) nogil 55 56 double random_gamma(bitgen_t *bitgen_state, double shape, double scale) nogil 57 float random_gamma_f(bitgen_t *bitgen_state, float shape, float scale) nogil 58 59 double random_exponential(bitgen_t *bitgen_state, double scale) nogil 60 double random_uniform(bitgen_t *bitgen_state, double lower, double range) nogil 61 double random_beta(bitgen_t *bitgen_state, double a, double b) nogil 62 double random_chisquare(bitgen_t *bitgen_state, double df) nogil 63 double random_f(bitgen_t *bitgen_state, double dfnum, double dfden) nogil 64 double random_standard_cauchy(bitgen_t *bitgen_state) nogil 65 double random_pareto(bitgen_t *bitgen_state, double a) nogil 66 double random_weibull(bitgen_t *bitgen_state, double a) nogil 67 double random_power(bitgen_t *bitgen_state, double a) nogil 68 double random_laplace(bitgen_t *bitgen_state, double loc, double scale) nogil 69 double random_gumbel(bitgen_t *bitgen_state, double loc, double scale) nogil 70 double random_logistic(bitgen_t *bitgen_state, double loc, double scale) nogil 71 double random_lognormal(bitgen_t *bitgen_state, double mean, double sigma) nogil 72 double random_rayleigh(bitgen_t *bitgen_state, double mode) nogil 73 double random_standard_t(bitgen_t *bitgen_state, double df) nogil 74 double random_noncentral_chisquare(bitgen_t *bitgen_state, double df, 75 double nonc) nogil 76 double random_noncentral_f(bitgen_t *bitgen_state, double dfnum, 77 double dfden, double nonc) nogil 78 double random_wald(bitgen_t *bitgen_state, double mean, double scale) nogil 79 double random_vonmises(bitgen_t *bitgen_state, double mu, double kappa) nogil 80 double random_triangular(bitgen_t *bitgen_state, double left, double mode, 81 double right) nogil 82 83 int64_t random_poisson(bitgen_t *bitgen_state, double lam) nogil 84 int64_t random_negative_binomial(bitgen_t *bitgen_state, double n, double p) nogil 85 int64_t random_binomial(bitgen_t *bitgen_state, double p, int64_t n, binomial_t *binomial) nogil 86 int64_t random_logseries(bitgen_t *bitgen_state, double p) nogil 87 int64_t random_geometric_search(bitgen_t *bitgen_state, double p) nogil 88 int64_t random_geometric_inversion(bitgen_t *bitgen_state, double p) nogil 89 int64_t random_geometric(bitgen_t *bitgen_state, double p) nogil 90 int64_t random_zipf(bitgen_t *bitgen_state, double a) nogil 91 int64_t random_hypergeometric(bitgen_t *bitgen_state, int64_t good, int64_t bad, 92 int64_t sample) nogil 93 94 uint64_t random_interval(bitgen_t *bitgen_state, uint64_t max) nogil 95 96 # Generate random uint64 numbers in closed interval [off, off + rng]. 97 uint64_t random_bounded_uint64(bitgen_t *bitgen_state, 98 uint64_t off, uint64_t rng, 99 uint64_t mask, bint use_masked) nogil 100 101 void random_multinomial(bitgen_t *bitgen_state, int64_t n, int64_t *mnix, 102 double *pix, npy_intp d, binomial_t *binomial) nogil 103 104 int random_multivariate_hypergeometric_count(bitgen_t *bitgen_state, 105 int64_t total, 106 size_t num_colors, int64_t *colors, 107 int64_t nsample, 108 size_t num_variates, int64_t *variates) nogil 109 void random_multivariate_hypergeometric_marginals(bitgen_t *bitgen_state, 110 int64_t total, 111 size_t num_colors, int64_t *colors, 112 int64_t nsample, 113 size_t num_variates, int64_t *variates) nogil 114