#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct rocrand_discrete_distribution_st {
pub size: ::std::os::raw::c_uint,
pub offset: ::std::os::raw::c_uint,
pub alias: *mut ::std::os::raw::c_uint,
pub probability: *mut f64,
pub cdf: *mut f64,
}
pub type rocrand_discrete_distribution = *mut rocrand_discrete_distribution_st;
pub type uint4 = u128;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __half {
pub _address: u8,
}
pub type half = __half;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ihipStream_t {
_unused: [u8; 0],
}
pub type hipStream_t = *mut ihipStream_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct rocrand_generator_base_type {
_unused: [u8; 0],
}
pub type rocrand_generator = *mut rocrand_generator_base_type;
pub const rocrand_status_ROCRAND_STATUS_SUCCESS: rocrand_status = 0;
pub const rocrand_status_ROCRAND_STATUS_VERSION_MISMATCH: rocrand_status = 100;
pub const rocrand_status_ROCRAND_STATUS_NOT_CREATED: rocrand_status = 101;
pub const rocrand_status_ROCRAND_STATUS_ALLOCATION_FAILED: rocrand_status = 102;
pub const rocrand_status_ROCRAND_STATUS_TYPE_ERROR: rocrand_status = 103;
pub const rocrand_status_ROCRAND_STATUS_OUT_OF_RANGE: rocrand_status = 104;
pub const rocrand_status_ROCRAND_STATUS_LENGTH_NOT_MULTIPLE: rocrand_status = 105;
pub const rocrand_status_ROCRAND_STATUS_DOUBLE_PRECISION_REQUIRED: rocrand_status = 106;
pub const rocrand_status_ROCRAND_STATUS_LAUNCH_FAILURE: rocrand_status = 107;
pub const rocrand_status_ROCRAND_STATUS_INTERNAL_ERROR: rocrand_status = 108;
pub type rocrand_status = ::std::os::raw::c_uint;
pub const rocrand_rng_type_ROCRAND_RNG_PSEUDO_DEFAULT: rocrand_rng_type = 400;
pub const rocrand_rng_type_ROCRAND_RNG_PSEUDO_XORWOW: rocrand_rng_type = 401;
pub const rocrand_rng_type_ROCRAND_RNG_PSEUDO_MRG32K3A: rocrand_rng_type = 402;
pub const rocrand_rng_type_ROCRAND_RNG_PSEUDO_MTGP32: rocrand_rng_type = 403;
pub const rocrand_rng_type_ROCRAND_RNG_PSEUDO_PHILOX4_32_10: rocrand_rng_type = 404;
pub const rocrand_rng_type_ROCRAND_RNG_PSEUDO_MRG31K3P: rocrand_rng_type = 405;
pub const rocrand_rng_type_ROCRAND_RNG_PSEUDO_LFSR113: rocrand_rng_type = 406;
pub const rocrand_rng_type_ROCRAND_RNG_PSEUDO_MT19937: rocrand_rng_type = 407;
pub const rocrand_rng_type_ROCRAND_RNG_PSEUDO_THREEFRY2_32_20: rocrand_rng_type = 408;
pub const rocrand_rng_type_ROCRAND_RNG_PSEUDO_THREEFRY2_64_20: rocrand_rng_type = 409;
pub const rocrand_rng_type_ROCRAND_RNG_PSEUDO_THREEFRY4_32_20: rocrand_rng_type = 410;
pub const rocrand_rng_type_ROCRAND_RNG_PSEUDO_THREEFRY4_64_20: rocrand_rng_type = 411;
pub const rocrand_rng_type_ROCRAND_RNG_QUASI_DEFAULT: rocrand_rng_type = 500;
pub const rocrand_rng_type_ROCRAND_RNG_QUASI_SOBOL32: rocrand_rng_type = 501;
pub const rocrand_rng_type_ROCRAND_RNG_QUASI_SCRAMBLED_SOBOL32: rocrand_rng_type = 502;
pub const rocrand_rng_type_ROCRAND_RNG_QUASI_SOBOL64: rocrand_rng_type = 504;
pub const rocrand_rng_type_ROCRAND_RNG_QUASI_SCRAMBLED_SOBOL64: rocrand_rng_type = 505;
pub type rocrand_rng_type = ::std::os::raw::c_uint;
pub const rocrand_ordering_ROCRAND_ORDERING_PSEUDO_BEST: rocrand_ordering = 100;
pub const rocrand_ordering_ROCRAND_ORDERING_PSEUDO_DEFAULT: rocrand_ordering = 101;
pub const rocrand_ordering_ROCRAND_ORDERING_PSEUDO_SEEDED: rocrand_ordering = 102;
pub const rocrand_ordering_ROCRAND_ORDERING_PSEUDO_LEGACY: rocrand_ordering = 103;
pub const rocrand_ordering_ROCRAND_ORDERING_PSEUDO_DYNAMIC: rocrand_ordering = 104;
pub const rocrand_ordering_ROCRAND_ORDERING_QUASI_DEFAULT: rocrand_ordering = 201;
pub type rocrand_ordering = ::std::os::raw::c_uint;
pub const rocrand_direction_vector_set_ROCRAND_DIRECTION_VECTORS_32_JOEKUO6:
rocrand_direction_vector_set = 101;
pub const rocrand_direction_vector_set_ROCRAND_SCRAMBLED_DIRECTION_VECTORS_32_JOEKUO6:
rocrand_direction_vector_set = 102;
pub const rocrand_direction_vector_set_ROCRAND_DIRECTION_VECTORS_64_JOEKUO6:
rocrand_direction_vector_set = 103;
pub const rocrand_direction_vector_set_ROCRAND_SCRAMBLED_DIRECTION_VECTORS_64_JOEKUO6:
rocrand_direction_vector_set = 104;
pub type rocrand_direction_vector_set = ::std::os::raw::c_uint;
unsafe extern "C" {
pub fn rocrand_create_generator(
generator: *mut rocrand_generator,
rng_type: rocrand_rng_type,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_create_generator_host(
generator: *mut rocrand_generator,
rng_type: rocrand_rng_type,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_create_generator_host_blocking(
generator: *mut rocrand_generator,
rng_type: rocrand_rng_type,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_destroy_generator(generator: rocrand_generator) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate(
generator: rocrand_generator,
output_data: *mut ::std::os::raw::c_uint,
n: usize,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_long_long(
generator: rocrand_generator,
output_data: *mut ::std::os::raw::c_ulonglong,
n: usize,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_char(
generator: rocrand_generator,
output_data: *mut ::std::os::raw::c_uchar,
n: usize,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_short(
generator: rocrand_generator,
output_data: *mut ::std::os::raw::c_ushort,
n: usize,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_uniform(
generator: rocrand_generator,
output_data: *mut f32,
n: usize,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_uniform_double(
generator: rocrand_generator,
output_data: *mut f64,
n: usize,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_uniform_half(
generator: rocrand_generator,
output_data: *mut half,
n: usize,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_normal(
generator: rocrand_generator,
output_data: *mut f32,
n: usize,
mean: f32,
stddev: f32,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_normal_double(
generator: rocrand_generator,
output_data: *mut f64,
n: usize,
mean: f64,
stddev: f64,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_normal_half(
generator: rocrand_generator,
output_data: *mut half,
n: usize,
mean: half,
stddev: half,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_log_normal(
generator: rocrand_generator,
output_data: *mut f32,
n: usize,
mean: f32,
stddev: f32,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_log_normal_double(
generator: rocrand_generator,
output_data: *mut f64,
n: usize,
mean: f64,
stddev: f64,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_log_normal_half(
generator: rocrand_generator,
output_data: *mut half,
n: usize,
mean: half,
stddev: half,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_generate_poisson(
generator: rocrand_generator,
output_data: *mut ::std::os::raw::c_uint,
n: usize,
lambda: f64,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_initialize_generator(generator: rocrand_generator) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_set_stream(generator: rocrand_generator, stream: hipStream_t) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_set_seed(
generator: rocrand_generator,
seed: ::std::os::raw::c_ulonglong,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_set_seed_uint4(generator: rocrand_generator, seed: uint4) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_set_offset(
generator: rocrand_generator,
offset: ::std::os::raw::c_ulonglong,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_set_ordering(
generator: rocrand_generator,
order: rocrand_ordering,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_set_quasi_random_generator_dimensions(
generator: rocrand_generator,
dimensions: ::std::os::raw::c_uint,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_get_version(version: *mut ::std::os::raw::c_int) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_create_poisson_distribution(
lambda: f64,
discrete_distribution: *mut rocrand_discrete_distribution,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_create_discrete_distribution(
probabilities: *const f64,
size: ::std::os::raw::c_uint,
offset: ::std::os::raw::c_uint,
discrete_distribution: *mut rocrand_discrete_distribution,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_destroy_discrete_distribution(
discrete_distribution: rocrand_discrete_distribution,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_get_direction_vectors32(
vectors: *mut *const ::std::os::raw::c_uint,
set: rocrand_direction_vector_set,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_get_direction_vectors64(
vectors: *mut *const ::std::os::raw::c_ulonglong,
set: rocrand_direction_vector_set,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_get_scramble_constants32(
constants: *mut *const ::std::os::raw::c_uint,
) -> rocrand_status;
}
unsafe extern "C" {
pub fn rocrand_get_scramble_constants64(
constants: *mut *const ::std::os::raw::c_ulonglong,
) -> rocrand_status;
}