#[repr(C)]
#[derive(Clone, Copy)]
pub union w128 {
pub u: [u32; 4usize],
pub u64: [u64; 2usize],
}
#[repr(C)]
#[derive(Clone)]
pub struct SFMT {
pub state: [w128; 156usize],
pub idx: i32,
}
extern "C" {
pub fn sfmt_fill_array32(sfmt: *mut SFMT, array: *mut u32, size: i32);
pub fn sfmt_fill_array64(sfmt: *mut SFMT, array: *mut u64, size: i32);
pub fn sfmt_gen_rand_all(sfmt: *mut SFMT);
pub fn sfmt_get_idstring(sfmt: *mut SFMT) -> *const u8;
pub fn sfmt_get_min_array_size32(sfmt: *mut SFMT) -> i32;
pub fn sfmt_get_min_array_size64(sfmt: *mut SFMT) -> i32;
pub fn sfmt_init_by_array(sfmt: *mut SFMT, init_key: *mut u32, key_length: i32);
pub fn sfmt_init_gen_rand(sfmt: *mut SFMT, seed: u32);
}
#[repr(C)]
pub struct DSFMT {
pub status: [w128; 192usize],
pub idx: i32,
}
extern "C" {
#[link_name = "\u{1}dsfmt_global_data"]
pub static mut dsfmt_global_data: DSFMT;
#[link_name = "\u{1}dsfmt_global_mexp"]
pub static mut dsfmt_global_mexp: i32;
pub fn dsfmt_gen_rand_all(dsfmt: *mut DSFMT);
pub fn dsfmt_fill_array_open_close(dsfmt: *mut DSFMT, array: *mut f64, size: i32);
pub fn dsfmt_fill_array_close_open(dsfmt: *mut DSFMT, array: *mut f64, size: i32);
pub fn dsfmt_fill_array_open_open(dsfmt: *mut DSFMT, array: *mut f64, size: i32);
pub fn dsfmt_fill_array_close1_open2(dsfmt: *mut DSFMT, array: *mut f64, size: i32);
pub fn dsfmt_chk_init_gen_rand(dsfmt: *mut DSFMT, seed: u32, mexp: i32);
pub fn dsfmt_chk_init_by_array(
dsfmt: *mut DSFMT,
init_key: *mut u32,
key_length: i32,
mexp: i32,
);
pub fn dsfmt_get_idstring() -> *const i8;
pub fn dsfmt_get_min_array_size() -> i32;
}
#[cfg(test)]
mod test {
use super::*;
#[test]
fn bindgen_test_layout_w128() {
assert_eq!(
::std::mem::size_of::<w128>(),
16usize,
concat!("Size of: ", stringify!(w128))
);
assert_eq!(
::std::mem::align_of::<w128>(),
8usize,
concat!("Alignment of ", stringify!(w128))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<w128>())).u as *const _ as usize },
0usize,
concat!("Offset of field: ", stringify!(w128), "::", stringify!(u))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<w128>())).u64 as *const _ as usize },
0usize,
concat!("Offset of field: ", stringify!(w128), "::", stringify!(u64))
);
}
#[test]
fn bindgen_test_layout_sfmt() {
assert_eq!(
::std::mem::size_of::<SFMT>(),
2504usize,
concat!("Size of: ", stringify!(SFMT))
);
assert_eq!(
::std::mem::align_of::<SFMT>(),
8usize,
concat!("Alignment of ", stringify!(SFMT))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<SFMT>())).state as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(SFMT),
"::",
stringify!(state)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<SFMT>())).idx as *const _ as usize },
2496usize,
concat!("Offset of field: ", stringify!(SFMT), "::", stringify!(idx))
);
}
#[test]
fn bindgen_test_layout_dsfmt() {
assert_eq!(
::std::mem::size_of::<DSFMT>(),
3080usize,
concat!("Size of: ", stringify!(DSFMT))
);
assert_eq!(
::std::mem::align_of::<DSFMT>(),
8usize,
concat!("Alignment of ", stringify!(DSFMT))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<DSFMT>())).status as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(DSFMT),
"::",
stringify!(status)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<DSFMT>())).idx as *const _ as usize },
3072usize,
concat!(
"Offset of field: ",
stringify!(DSFMT),
"::",
stringify!(idx)
)
);
}
}