rocm-rs 0.5.2

Rust bindings for AMD ROCm libraries
/* automatically generated by rust-bindgen 0.71.1 */

#[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;
}