GSL-sys 3.0.0

A rust binding for the GSL (the GNU scientific library)
Documentation
// Generated on commit 2.7 from ftp://ftp.gnu.org/gnu/gsl/gsl-2.7.tar.gz
// DO NOT EDIT THIS FILE!!!

/* automatically generated by rust-bindgen 0.55.1 */

pub const GSL_COMPLEX_LEGACY: u32 = 1;
pub const GSL_RANGE_CHECK: u32 = 1;
pub const GSL_ROOT4_MACH_EPS: f64 = 0.000178;
pub const GSL_ROOT5_MACH_EPS: f64 = 0.001;
pub const GSL_ROOT6_MACH_EPS: f64 = 0.00316;
pub const GSL_LOG_MACH_EPS: f64 = -34.54;
pub const GSL_POSZERO: f64 = 0.0;
pub const GSL_NEGZERO: f64 = -0.0;
pub const GSL_BST_AVL_MAX_HEIGHT: u32 = 32;
pub const GSL_BST_RB_MAX_HEIGHT: u32 = 48;
pub const GSL_PREC_DOUBLE: u32 = 0;
pub const GSL_PREC_SINGLE: u32 = 1;
pub const GSL_PREC_APPROX: u32 = 2;
pub const GSL_MODE_DEFAULT: u32 = 0;
pub const GSL_CONST_NUM_YOTTA: f64 = 1000000000000000000000000.0;
pub const GSL_CONST_NUM_ZETTA: f64 = 1000000000000000000000.0;
pub const GSL_CONST_NUM_EXA: f64 = 1000000000000000000.0;
pub const GSL_CONST_NUM_PETA: f64 = 1000000000000000.0;
pub const GSL_CONST_NUM_TERA: f64 = 1000000000000.0;
pub const GSL_CONST_NUM_GIGA: f64 = 1000000000.0;
pub const GSL_CONST_NUM_MEGA: f64 = 1000000.0;
pub const GSL_CONST_NUM_KILO: f64 = 1000.0;
pub const GSL_CONST_NUM_MILLI: f64 = 0.001;
pub const GSL_CONST_NUM_MICRO: f64 = 0.000001;
pub const GSL_CONST_NUM_NANO: f64 = 0.000000001;
pub const GSL_CONST_NUM_PICO: f64 = 0.000000000001;
pub const GSL_CONST_NUM_FEMTO: f64 = 0.000000000000001;
pub const GSL_CONST_NUM_ATTO: f64 = 0.000000000000000001;
pub const GSL_CONST_NUM_ZEPTO: f64 = 0.000000000000000000001;
pub const GSL_CONST_NUM_YOCTO: f64 = 0.000000000000000000000001;
pub const GSL_CONST_CGS_MINUTE: f64 = 60.0;
pub const GSL_CONST_CGS_MICRON: f64 = 0.0001;
pub const GSL_CONST_CGS_ANGSTROM: f64 = 0.00000001;
pub const GSL_CONST_CGS_HECTARE: f64 = 100000000.0;
pub const GSL_CONST_CGS_BARN: f64 = 0.000000000000000000000001;
pub const GSL_CONST_CGS_LITER: f64 = 1000.0;
pub const GSL_CONST_CGS_METRIC_TON: f64 = 1000000.0;
pub const GSL_CONST_CGS_CARAT: f64 = 0.2;
pub const GSL_CONST_CGS_BAR: f64 = 1000000.0;
pub const GSL_CONST_CGS_POISE: f64 = 1.0;
pub const GSL_CONST_CGS_STOKES: f64 = 1.0;
pub const GSL_CONST_CGS_STILB: f64 = 1.0;
pub const GSL_CONST_CGS_LUMEN: f64 = 1.0;
pub const GSL_CONST_CGS_LUX: f64 = 0.0001;
pub const GSL_CONST_CGS_PHOT: f64 = 1.0;
pub const GSL_CONST_CGS_LAMBERT: f64 = 1.0;
pub const GSL_CONST_CGS_RAD: f64 = 100.0;
pub const GSL_CONST_CGS_NEWTON: f64 = 100000.0;
pub const GSL_CONST_CGS_DYNE: f64 = 1.0;
pub const GSL_CONST_CGS_JOULE: f64 = 10000000.0;
pub const GSL_CONST_CGS_ERG: f64 = 1.0;
pub const GSL_CONST_MKS_MINUTE: f64 = 60.0;
pub const GSL_CONST_MKS_MICRON: f64 = 0.000001;
pub const GSL_CONST_MKS_ANGSTROM: f64 = 0.0000000001;
pub const GSL_CONST_MKS_HECTARE: f64 = 10000.0;
pub const GSL_CONST_MKS_BARN: f64 = 0.0000000000000000000000000001;
pub const GSL_CONST_MKS_LITER: f64 = 0.001;
pub const GSL_CONST_MKS_METRIC_TON: f64 = 1000.0;
pub const GSL_CONST_MKS_CARAT: f64 = 0.0002;
pub const GSL_CONST_MKS_BAR: f64 = 100000.0;
pub const GSL_CONST_MKS_POISE: f64 = 0.1;
pub const GSL_CONST_MKS_STOKES: f64 = 0.0001;
pub const GSL_CONST_MKS_STILB: f64 = 10000.0;
pub const GSL_CONST_MKS_LUMEN: f64 = 1.0;
pub const GSL_CONST_MKS_LUX: f64 = 1.0;
pub const GSL_CONST_MKS_PHOT: f64 = 10000.0;
pub const GSL_CONST_MKS_LAMBERT: f64 = 10000.0;
pub const GSL_CONST_MKS_RAD: f64 = 0.01;
pub const GSL_CONST_MKS_NEWTON: f64 = 1.0;
pub const GSL_CONST_MKS_DYNE: f64 = 0.00001;
pub const GSL_CONST_MKS_JOULE: f64 = 1.0;
pub const GSL_CONST_MKS_ERG: f64 = 0.0000001;
pub const GSL_CONST_MKS_GAUSS: f64 = 0.0001;
pub const GSL_CONST_CGSM_MINUTE: f64 = 60.0;
pub const GSL_CONST_CGSM_MICRON: f64 = 0.0001;
pub const GSL_CONST_CGSM_ANGSTROM: f64 = 0.00000001;
pub const GSL_CONST_CGSM_HECTARE: f64 = 100000000.0;
pub const GSL_CONST_CGSM_BARN: f64 = 0.000000000000000000000001;
pub const GSL_CONST_CGSM_LITER: f64 = 1000.0;
pub const GSL_CONST_CGSM_METRIC_TON: f64 = 1000000.0;
pub const GSL_CONST_CGSM_CARAT: f64 = 0.2;
pub const GSL_CONST_CGSM_BAR: f64 = 1000000.0;
pub const GSL_CONST_CGSM_POISE: f64 = 1.0;
pub const GSL_CONST_CGSM_STOKES: f64 = 1.0;
pub const GSL_CONST_CGSM_STILB: f64 = 1.0;
pub const GSL_CONST_CGSM_LUMEN: f64 = 1.0;
pub const GSL_CONST_CGSM_LUX: f64 = 0.0001;
pub const GSL_CONST_CGSM_PHOT: f64 = 1.0;
pub const GSL_CONST_CGSM_LAMBERT: f64 = 1.0;
pub const GSL_CONST_CGSM_RAD: f64 = 100.0;
pub const GSL_CONST_CGSM_NEWTON: f64 = 100000.0;
pub const GSL_CONST_CGSM_DYNE: f64 = 1.0;
pub const GSL_CONST_CGSM_JOULE: f64 = 10000000.0;
pub const GSL_CONST_CGSM_ERG: f64 = 1.0;
pub const GSL_CONST_MKSA_MINUTE: f64 = 60.0;
pub const GSL_CONST_MKSA_MICRON: f64 = 0.000001;
pub const GSL_CONST_MKSA_ANGSTROM: f64 = 0.0000000001;
pub const GSL_CONST_MKSA_HECTARE: f64 = 10000.0;
pub const GSL_CONST_MKSA_BARN: f64 = 0.0000000000000000000000000001;
pub const GSL_CONST_MKSA_LITER: f64 = 0.001;
pub const GSL_CONST_MKSA_METRIC_TON: f64 = 1000.0;
pub const GSL_CONST_MKSA_CARAT: f64 = 0.0002;
pub const GSL_CONST_MKSA_BAR: f64 = 100000.0;
pub const GSL_CONST_MKSA_POISE: f64 = 0.1;
pub const GSL_CONST_MKSA_STOKES: f64 = 0.0001;
pub const GSL_CONST_MKSA_STILB: f64 = 10000.0;
pub const GSL_CONST_MKSA_LUMEN: f64 = 1.0;
pub const GSL_CONST_MKSA_LUX: f64 = 1.0;
pub const GSL_CONST_MKSA_PHOT: f64 = 10000.0;
pub const GSL_CONST_MKSA_LAMBERT: f64 = 10000.0;
pub const GSL_CONST_MKSA_RAD: f64 = 0.01;
pub const GSL_CONST_MKSA_NEWTON: f64 = 1.0;
pub const GSL_CONST_MKSA_DYNE: f64 = 0.00001;
pub const GSL_CONST_MKSA_JOULE: f64 = 1.0;
pub const GSL_CONST_MKSA_ERG: f64 = 0.0000001;
pub const GSL_CONST_MKSA_GAUSS: f64 = 0.0001;
pub const GSL_MESSAGE_MASK: u32 = 4294967295;
pub const GSL_ODEIV_HADJ_INC: i32 = 1;
pub const GSL_ODEIV_HADJ_NIL: i32 = 0;
pub const GSL_ODEIV_HADJ_DEC: i32 = -1;
pub const GSL_SF_GAMMA_XMAX: f64 = 171.0;
pub const GSL_SF_FACT_NMAX: u32 = 170;
pub const GSL_SF_DOUBLEFACT_NMAX: u32 = 297;
pub const GSL_SF_MATHIEU_COEFF: u32 = 100;
pub const GSL_SPMATRIX_FLG_GROW: u32 = 1;
pub const GSL_SPMATRIX_FLG_FIXED: u32 = 2;
pub const GSL_VERSION: &'static [u8; 4usize] = b"2.7\0";
pub const GSL_MAJOR_VERSION: u32 = 2;
pub const GSL_MINOR_VERSION: u32 = 7;
pub type __int64_t = ::std::os::raw::c_longlong;
pub type __darwin_size_t = ::std::os::raw::c_ulong;
pub type __darwin_off_t = __int64_t;
pub type fpos_t = __darwin_off_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __sbuf;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __sFILEX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __sFILE;
pub type FILE = libc::FILE;
pub const GSL_SUCCESS: ::std::os::raw::c_int = 0;
pub const GSL_FAILURE: ::std::os::raw::c_int = -1;
pub const GSL_CONTINUE: ::std::os::raw::c_int = -2;
pub const GSL_EDOM: ::std::os::raw::c_int = 1;
pub const GSL_ERANGE: ::std::os::raw::c_int = 2;
pub const GSL_EFAULT: ::std::os::raw::c_int = 3;
pub const GSL_EINVAL: ::std::os::raw::c_int = 4;
pub const GSL_EFAILED: ::std::os::raw::c_int = 5;
pub const GSL_EFACTOR: ::std::os::raw::c_int = 6;
pub const GSL_ESANITY: ::std::os::raw::c_int = 7;
pub const GSL_ENOMEM: ::std::os::raw::c_int = 8;
pub const GSL_EBADFUNC: ::std::os::raw::c_int = 9;
pub const GSL_ERUNAWAY: ::std::os::raw::c_int = 10;
pub const GSL_EMAXITER: ::std::os::raw::c_int = 11;
pub const GSL_EZERODIV: ::std::os::raw::c_int = 12;
pub const GSL_EBADTOL: ::std::os::raw::c_int = 13;
pub const GSL_ETOL: ::std::os::raw::c_int = 14;
pub const GSL_EUNDRFLW: ::std::os::raw::c_int = 15;
pub const GSL_EOVRFLW: ::std::os::raw::c_int = 16;
pub const GSL_ELOSS: ::std::os::raw::c_int = 17;
pub const GSL_EROUND: ::std::os::raw::c_int = 18;
pub const GSL_EBADLEN: ::std::os::raw::c_int = 19;
pub const GSL_ENOTSQR: ::std::os::raw::c_int = 20;
pub const GSL_ESING: ::std::os::raw::c_int = 21;
pub const GSL_EDIVERGE: ::std::os::raw::c_int = 22;
pub const GSL_EUNSUP: ::std::os::raw::c_int = 23;
pub const GSL_EUNIMPL: ::std::os::raw::c_int = 24;
pub const GSL_ECACHE: ::std::os::raw::c_int = 25;
pub const GSL_ETABLE: ::std::os::raw::c_int = 26;
pub const GSL_ENOPROG: ::std::os::raw::c_int = 27;
pub const GSL_ENOPROGJ: ::std::os::raw::c_int = 28;
pub const GSL_ETOLF: ::std::os::raw::c_int = 29;
pub const GSL_ETOLX: ::std::os::raw::c_int = 30;
pub const GSL_ETOLG: ::std::os::raw::c_int = 31;
pub const GSL_EOF: ::std::os::raw::c_int = 32;
pub type _bindgen_ty_1 = ::std::os::raw::c_int;
extern "C" {
    pub fn gsl_error(
        reason: *const ::std::os::raw::c_char,
        file: *const ::std::os::raw::c_char,
        line: ::std::os::raw::c_int,
        gsl_errno: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn gsl_stream_printf(
        label: *const ::std::os::raw::c_char,
        file: *const ::std::os::raw::c_char,
        line: ::std::os::raw::c_int,
        reason: *const ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn gsl_strerror(gsl_errno: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
pub type gsl_error_handler_t = ::std::option::Option<
    unsafe extern "C" fn(
        reason: *const ::std::os::raw::c_char,
        file: *const ::std::os::raw::c_char,
        line: ::std::os::raw::c_int,
        gsl_errno: ::std::os::raw::c_int,
    ),
>;
pub type gsl_stream_handler_t = ::std::option::Option<
    unsafe extern "C" fn(
        label: *const ::std::os::raw::c_char,
        file: *const ::std::os::raw::c_char,
        line: ::std::os::raw::c_int,
        reason: *const ::std::os::raw::c_char,
    ),
>;
extern "C" {
    pub fn gsl_set_error_handler(new_handler: gsl_error_handler_t) -> gsl_error_handler_t;
}
extern "C" {
    pub fn gsl_set_error_handler_off() -> gsl_error_handler_t;
}
extern "C" {
    pub fn gsl_set_stream_handler(new_handler: gsl_stream_handler_t) -> gsl_stream_handler_t;
}
extern "C" {
    pub fn gsl_set_stream(new_stream: *mut FILE) -> *mut FILE;
}
pub type gsl_complex_packed = *mut f64;
pub type gsl_complex_packed_float = *mut f32;
pub type gsl_complex_packed_long_double = *mut u128;
pub type gsl_const_complex_packed = *const f64;
pub type gsl_const_complex_packed_float = *const f32;
pub type gsl_const_complex_packed_long_double = *const u128;
pub type gsl_complex_packed_array = *mut f64;
pub type gsl_complex_packed_array_float = *mut f32;
pub type gsl_complex_packed_array_long_double = *mut u128;
pub type gsl_const_complex_packed_array = *const f64;
pub type gsl_const_complex_packed_array_float = *const f32;
pub type gsl_const_complex_packed_array_long_double = *const u128;
pub type gsl_complex_packed_ptr = *mut f64;
pub type gsl_complex_packed_float_ptr = *mut f32;
pub type gsl_complex_packed_long_double_ptr = *mut u128;
pub type gsl_const_complex_packed_ptr = *const f64;
pub type gsl_const_complex_packed_float_ptr = *const f32;
pub type gsl_const_complex_packed_long_double_ptr = *const u128;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_complex {
    pub dat: [f64; 2usize],
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct gsl_complex_long_double {
    pub dat: [u128; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_complex_float {
    pub dat: [f32; 2usize],
}
extern "C" {
    pub static mut gsl_check_range: ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_long_double_struct;
pub type gsl_block_long_double = gsl_block_long_double_struct;
extern "C" {
    pub fn gsl_block_long_double_alloc(n: usize) -> *mut gsl_block_long_double;
}
extern "C" {
    pub fn gsl_block_long_double_calloc(n: usize) -> *mut gsl_block_long_double;
}
extern "C" {
    pub fn gsl_block_long_double_free(b: *mut gsl_block_long_double);
}
extern "C" {
    pub fn gsl_block_long_double_fread(
        stream: *mut FILE,
        b: *mut gsl_block_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_double_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_double_fscanf(
        stream: *mut FILE,
        b: *mut gsl_block_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_double_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_long_double,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_double_raw_fread(
        stream: *mut FILE,
        b: *mut u128,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_double_raw_fwrite(
        stream: *mut FILE,
        b: *const u128,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_double_raw_fscanf(
        stream: *mut FILE,
        b: *mut u128,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_double_raw_fprintf(
        stream: *mut FILE,
        b: *const u128,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_double_size(b: *const gsl_block_long_double) -> usize;
}
extern "C" {
    pub fn gsl_block_long_double_data(b: *const gsl_block_long_double) -> *mut u128;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_long_double {
    pub size: usize,
    pub stride: usize,
    pub data: *mut u128,
    pub block: *mut gsl_block_long_double,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_long_double_view {
    pub vector: gsl_vector_long_double,
}
pub type gsl_vector_long_double_view = _gsl_vector_long_double_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_long_double_const_view {
    pub vector: gsl_vector_long_double,
}
pub type gsl_vector_long_double_const_view = _gsl_vector_long_double_const_view;
extern "C" {
    pub fn gsl_vector_long_double_alloc(n: usize) -> *mut gsl_vector_long_double;
}
extern "C" {
    pub fn gsl_vector_long_double_calloc(n: usize) -> *mut gsl_vector_long_double;
}
extern "C" {
    pub fn gsl_vector_long_double_alloc_from_block(
        b: *mut gsl_block_long_double,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_long_double;
}
extern "C" {
    pub fn gsl_vector_long_double_alloc_from_vector(
        v: *mut gsl_vector_long_double,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_long_double;
}
extern "C" {
    pub fn gsl_vector_long_double_free(v: *mut gsl_vector_long_double);
}
extern "C" {
    pub fn gsl_vector_long_double_view_array(
        v: *mut u128,
        n: usize,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_vector_long_double_view_array_with_stride(
        base: *mut u128,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_vector_long_double_const_view_array(
        v: *const u128,
        n: usize,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_vector_long_double_const_view_array_with_stride(
        base: *const u128,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_vector_long_double_subvector(
        v: *mut gsl_vector_long_double,
        i: usize,
        n: usize,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_vector_long_double_subvector_with_stride(
        v: *mut gsl_vector_long_double,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_vector_long_double_const_subvector(
        v: *const gsl_vector_long_double,
        i: usize,
        n: usize,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_vector_long_double_const_subvector_with_stride(
        v: *const gsl_vector_long_double,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_vector_long_double_set_zero(v: *mut gsl_vector_long_double);
}
extern "C" {
    pub fn gsl_vector_long_double_set_all(v: *mut gsl_vector_long_double, x: u128);
}
extern "C" {
    pub fn gsl_vector_long_double_set_basis(
        v: *mut gsl_vector_long_double,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_fread(
        stream: *mut FILE,
        v: *mut gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_long_double,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_memcpy(
        dest: *mut gsl_vector_long_double,
        src: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_reverse(v: *mut gsl_vector_long_double) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_swap(
        v: *mut gsl_vector_long_double,
        w: *mut gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_swap_elements(
        v: *mut gsl_vector_long_double,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_max(v: *const gsl_vector_long_double) -> u128;
}
extern "C" {
    pub fn gsl_vector_long_double_min(v: *const gsl_vector_long_double) -> u128;
}
extern "C" {
    pub fn gsl_vector_long_double_minmax(
        v: *const gsl_vector_long_double,
        min_out: *mut u128,
        max_out: *mut u128,
    );
}
extern "C" {
    pub fn gsl_vector_long_double_max_index(v: *const gsl_vector_long_double) -> usize;
}
extern "C" {
    pub fn gsl_vector_long_double_min_index(v: *const gsl_vector_long_double) -> usize;
}
extern "C" {
    pub fn gsl_vector_long_double_minmax_index(
        v: *const gsl_vector_long_double,
        imin: *mut usize,
        imax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_vector_long_double_add(
        a: *mut gsl_vector_long_double,
        b: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_sub(
        a: *mut gsl_vector_long_double,
        b: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_mul(
        a: *mut gsl_vector_long_double,
        b: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_div(
        a: *mut gsl_vector_long_double,
        b: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_scale(
        a: *mut gsl_vector_long_double,
        x: u128,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_add_constant(
        a: *mut gsl_vector_long_double,
        x: u128,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_axpby(
        alpha: u128,
        x: *const gsl_vector_long_double,
        beta: u128,
        y: *mut gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_sum(a: *const gsl_vector_long_double) -> u128;
}
extern "C" {
    pub fn gsl_vector_long_double_equal(
        u: *const gsl_vector_long_double,
        v: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_isnull(v: *const gsl_vector_long_double)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_ispos(v: *const gsl_vector_long_double) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_isneg(v: *const gsl_vector_long_double) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_isnonneg(
        v: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_double_get(v: *const gsl_vector_long_double, i: usize) -> u128;
}
extern "C" {
    pub fn gsl_vector_long_double_set(v: *mut gsl_vector_long_double, i: usize, x: u128);
}
extern "C" {
    pub fn gsl_vector_long_double_ptr(v: *mut gsl_vector_long_double, i: usize) -> *mut u128;
}
extern "C" {
    pub fn gsl_vector_long_double_const_ptr(
        v: *const gsl_vector_long_double,
        i: usize,
    ) -> *const u128;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_complex_long_double_struct;
pub type gsl_block_complex_long_double = gsl_block_complex_long_double_struct;
extern "C" {
    pub fn gsl_block_complex_long_double_alloc(n: usize) -> *mut gsl_block_complex_long_double;
}
extern "C" {
    pub fn gsl_block_complex_long_double_calloc(n: usize) -> *mut gsl_block_complex_long_double;
}
extern "C" {
    pub fn gsl_block_complex_long_double_free(b: *mut gsl_block_complex_long_double);
}
extern "C" {
    pub fn gsl_block_complex_long_double_fread(
        stream: *mut FILE,
        b: *mut gsl_block_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_long_double_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_long_double_fscanf(
        stream: *mut FILE,
        b: *mut gsl_block_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_long_double_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_complex_long_double,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_long_double_raw_fread(
        stream: *mut FILE,
        b: *mut u128,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_long_double_raw_fwrite(
        stream: *mut FILE,
        b: *const u128,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_long_double_raw_fscanf(
        stream: *mut FILE,
        b: *mut u128,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_long_double_raw_fprintf(
        stream: *mut FILE,
        b: *const u128,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_long_double_size(b: *const gsl_block_complex_long_double) -> usize;
}
extern "C" {
    pub fn gsl_block_complex_long_double_data(b: *const gsl_block_complex_long_double)
        -> *mut u128;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_complex_long_double {
    pub size: usize,
    pub stride: usize,
    pub data: *mut u128,
    pub block: *mut gsl_block_complex_long_double,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_complex_long_double_view {
    pub vector: gsl_vector_complex_long_double,
}
pub type gsl_vector_complex_long_double_view = _gsl_vector_complex_long_double_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_complex_long_double_const_view {
    pub vector: gsl_vector_complex_long_double,
}
pub type gsl_vector_complex_long_double_const_view = _gsl_vector_complex_long_double_const_view;
extern "C" {
    pub fn gsl_vector_complex_long_double_alloc(n: usize) -> *mut gsl_vector_complex_long_double;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_calloc(n: usize) -> *mut gsl_vector_complex_long_double;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_alloc_from_block(
        b: *mut gsl_block_complex_long_double,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_complex_long_double;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_alloc_from_vector(
        v: *mut gsl_vector_complex_long_double,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_complex_long_double;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_free(v: *mut gsl_vector_complex_long_double);
}
extern "C" {
    pub fn gsl_vector_complex_long_double_view_array(
        base: *mut u128,
        n: usize,
    ) -> _gsl_vector_complex_long_double_view;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_view_array_with_stride(
        base: *mut u128,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_complex_long_double_view;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_const_view_array(
        base: *const u128,
        n: usize,
    ) -> _gsl_vector_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_const_view_array_with_stride(
        base: *const u128,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_subvector(
        base: *mut gsl_vector_complex_long_double,
        i: usize,
        n: usize,
    ) -> _gsl_vector_complex_long_double_view;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_subvector_with_stride(
        v: *mut gsl_vector_complex_long_double,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_complex_long_double_view;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_const_subvector(
        base: *const gsl_vector_complex_long_double,
        i: usize,
        n: usize,
    ) -> _gsl_vector_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_const_subvector_with_stride(
        v: *const gsl_vector_complex_long_double,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_real(
        v: *mut gsl_vector_complex_long_double,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_imag(
        v: *mut gsl_vector_complex_long_double,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_const_real(
        v: *const gsl_vector_complex_long_double,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_const_imag(
        v: *const gsl_vector_complex_long_double,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_set_zero(v: *mut gsl_vector_complex_long_double);
}
extern "C" {
    pub fn gsl_vector_complex_long_double_set_all(
        v: *mut gsl_vector_complex_long_double,
        z: gsl_complex_long_double,
    );
}
extern "C" {
    pub fn gsl_vector_complex_long_double_set_basis(
        v: *mut gsl_vector_complex_long_double,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_fread(
        stream: *mut FILE,
        v: *mut gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_complex_long_double,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_memcpy(
        dest: *mut gsl_vector_complex_long_double,
        src: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_reverse(
        v: *mut gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_swap(
        v: *mut gsl_vector_complex_long_double,
        w: *mut gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_swap_elements(
        v: *mut gsl_vector_complex_long_double,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_equal(
        u: *const gsl_vector_complex_long_double,
        v: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_isnull(
        v: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_ispos(
        v: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_isneg(
        v: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_isnonneg(
        v: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_add(
        a: *mut gsl_vector_complex_long_double,
        b: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_sub(
        a: *mut gsl_vector_complex_long_double,
        b: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_mul(
        a: *mut gsl_vector_complex_long_double,
        b: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_div(
        a: *mut gsl_vector_complex_long_double,
        b: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_scale(
        a: *mut gsl_vector_complex_long_double,
        x: gsl_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_add_constant(
        a: *mut gsl_vector_complex_long_double,
        x: gsl_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_axpby(
        alpha: gsl_complex_long_double,
        x: *const gsl_vector_complex_long_double,
        beta: gsl_complex_long_double,
        y: *mut gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_get(
        v: *const gsl_vector_complex_long_double,
        i: usize,
    ) -> gsl_complex_long_double;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_set(
        v: *mut gsl_vector_complex_long_double,
        i: usize,
        z: gsl_complex_long_double,
    );
}
extern "C" {
    pub fn gsl_vector_complex_long_double_ptr(
        v: *mut gsl_vector_complex_long_double,
        i: usize,
    ) -> *mut gsl_complex_long_double;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_const_ptr(
        v: *const gsl_vector_complex_long_double,
        i: usize,
    ) -> *const gsl_complex_long_double;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_struct;
pub type gsl_block = gsl_block_struct;
extern "C" {
    pub fn gsl_block_alloc(n: usize) -> *mut gsl_block;
}
extern "C" {
    pub fn gsl_block_calloc(n: usize) -> *mut gsl_block;
}
extern "C" {
    pub fn gsl_block_free(b: *mut gsl_block);
}
extern "C" {
    pub fn gsl_block_fread(stream: *mut FILE, b: *mut gsl_block) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_fwrite(stream: *mut FILE, b: *const gsl_block) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_fscanf(stream: *mut FILE, b: *mut gsl_block) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_fprintf(
        stream: *mut FILE,
        b: *const gsl_block,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_raw_fread(
        stream: *mut FILE,
        b: *mut f64,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_raw_fwrite(
        stream: *mut FILE,
        b: *const f64,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_raw_fscanf(
        stream: *mut FILE,
        b: *mut f64,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_raw_fprintf(
        stream: *mut FILE,
        b: *const f64,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_size(b: *const gsl_block) -> usize;
}
extern "C" {
    pub fn gsl_block_data(b: *const gsl_block) -> *mut f64;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector {
    pub size: usize,
    pub stride: usize,
    pub data: *mut f64,
    pub block: *mut gsl_block,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_view {
    pub vector: gsl_vector,
}
pub type gsl_vector_view = _gsl_vector_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_const_view {
    pub vector: gsl_vector,
}
pub type gsl_vector_const_view = _gsl_vector_const_view;
extern "C" {
    pub fn gsl_vector_alloc(n: usize) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_vector_calloc(n: usize) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_vector_alloc_from_block(
        b: *mut gsl_block,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_vector_alloc_from_vector(
        v: *mut gsl_vector,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_vector_free(v: *mut gsl_vector);
}
extern "C" {
    pub fn gsl_vector_view_array(v: *mut f64, n: usize) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_vector_view_array_with_stride(
        base: *mut f64,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_vector_const_view_array(v: *const f64, n: usize) -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_vector_const_view_array_with_stride(
        base: *const f64,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_vector_subvector(v: *mut gsl_vector, i: usize, n: usize) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_vector_subvector_with_stride(
        v: *mut gsl_vector,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_vector_const_subvector(
        v: *const gsl_vector,
        i: usize,
        n: usize,
    ) -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_vector_const_subvector_with_stride(
        v: *const gsl_vector,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_vector_set_zero(v: *mut gsl_vector);
}
extern "C" {
    pub fn gsl_vector_set_all(v: *mut gsl_vector, x: f64);
}
extern "C" {
    pub fn gsl_vector_set_basis(v: *mut gsl_vector, i: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_fread(stream: *mut FILE, v: *mut gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_fwrite(stream: *mut FILE, v: *const gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_fscanf(stream: *mut FILE, v: *mut gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_memcpy(
        dest: *mut gsl_vector,
        src: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_reverse(v: *mut gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_swap(v: *mut gsl_vector, w: *mut gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_swap_elements(
        v: *mut gsl_vector,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_max(v: *const gsl_vector) -> f64;
}
extern "C" {
    pub fn gsl_vector_min(v: *const gsl_vector) -> f64;
}
extern "C" {
    pub fn gsl_vector_minmax(v: *const gsl_vector, min_out: *mut f64, max_out: *mut f64);
}
extern "C" {
    pub fn gsl_vector_max_index(v: *const gsl_vector) -> usize;
}
extern "C" {
    pub fn gsl_vector_min_index(v: *const gsl_vector) -> usize;
}
extern "C" {
    pub fn gsl_vector_minmax_index(v: *const gsl_vector, imin: *mut usize, imax: *mut usize);
}
extern "C" {
    pub fn gsl_vector_add(a: *mut gsl_vector, b: *const gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_sub(a: *mut gsl_vector, b: *const gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_mul(a: *mut gsl_vector, b: *const gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_div(a: *mut gsl_vector, b: *const gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_scale(a: *mut gsl_vector, x: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_add_constant(a: *mut gsl_vector, x: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_vector_axpby(
        alpha: f64,
        x: *const gsl_vector,
        beta: f64,
        y: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_vector_sum(a: *const gsl_vector) -> f64;
}
extern "C" {
    pub fn gsl_vector_equal(u: *const gsl_vector, v: *const gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_isnull(v: *const gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ispos(v: *const gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_isneg(v: *const gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_isnonneg(v: *const gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_get(v: *const gsl_vector, i: usize) -> f64;
}
extern "C" {
    pub fn gsl_vector_set(v: *mut gsl_vector, i: usize, x: f64);
}
extern "C" {
    pub fn gsl_vector_ptr(v: *mut gsl_vector, i: usize) -> *mut f64;
}
extern "C" {
    pub fn gsl_vector_const_ptr(v: *const gsl_vector, i: usize) -> *const f64;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_complex_struct;
pub type gsl_block_complex = gsl_block_complex_struct;
extern "C" {
    pub fn gsl_block_complex_alloc(n: usize) -> *mut gsl_block_complex;
}
extern "C" {
    pub fn gsl_block_complex_calloc(n: usize) -> *mut gsl_block_complex;
}
extern "C" {
    pub fn gsl_block_complex_free(b: *mut gsl_block_complex);
}
extern "C" {
    pub fn gsl_block_complex_fread(
        stream: *mut FILE,
        b: *mut gsl_block_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_fscanf(
        stream: *mut FILE,
        b: *mut gsl_block_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_complex,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_raw_fread(
        stream: *mut FILE,
        b: *mut f64,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_raw_fwrite(
        stream: *mut FILE,
        b: *const f64,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_raw_fscanf(
        stream: *mut FILE,
        b: *mut f64,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_raw_fprintf(
        stream: *mut FILE,
        b: *const f64,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_size(b: *const gsl_block_complex) -> usize;
}
extern "C" {
    pub fn gsl_block_complex_data(b: *const gsl_block_complex) -> *mut f64;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_complex {
    pub size: usize,
    pub stride: usize,
    pub data: *mut f64,
    pub block: *mut gsl_block_complex,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_complex_view {
    pub vector: gsl_vector_complex,
}
pub type gsl_vector_complex_view = _gsl_vector_complex_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_complex_const_view {
    pub vector: gsl_vector_complex,
}
pub type gsl_vector_complex_const_view = _gsl_vector_complex_const_view;
extern "C" {
    pub fn gsl_vector_complex_alloc(n: usize) -> *mut gsl_vector_complex;
}
extern "C" {
    pub fn gsl_vector_complex_calloc(n: usize) -> *mut gsl_vector_complex;
}
extern "C" {
    pub fn gsl_vector_complex_alloc_from_block(
        b: *mut gsl_block_complex,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_complex;
}
extern "C" {
    pub fn gsl_vector_complex_alloc_from_vector(
        v: *mut gsl_vector_complex,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_complex;
}
extern "C" {
    pub fn gsl_vector_complex_free(v: *mut gsl_vector_complex);
}
extern "C" {
    pub fn gsl_vector_complex_view_array(base: *mut f64, n: usize) -> _gsl_vector_complex_view;
}
extern "C" {
    pub fn gsl_vector_complex_view_array_with_stride(
        base: *mut f64,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_complex_view;
}
extern "C" {
    pub fn gsl_vector_complex_const_view_array(
        base: *const f64,
        n: usize,
    ) -> _gsl_vector_complex_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_const_view_array_with_stride(
        base: *const f64,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_complex_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_subvector(
        base: *mut gsl_vector_complex,
        i: usize,
        n: usize,
    ) -> _gsl_vector_complex_view;
}
extern "C" {
    pub fn gsl_vector_complex_subvector_with_stride(
        v: *mut gsl_vector_complex,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_complex_view;
}
extern "C" {
    pub fn gsl_vector_complex_const_subvector(
        base: *const gsl_vector_complex,
        i: usize,
        n: usize,
    ) -> _gsl_vector_complex_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_const_subvector_with_stride(
        v: *const gsl_vector_complex,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_complex_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_real(v: *mut gsl_vector_complex) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_vector_complex_imag(v: *mut gsl_vector_complex) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_vector_complex_const_real(v: *const gsl_vector_complex) -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_const_imag(v: *const gsl_vector_complex) -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_set_zero(v: *mut gsl_vector_complex);
}
extern "C" {
    pub fn gsl_vector_complex_set_all(v: *mut gsl_vector_complex, z: gsl_complex);
}
extern "C" {
    pub fn gsl_vector_complex_set_basis(
        v: *mut gsl_vector_complex,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_fread(
        stream: *mut FILE,
        v: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_complex,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_memcpy(
        dest: *mut gsl_vector_complex,
        src: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_reverse(v: *mut gsl_vector_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_swap(
        v: *mut gsl_vector_complex,
        w: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_swap_elements(
        v: *mut gsl_vector_complex,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_equal(
        u: *const gsl_vector_complex,
        v: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_isnull(v: *const gsl_vector_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_ispos(v: *const gsl_vector_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_isneg(v: *const gsl_vector_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_isnonneg(v: *const gsl_vector_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_add(
        a: *mut gsl_vector_complex,
        b: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_sub(
        a: *mut gsl_vector_complex,
        b: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_mul(
        a: *mut gsl_vector_complex,
        b: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_div(
        a: *mut gsl_vector_complex,
        b: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_scale(
        a: *mut gsl_vector_complex,
        x: gsl_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_add_constant(
        a: *mut gsl_vector_complex,
        x: gsl_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_axpby(
        alpha: gsl_complex,
        x: *const gsl_vector_complex,
        beta: gsl_complex,
        y: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_get(v: *const gsl_vector_complex, i: usize) -> gsl_complex;
}
extern "C" {
    pub fn gsl_vector_complex_set(v: *mut gsl_vector_complex, i: usize, z: gsl_complex);
}
extern "C" {
    pub fn gsl_vector_complex_ptr(v: *mut gsl_vector_complex, i: usize) -> *mut gsl_complex;
}
extern "C" {
    pub fn gsl_vector_complex_const_ptr(
        v: *const gsl_vector_complex,
        i: usize,
    ) -> *const gsl_complex;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_float_struct;
pub type gsl_block_float = gsl_block_float_struct;
extern "C" {
    pub fn gsl_block_float_alloc(n: usize) -> *mut gsl_block_float;
}
extern "C" {
    pub fn gsl_block_float_calloc(n: usize) -> *mut gsl_block_float;
}
extern "C" {
    pub fn gsl_block_float_free(b: *mut gsl_block_float);
}
extern "C" {
    pub fn gsl_block_float_fread(
        stream: *mut FILE,
        b: *mut gsl_block_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_float_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_float_fscanf(
        stream: *mut FILE,
        b: *mut gsl_block_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_float_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_float,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_float_raw_fread(
        stream: *mut FILE,
        b: *mut f32,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_float_raw_fwrite(
        stream: *mut FILE,
        b: *const f32,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_float_raw_fscanf(
        stream: *mut FILE,
        b: *mut f32,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_float_raw_fprintf(
        stream: *mut FILE,
        b: *const f32,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_float_size(b: *const gsl_block_float) -> usize;
}
extern "C" {
    pub fn gsl_block_float_data(b: *const gsl_block_float) -> *mut f32;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_float {
    pub size: usize,
    pub stride: usize,
    pub data: *mut f32,
    pub block: *mut gsl_block_float,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_float_view {
    pub vector: gsl_vector_float,
}
pub type gsl_vector_float_view = _gsl_vector_float_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_float_const_view {
    pub vector: gsl_vector_float,
}
pub type gsl_vector_float_const_view = _gsl_vector_float_const_view;
extern "C" {
    pub fn gsl_vector_float_alloc(n: usize) -> *mut gsl_vector_float;
}
extern "C" {
    pub fn gsl_vector_float_calloc(n: usize) -> *mut gsl_vector_float;
}
extern "C" {
    pub fn gsl_vector_float_alloc_from_block(
        b: *mut gsl_block_float,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_float;
}
extern "C" {
    pub fn gsl_vector_float_alloc_from_vector(
        v: *mut gsl_vector_float,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_float;
}
extern "C" {
    pub fn gsl_vector_float_free(v: *mut gsl_vector_float);
}
extern "C" {
    pub fn gsl_vector_float_view_array(v: *mut f32, n: usize) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_vector_float_view_array_with_stride(
        base: *mut f32,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_vector_float_const_view_array(
        v: *const f32,
        n: usize,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_vector_float_const_view_array_with_stride(
        base: *const f32,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_vector_float_subvector(
        v: *mut gsl_vector_float,
        i: usize,
        n: usize,
    ) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_vector_float_subvector_with_stride(
        v: *mut gsl_vector_float,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_vector_float_const_subvector(
        v: *const gsl_vector_float,
        i: usize,
        n: usize,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_vector_float_const_subvector_with_stride(
        v: *const gsl_vector_float,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_vector_float_set_zero(v: *mut gsl_vector_float);
}
extern "C" {
    pub fn gsl_vector_float_set_all(v: *mut gsl_vector_float, x: f32);
}
extern "C" {
    pub fn gsl_vector_float_set_basis(v: *mut gsl_vector_float, i: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_fread(
        stream: *mut FILE,
        v: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_float,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_memcpy(
        dest: *mut gsl_vector_float,
        src: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_reverse(v: *mut gsl_vector_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_swap(
        v: *mut gsl_vector_float,
        w: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_swap_elements(
        v: *mut gsl_vector_float,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_max(v: *const gsl_vector_float) -> f32;
}
extern "C" {
    pub fn gsl_vector_float_min(v: *const gsl_vector_float) -> f32;
}
extern "C" {
    pub fn gsl_vector_float_minmax(
        v: *const gsl_vector_float,
        min_out: *mut f32,
        max_out: *mut f32,
    );
}
extern "C" {
    pub fn gsl_vector_float_max_index(v: *const gsl_vector_float) -> usize;
}
extern "C" {
    pub fn gsl_vector_float_min_index(v: *const gsl_vector_float) -> usize;
}
extern "C" {
    pub fn gsl_vector_float_minmax_index(
        v: *const gsl_vector_float,
        imin: *mut usize,
        imax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_vector_float_add(
        a: *mut gsl_vector_float,
        b: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_sub(
        a: *mut gsl_vector_float,
        b: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_mul(
        a: *mut gsl_vector_float,
        b: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_div(
        a: *mut gsl_vector_float,
        b: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_scale(a: *mut gsl_vector_float, x: f32) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_add_constant(a: *mut gsl_vector_float, x: f32)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_axpby(
        alpha: f32,
        x: *const gsl_vector_float,
        beta: f32,
        y: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_sum(a: *const gsl_vector_float) -> f32;
}
extern "C" {
    pub fn gsl_vector_float_equal(
        u: *const gsl_vector_float,
        v: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_isnull(v: *const gsl_vector_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_ispos(v: *const gsl_vector_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_isneg(v: *const gsl_vector_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_isnonneg(v: *const gsl_vector_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_float_get(v: *const gsl_vector_float, i: usize) -> f32;
}
extern "C" {
    pub fn gsl_vector_float_set(v: *mut gsl_vector_float, i: usize, x: f32);
}
extern "C" {
    pub fn gsl_vector_float_ptr(v: *mut gsl_vector_float, i: usize) -> *mut f32;
}
extern "C" {
    pub fn gsl_vector_float_const_ptr(v: *const gsl_vector_float, i: usize) -> *const f32;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_complex_float_struct;
pub type gsl_block_complex_float = gsl_block_complex_float_struct;
extern "C" {
    pub fn gsl_block_complex_float_alloc(n: usize) -> *mut gsl_block_complex_float;
}
extern "C" {
    pub fn gsl_block_complex_float_calloc(n: usize) -> *mut gsl_block_complex_float;
}
extern "C" {
    pub fn gsl_block_complex_float_free(b: *mut gsl_block_complex_float);
}
extern "C" {
    pub fn gsl_block_complex_float_fread(
        stream: *mut FILE,
        b: *mut gsl_block_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_float_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_float_fscanf(
        stream: *mut FILE,
        b: *mut gsl_block_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_float_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_complex_float,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_float_raw_fread(
        stream: *mut FILE,
        b: *mut f32,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_float_raw_fwrite(
        stream: *mut FILE,
        b: *const f32,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_float_raw_fscanf(
        stream: *mut FILE,
        b: *mut f32,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_float_raw_fprintf(
        stream: *mut FILE,
        b: *const f32,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_complex_float_size(b: *const gsl_block_complex_float) -> usize;
}
extern "C" {
    pub fn gsl_block_complex_float_data(b: *const gsl_block_complex_float) -> *mut f32;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_complex_float {
    pub size: usize,
    pub stride: usize,
    pub data: *mut f32,
    pub block: *mut gsl_block_complex_float,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_complex_float_view {
    pub vector: gsl_vector_complex_float,
}
pub type gsl_vector_complex_float_view = _gsl_vector_complex_float_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_complex_float_const_view {
    pub vector: gsl_vector_complex_float,
}
pub type gsl_vector_complex_float_const_view = _gsl_vector_complex_float_const_view;
extern "C" {
    pub fn gsl_vector_complex_float_alloc(n: usize) -> *mut gsl_vector_complex_float;
}
extern "C" {
    pub fn gsl_vector_complex_float_calloc(n: usize) -> *mut gsl_vector_complex_float;
}
extern "C" {
    pub fn gsl_vector_complex_float_alloc_from_block(
        b: *mut gsl_block_complex_float,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_complex_float;
}
extern "C" {
    pub fn gsl_vector_complex_float_alloc_from_vector(
        v: *mut gsl_vector_complex_float,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_complex_float;
}
extern "C" {
    pub fn gsl_vector_complex_float_free(v: *mut gsl_vector_complex_float);
}
extern "C" {
    pub fn gsl_vector_complex_float_view_array(
        base: *mut f32,
        n: usize,
    ) -> _gsl_vector_complex_float_view;
}
extern "C" {
    pub fn gsl_vector_complex_float_view_array_with_stride(
        base: *mut f32,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_complex_float_view;
}
extern "C" {
    pub fn gsl_vector_complex_float_const_view_array(
        base: *const f32,
        n: usize,
    ) -> _gsl_vector_complex_float_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_float_const_view_array_with_stride(
        base: *const f32,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_complex_float_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_float_subvector(
        base: *mut gsl_vector_complex_float,
        i: usize,
        n: usize,
    ) -> _gsl_vector_complex_float_view;
}
extern "C" {
    pub fn gsl_vector_complex_float_subvector_with_stride(
        v: *mut gsl_vector_complex_float,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_complex_float_view;
}
extern "C" {
    pub fn gsl_vector_complex_float_const_subvector(
        base: *const gsl_vector_complex_float,
        i: usize,
        n: usize,
    ) -> _gsl_vector_complex_float_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_float_const_subvector_with_stride(
        v: *const gsl_vector_complex_float,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_complex_float_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_float_real(
        v: *mut gsl_vector_complex_float,
    ) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_vector_complex_float_imag(
        v: *mut gsl_vector_complex_float,
    ) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_vector_complex_float_const_real(
        v: *const gsl_vector_complex_float,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_float_const_imag(
        v: *const gsl_vector_complex_float,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_vector_complex_float_set_zero(v: *mut gsl_vector_complex_float);
}
extern "C" {
    pub fn gsl_vector_complex_float_set_all(v: *mut gsl_vector_complex_float, z: gsl_complex_float);
}
extern "C" {
    pub fn gsl_vector_complex_float_set_basis(
        v: *mut gsl_vector_complex_float,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_fread(
        stream: *mut FILE,
        v: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_complex_float,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_memcpy(
        dest: *mut gsl_vector_complex_float,
        src: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_reverse(
        v: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_swap(
        v: *mut gsl_vector_complex_float,
        w: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_swap_elements(
        v: *mut gsl_vector_complex_float,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_equal(
        u: *const gsl_vector_complex_float,
        v: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_isnull(
        v: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_ispos(
        v: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_isneg(
        v: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_isnonneg(
        v: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_add(
        a: *mut gsl_vector_complex_float,
        b: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_sub(
        a: *mut gsl_vector_complex_float,
        b: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_mul(
        a: *mut gsl_vector_complex_float,
        b: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_div(
        a: *mut gsl_vector_complex_float,
        b: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_scale(
        a: *mut gsl_vector_complex_float,
        x: gsl_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_add_constant(
        a: *mut gsl_vector_complex_float,
        x: gsl_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_axpby(
        alpha: gsl_complex_float,
        x: *const gsl_vector_complex_float,
        beta: gsl_complex_float,
        y: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_complex_float_get(
        v: *const gsl_vector_complex_float,
        i: usize,
    ) -> gsl_complex_float;
}
extern "C" {
    pub fn gsl_vector_complex_float_set(
        v: *mut gsl_vector_complex_float,
        i: usize,
        z: gsl_complex_float,
    );
}
extern "C" {
    pub fn gsl_vector_complex_float_ptr(
        v: *mut gsl_vector_complex_float,
        i: usize,
    ) -> *mut gsl_complex_float;
}
extern "C" {
    pub fn gsl_vector_complex_float_const_ptr(
        v: *const gsl_vector_complex_float,
        i: usize,
    ) -> *const gsl_complex_float;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_ulong_struct;
pub type gsl_block_ulong = gsl_block_ulong_struct;
extern "C" {
    pub fn gsl_block_ulong_alloc(n: usize) -> *mut gsl_block_ulong;
}
extern "C" {
    pub fn gsl_block_ulong_calloc(n: usize) -> *mut gsl_block_ulong;
}
extern "C" {
    pub fn gsl_block_ulong_free(b: *mut gsl_block_ulong);
}
extern "C" {
    pub fn gsl_block_ulong_fread(
        stream: *mut FILE,
        b: *mut gsl_block_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ulong_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ulong_fscanf(
        stream: *mut FILE,
        b: *mut gsl_block_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ulong_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_ulong,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ulong_raw_fread(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_ulong,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ulong_raw_fwrite(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_ulong,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ulong_raw_fscanf(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_ulong,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ulong_raw_fprintf(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_ulong,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ulong_size(b: *const gsl_block_ulong) -> usize;
}
extern "C" {
    pub fn gsl_block_ulong_data(b: *const gsl_block_ulong) -> *mut ::std::os::raw::c_ulong;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_ulong {
    pub size: usize,
    pub stride: usize,
    pub data: *mut ::std::os::raw::c_ulong,
    pub block: *mut gsl_block_ulong,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_ulong_view {
    pub vector: gsl_vector_ulong,
}
pub type gsl_vector_ulong_view = _gsl_vector_ulong_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_ulong_const_view {
    pub vector: gsl_vector_ulong,
}
pub type gsl_vector_ulong_const_view = _gsl_vector_ulong_const_view;
extern "C" {
    pub fn gsl_vector_ulong_alloc(n: usize) -> *mut gsl_vector_ulong;
}
extern "C" {
    pub fn gsl_vector_ulong_calloc(n: usize) -> *mut gsl_vector_ulong;
}
extern "C" {
    pub fn gsl_vector_ulong_alloc_from_block(
        b: *mut gsl_block_ulong,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_ulong;
}
extern "C" {
    pub fn gsl_vector_ulong_alloc_from_vector(
        v: *mut gsl_vector_ulong,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_ulong;
}
extern "C" {
    pub fn gsl_vector_ulong_free(v: *mut gsl_vector_ulong);
}
extern "C" {
    pub fn gsl_vector_ulong_view_array(
        v: *mut ::std::os::raw::c_ulong,
        n: usize,
    ) -> _gsl_vector_ulong_view;
}
extern "C" {
    pub fn gsl_vector_ulong_view_array_with_stride(
        base: *mut ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_ulong_view;
}
extern "C" {
    pub fn gsl_vector_ulong_const_view_array(
        v: *const ::std::os::raw::c_ulong,
        n: usize,
    ) -> _gsl_vector_ulong_const_view;
}
extern "C" {
    pub fn gsl_vector_ulong_const_view_array_with_stride(
        base: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_ulong_const_view;
}
extern "C" {
    pub fn gsl_vector_ulong_subvector(
        v: *mut gsl_vector_ulong,
        i: usize,
        n: usize,
    ) -> _gsl_vector_ulong_view;
}
extern "C" {
    pub fn gsl_vector_ulong_subvector_with_stride(
        v: *mut gsl_vector_ulong,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_ulong_view;
}
extern "C" {
    pub fn gsl_vector_ulong_const_subvector(
        v: *const gsl_vector_ulong,
        i: usize,
        n: usize,
    ) -> _gsl_vector_ulong_const_view;
}
extern "C" {
    pub fn gsl_vector_ulong_const_subvector_with_stride(
        v: *const gsl_vector_ulong,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_ulong_const_view;
}
extern "C" {
    pub fn gsl_vector_ulong_set_zero(v: *mut gsl_vector_ulong);
}
extern "C" {
    pub fn gsl_vector_ulong_set_all(v: *mut gsl_vector_ulong, x: ::std::os::raw::c_ulong);
}
extern "C" {
    pub fn gsl_vector_ulong_set_basis(v: *mut gsl_vector_ulong, i: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_fread(
        stream: *mut FILE,
        v: *mut gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_ulong,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_memcpy(
        dest: *mut gsl_vector_ulong,
        src: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_reverse(v: *mut gsl_vector_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_swap(
        v: *mut gsl_vector_ulong,
        w: *mut gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_swap_elements(
        v: *mut gsl_vector_ulong,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_max(v: *const gsl_vector_ulong) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_vector_ulong_min(v: *const gsl_vector_ulong) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_vector_ulong_minmax(
        v: *const gsl_vector_ulong,
        min_out: *mut ::std::os::raw::c_ulong,
        max_out: *mut ::std::os::raw::c_ulong,
    );
}
extern "C" {
    pub fn gsl_vector_ulong_max_index(v: *const gsl_vector_ulong) -> usize;
}
extern "C" {
    pub fn gsl_vector_ulong_min_index(v: *const gsl_vector_ulong) -> usize;
}
extern "C" {
    pub fn gsl_vector_ulong_minmax_index(
        v: *const gsl_vector_ulong,
        imin: *mut usize,
        imax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_vector_ulong_add(
        a: *mut gsl_vector_ulong,
        b: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_sub(
        a: *mut gsl_vector_ulong,
        b: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_mul(
        a: *mut gsl_vector_ulong,
        b: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_div(
        a: *mut gsl_vector_ulong,
        b: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_scale(
        a: *mut gsl_vector_ulong,
        x: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_add_constant(
        a: *mut gsl_vector_ulong,
        x: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_axpby(
        alpha: ::std::os::raw::c_ulong,
        x: *const gsl_vector_ulong,
        beta: ::std::os::raw::c_ulong,
        y: *mut gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_sum(a: *const gsl_vector_ulong) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_vector_ulong_equal(
        u: *const gsl_vector_ulong,
        v: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_isnull(v: *const gsl_vector_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_ispos(v: *const gsl_vector_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_isneg(v: *const gsl_vector_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_isnonneg(v: *const gsl_vector_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ulong_get(v: *const gsl_vector_ulong, i: usize) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_vector_ulong_set(v: *mut gsl_vector_ulong, i: usize, x: ::std::os::raw::c_ulong);
}
extern "C" {
    pub fn gsl_vector_ulong_ptr(v: *mut gsl_vector_ulong, i: usize)
        -> *mut ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_vector_ulong_const_ptr(
        v: *const gsl_vector_ulong,
        i: usize,
    ) -> *const ::std::os::raw::c_ulong;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_long_struct;
pub type gsl_block_long = gsl_block_long_struct;
extern "C" {
    pub fn gsl_block_long_alloc(n: usize) -> *mut gsl_block_long;
}
extern "C" {
    pub fn gsl_block_long_calloc(n: usize) -> *mut gsl_block_long;
}
extern "C" {
    pub fn gsl_block_long_free(b: *mut gsl_block_long);
}
extern "C" {
    pub fn gsl_block_long_fread(stream: *mut FILE, b: *mut gsl_block_long)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_fscanf(
        stream: *mut FILE,
        b: *mut gsl_block_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_long,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_raw_fread(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_long,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_raw_fwrite(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_long,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_raw_fscanf(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_long,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_raw_fprintf(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_long,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_long_size(b: *const gsl_block_long) -> usize;
}
extern "C" {
    pub fn gsl_block_long_data(b: *const gsl_block_long) -> *mut ::std::os::raw::c_long;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_long {
    pub size: usize,
    pub stride: usize,
    pub data: *mut ::std::os::raw::c_long,
    pub block: *mut gsl_block_long,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_long_view {
    pub vector: gsl_vector_long,
}
pub type gsl_vector_long_view = _gsl_vector_long_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_long_const_view {
    pub vector: gsl_vector_long,
}
pub type gsl_vector_long_const_view = _gsl_vector_long_const_view;
extern "C" {
    pub fn gsl_vector_long_alloc(n: usize) -> *mut gsl_vector_long;
}
extern "C" {
    pub fn gsl_vector_long_calloc(n: usize) -> *mut gsl_vector_long;
}
extern "C" {
    pub fn gsl_vector_long_alloc_from_block(
        b: *mut gsl_block_long,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_long;
}
extern "C" {
    pub fn gsl_vector_long_alloc_from_vector(
        v: *mut gsl_vector_long,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_long;
}
extern "C" {
    pub fn gsl_vector_long_free(v: *mut gsl_vector_long);
}
extern "C" {
    pub fn gsl_vector_long_view_array(
        v: *mut ::std::os::raw::c_long,
        n: usize,
    ) -> _gsl_vector_long_view;
}
extern "C" {
    pub fn gsl_vector_long_view_array_with_stride(
        base: *mut ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_long_view;
}
extern "C" {
    pub fn gsl_vector_long_const_view_array(
        v: *const ::std::os::raw::c_long,
        n: usize,
    ) -> _gsl_vector_long_const_view;
}
extern "C" {
    pub fn gsl_vector_long_const_view_array_with_stride(
        base: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_long_const_view;
}
extern "C" {
    pub fn gsl_vector_long_subvector(
        v: *mut gsl_vector_long,
        i: usize,
        n: usize,
    ) -> _gsl_vector_long_view;
}
extern "C" {
    pub fn gsl_vector_long_subvector_with_stride(
        v: *mut gsl_vector_long,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_long_view;
}
extern "C" {
    pub fn gsl_vector_long_const_subvector(
        v: *const gsl_vector_long,
        i: usize,
        n: usize,
    ) -> _gsl_vector_long_const_view;
}
extern "C" {
    pub fn gsl_vector_long_const_subvector_with_stride(
        v: *const gsl_vector_long,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_long_const_view;
}
extern "C" {
    pub fn gsl_vector_long_set_zero(v: *mut gsl_vector_long);
}
extern "C" {
    pub fn gsl_vector_long_set_all(v: *mut gsl_vector_long, x: ::std::os::raw::c_long);
}
extern "C" {
    pub fn gsl_vector_long_set_basis(v: *mut gsl_vector_long, i: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_fread(
        stream: *mut FILE,
        v: *mut gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_long,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_memcpy(
        dest: *mut gsl_vector_long,
        src: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_reverse(v: *mut gsl_vector_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_swap(
        v: *mut gsl_vector_long,
        w: *mut gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_swap_elements(
        v: *mut gsl_vector_long,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_max(v: *const gsl_vector_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_vector_long_min(v: *const gsl_vector_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_vector_long_minmax(
        v: *const gsl_vector_long,
        min_out: *mut ::std::os::raw::c_long,
        max_out: *mut ::std::os::raw::c_long,
    );
}
extern "C" {
    pub fn gsl_vector_long_max_index(v: *const gsl_vector_long) -> usize;
}
extern "C" {
    pub fn gsl_vector_long_min_index(v: *const gsl_vector_long) -> usize;
}
extern "C" {
    pub fn gsl_vector_long_minmax_index(
        v: *const gsl_vector_long,
        imin: *mut usize,
        imax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_vector_long_add(
        a: *mut gsl_vector_long,
        b: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_sub(
        a: *mut gsl_vector_long,
        b: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_mul(
        a: *mut gsl_vector_long,
        b: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_div(
        a: *mut gsl_vector_long,
        b: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_scale(
        a: *mut gsl_vector_long,
        x: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_add_constant(
        a: *mut gsl_vector_long,
        x: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_axpby(
        alpha: ::std::os::raw::c_long,
        x: *const gsl_vector_long,
        beta: ::std::os::raw::c_long,
        y: *mut gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_sum(a: *const gsl_vector_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_vector_long_equal(
        u: *const gsl_vector_long,
        v: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_isnull(v: *const gsl_vector_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_ispos(v: *const gsl_vector_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_isneg(v: *const gsl_vector_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_isnonneg(v: *const gsl_vector_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_long_get(v: *const gsl_vector_long, i: usize) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_vector_long_set(v: *mut gsl_vector_long, i: usize, x: ::std::os::raw::c_long);
}
extern "C" {
    pub fn gsl_vector_long_ptr(v: *mut gsl_vector_long, i: usize) -> *mut ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_vector_long_const_ptr(
        v: *const gsl_vector_long,
        i: usize,
    ) -> *const ::std::os::raw::c_long;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_uint_struct;
pub type gsl_block_uint = gsl_block_uint_struct;
extern "C" {
    pub fn gsl_block_uint_alloc(n: usize) -> *mut gsl_block_uint;
}
extern "C" {
    pub fn gsl_block_uint_calloc(n: usize) -> *mut gsl_block_uint;
}
extern "C" {
    pub fn gsl_block_uint_free(b: *mut gsl_block_uint);
}
extern "C" {
    pub fn gsl_block_uint_fread(stream: *mut FILE, b: *mut gsl_block_uint)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uint_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uint_fscanf(
        stream: *mut FILE,
        b: *mut gsl_block_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uint_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_uint,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uint_raw_fread(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_uint,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uint_raw_fwrite(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_uint,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uint_raw_fscanf(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_uint,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uint_raw_fprintf(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_uint,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uint_size(b: *const gsl_block_uint) -> usize;
}
extern "C" {
    pub fn gsl_block_uint_data(b: *const gsl_block_uint) -> *mut ::std::os::raw::c_uint;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_uint {
    pub size: usize,
    pub stride: usize,
    pub data: *mut ::std::os::raw::c_uint,
    pub block: *mut gsl_block_uint,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_uint_view {
    pub vector: gsl_vector_uint,
}
pub type gsl_vector_uint_view = _gsl_vector_uint_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_uint_const_view {
    pub vector: gsl_vector_uint,
}
pub type gsl_vector_uint_const_view = _gsl_vector_uint_const_view;
extern "C" {
    pub fn gsl_vector_uint_alloc(n: usize) -> *mut gsl_vector_uint;
}
extern "C" {
    pub fn gsl_vector_uint_calloc(n: usize) -> *mut gsl_vector_uint;
}
extern "C" {
    pub fn gsl_vector_uint_alloc_from_block(
        b: *mut gsl_block_uint,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_uint;
}
extern "C" {
    pub fn gsl_vector_uint_alloc_from_vector(
        v: *mut gsl_vector_uint,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_uint;
}
extern "C" {
    pub fn gsl_vector_uint_free(v: *mut gsl_vector_uint);
}
extern "C" {
    pub fn gsl_vector_uint_view_array(
        v: *mut ::std::os::raw::c_uint,
        n: usize,
    ) -> _gsl_vector_uint_view;
}
extern "C" {
    pub fn gsl_vector_uint_view_array_with_stride(
        base: *mut ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_uint_view;
}
extern "C" {
    pub fn gsl_vector_uint_const_view_array(
        v: *const ::std::os::raw::c_uint,
        n: usize,
    ) -> _gsl_vector_uint_const_view;
}
extern "C" {
    pub fn gsl_vector_uint_const_view_array_with_stride(
        base: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_uint_const_view;
}
extern "C" {
    pub fn gsl_vector_uint_subvector(
        v: *mut gsl_vector_uint,
        i: usize,
        n: usize,
    ) -> _gsl_vector_uint_view;
}
extern "C" {
    pub fn gsl_vector_uint_subvector_with_stride(
        v: *mut gsl_vector_uint,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_uint_view;
}
extern "C" {
    pub fn gsl_vector_uint_const_subvector(
        v: *const gsl_vector_uint,
        i: usize,
        n: usize,
    ) -> _gsl_vector_uint_const_view;
}
extern "C" {
    pub fn gsl_vector_uint_const_subvector_with_stride(
        v: *const gsl_vector_uint,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_uint_const_view;
}
extern "C" {
    pub fn gsl_vector_uint_set_zero(v: *mut gsl_vector_uint);
}
extern "C" {
    pub fn gsl_vector_uint_set_all(v: *mut gsl_vector_uint, x: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn gsl_vector_uint_set_basis(v: *mut gsl_vector_uint, i: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_fread(
        stream: *mut FILE,
        v: *mut gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_uint,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_memcpy(
        dest: *mut gsl_vector_uint,
        src: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_reverse(v: *mut gsl_vector_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_swap(
        v: *mut gsl_vector_uint,
        w: *mut gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_swap_elements(
        v: *mut gsl_vector_uint,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_max(v: *const gsl_vector_uint) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_vector_uint_min(v: *const gsl_vector_uint) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_vector_uint_minmax(
        v: *const gsl_vector_uint,
        min_out: *mut ::std::os::raw::c_uint,
        max_out: *mut ::std::os::raw::c_uint,
    );
}
extern "C" {
    pub fn gsl_vector_uint_max_index(v: *const gsl_vector_uint) -> usize;
}
extern "C" {
    pub fn gsl_vector_uint_min_index(v: *const gsl_vector_uint) -> usize;
}
extern "C" {
    pub fn gsl_vector_uint_minmax_index(
        v: *const gsl_vector_uint,
        imin: *mut usize,
        imax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_vector_uint_add(
        a: *mut gsl_vector_uint,
        b: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_sub(
        a: *mut gsl_vector_uint,
        b: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_mul(
        a: *mut gsl_vector_uint,
        b: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_div(
        a: *mut gsl_vector_uint,
        b: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_scale(
        a: *mut gsl_vector_uint,
        x: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_add_constant(
        a: *mut gsl_vector_uint,
        x: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_axpby(
        alpha: ::std::os::raw::c_uint,
        x: *const gsl_vector_uint,
        beta: ::std::os::raw::c_uint,
        y: *mut gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_sum(a: *const gsl_vector_uint) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_vector_uint_equal(
        u: *const gsl_vector_uint,
        v: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_isnull(v: *const gsl_vector_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_ispos(v: *const gsl_vector_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_isneg(v: *const gsl_vector_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_isnonneg(v: *const gsl_vector_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uint_get(v: *const gsl_vector_uint, i: usize) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_vector_uint_set(v: *mut gsl_vector_uint, i: usize, x: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn gsl_vector_uint_ptr(v: *mut gsl_vector_uint, i: usize) -> *mut ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_vector_uint_const_ptr(
        v: *const gsl_vector_uint,
        i: usize,
    ) -> *const ::std::os::raw::c_uint;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_int_struct;
pub type gsl_block_int = gsl_block_int_struct;
extern "C" {
    pub fn gsl_block_int_alloc(n: usize) -> *mut gsl_block_int;
}
extern "C" {
    pub fn gsl_block_int_calloc(n: usize) -> *mut gsl_block_int;
}
extern "C" {
    pub fn gsl_block_int_free(b: *mut gsl_block_int);
}
extern "C" {
    pub fn gsl_block_int_fread(stream: *mut FILE, b: *mut gsl_block_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_int_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_int_fscanf(stream: *mut FILE, b: *mut gsl_block_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_int_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_int,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_int_raw_fread(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_int,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_int_raw_fwrite(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_int,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_int_raw_fscanf(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_int,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_int_raw_fprintf(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_int,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_int_size(b: *const gsl_block_int) -> usize;
}
extern "C" {
    pub fn gsl_block_int_data(b: *const gsl_block_int) -> *mut ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_int {
    pub size: usize,
    pub stride: usize,
    pub data: *mut ::std::os::raw::c_int,
    pub block: *mut gsl_block_int,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_int_view {
    pub vector: gsl_vector_int,
}
pub type gsl_vector_int_view = _gsl_vector_int_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_int_const_view {
    pub vector: gsl_vector_int,
}
pub type gsl_vector_int_const_view = _gsl_vector_int_const_view;
extern "C" {
    pub fn gsl_vector_int_alloc(n: usize) -> *mut gsl_vector_int;
}
extern "C" {
    pub fn gsl_vector_int_calloc(n: usize) -> *mut gsl_vector_int;
}
extern "C" {
    pub fn gsl_vector_int_alloc_from_block(
        b: *mut gsl_block_int,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_int;
}
extern "C" {
    pub fn gsl_vector_int_alloc_from_vector(
        v: *mut gsl_vector_int,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_int;
}
extern "C" {
    pub fn gsl_vector_int_free(v: *mut gsl_vector_int);
}
extern "C" {
    pub fn gsl_vector_int_view_array(
        v: *mut ::std::os::raw::c_int,
        n: usize,
    ) -> _gsl_vector_int_view;
}
extern "C" {
    pub fn gsl_vector_int_view_array_with_stride(
        base: *mut ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_int_view;
}
extern "C" {
    pub fn gsl_vector_int_const_view_array(
        v: *const ::std::os::raw::c_int,
        n: usize,
    ) -> _gsl_vector_int_const_view;
}
extern "C" {
    pub fn gsl_vector_int_const_view_array_with_stride(
        base: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_int_const_view;
}
extern "C" {
    pub fn gsl_vector_int_subvector(
        v: *mut gsl_vector_int,
        i: usize,
        n: usize,
    ) -> _gsl_vector_int_view;
}
extern "C" {
    pub fn gsl_vector_int_subvector_with_stride(
        v: *mut gsl_vector_int,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_int_view;
}
extern "C" {
    pub fn gsl_vector_int_const_subvector(
        v: *const gsl_vector_int,
        i: usize,
        n: usize,
    ) -> _gsl_vector_int_const_view;
}
extern "C" {
    pub fn gsl_vector_int_const_subvector_with_stride(
        v: *const gsl_vector_int,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_int_const_view;
}
extern "C" {
    pub fn gsl_vector_int_set_zero(v: *mut gsl_vector_int);
}
extern "C" {
    pub fn gsl_vector_int_set_all(v: *mut gsl_vector_int, x: ::std::os::raw::c_int);
}
extern "C" {
    pub fn gsl_vector_int_set_basis(v: *mut gsl_vector_int, i: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_fread(stream: *mut FILE, v: *mut gsl_vector_int)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_int,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_memcpy(
        dest: *mut gsl_vector_int,
        src: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_reverse(v: *mut gsl_vector_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_swap(
        v: *mut gsl_vector_int,
        w: *mut gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_swap_elements(
        v: *mut gsl_vector_int,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_max(v: *const gsl_vector_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_min(v: *const gsl_vector_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_minmax(
        v: *const gsl_vector_int,
        min_out: *mut ::std::os::raw::c_int,
        max_out: *mut ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn gsl_vector_int_max_index(v: *const gsl_vector_int) -> usize;
}
extern "C" {
    pub fn gsl_vector_int_min_index(v: *const gsl_vector_int) -> usize;
}
extern "C" {
    pub fn gsl_vector_int_minmax_index(
        v: *const gsl_vector_int,
        imin: *mut usize,
        imax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_vector_int_add(
        a: *mut gsl_vector_int,
        b: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_sub(
        a: *mut gsl_vector_int,
        b: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_mul(
        a: *mut gsl_vector_int,
        b: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_div(
        a: *mut gsl_vector_int,
        b: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_scale(
        a: *mut gsl_vector_int,
        x: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_add_constant(
        a: *mut gsl_vector_int,
        x: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_axpby(
        alpha: ::std::os::raw::c_int,
        x: *const gsl_vector_int,
        beta: ::std::os::raw::c_int,
        y: *mut gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_sum(a: *const gsl_vector_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_equal(
        u: *const gsl_vector_int,
        v: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_isnull(v: *const gsl_vector_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_ispos(v: *const gsl_vector_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_isneg(v: *const gsl_vector_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_isnonneg(v: *const gsl_vector_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_get(v: *const gsl_vector_int, i: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_set(v: *mut gsl_vector_int, i: usize, x: ::std::os::raw::c_int);
}
extern "C" {
    pub fn gsl_vector_int_ptr(v: *mut gsl_vector_int, i: usize) -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_int_const_ptr(
        v: *const gsl_vector_int,
        i: usize,
    ) -> *const ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_ushort_struct;
pub type gsl_block_ushort = gsl_block_ushort_struct;
extern "C" {
    pub fn gsl_block_ushort_alloc(n: usize) -> *mut gsl_block_ushort;
}
extern "C" {
    pub fn gsl_block_ushort_calloc(n: usize) -> *mut gsl_block_ushort;
}
extern "C" {
    pub fn gsl_block_ushort_free(b: *mut gsl_block_ushort);
}
extern "C" {
    pub fn gsl_block_ushort_fread(
        stream: *mut FILE,
        b: *mut gsl_block_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ushort_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ushort_fscanf(
        stream: *mut FILE,
        b: *mut gsl_block_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ushort_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_ushort,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ushort_raw_fread(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_ushort,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ushort_raw_fwrite(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_ushort,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ushort_raw_fscanf(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_ushort,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ushort_raw_fprintf(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_ushort,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_ushort_size(b: *const gsl_block_ushort) -> usize;
}
extern "C" {
    pub fn gsl_block_ushort_data(b: *const gsl_block_ushort) -> *mut ::std::os::raw::c_ushort;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_ushort {
    pub size: usize,
    pub stride: usize,
    pub data: *mut ::std::os::raw::c_ushort,
    pub block: *mut gsl_block_ushort,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_ushort_view {
    pub vector: gsl_vector_ushort,
}
pub type gsl_vector_ushort_view = _gsl_vector_ushort_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_ushort_const_view {
    pub vector: gsl_vector_ushort,
}
pub type gsl_vector_ushort_const_view = _gsl_vector_ushort_const_view;
extern "C" {
    pub fn gsl_vector_ushort_alloc(n: usize) -> *mut gsl_vector_ushort;
}
extern "C" {
    pub fn gsl_vector_ushort_calloc(n: usize) -> *mut gsl_vector_ushort;
}
extern "C" {
    pub fn gsl_vector_ushort_alloc_from_block(
        b: *mut gsl_block_ushort,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_ushort;
}
extern "C" {
    pub fn gsl_vector_ushort_alloc_from_vector(
        v: *mut gsl_vector_ushort,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_ushort;
}
extern "C" {
    pub fn gsl_vector_ushort_free(v: *mut gsl_vector_ushort);
}
extern "C" {
    pub fn gsl_vector_ushort_view_array(
        v: *mut ::std::os::raw::c_ushort,
        n: usize,
    ) -> _gsl_vector_ushort_view;
}
extern "C" {
    pub fn gsl_vector_ushort_view_array_with_stride(
        base: *mut ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_ushort_view;
}
extern "C" {
    pub fn gsl_vector_ushort_const_view_array(
        v: *const ::std::os::raw::c_ushort,
        n: usize,
    ) -> _gsl_vector_ushort_const_view;
}
extern "C" {
    pub fn gsl_vector_ushort_const_view_array_with_stride(
        base: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_ushort_const_view;
}
extern "C" {
    pub fn gsl_vector_ushort_subvector(
        v: *mut gsl_vector_ushort,
        i: usize,
        n: usize,
    ) -> _gsl_vector_ushort_view;
}
extern "C" {
    pub fn gsl_vector_ushort_subvector_with_stride(
        v: *mut gsl_vector_ushort,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_ushort_view;
}
extern "C" {
    pub fn gsl_vector_ushort_const_subvector(
        v: *const gsl_vector_ushort,
        i: usize,
        n: usize,
    ) -> _gsl_vector_ushort_const_view;
}
extern "C" {
    pub fn gsl_vector_ushort_const_subvector_with_stride(
        v: *const gsl_vector_ushort,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_ushort_const_view;
}
extern "C" {
    pub fn gsl_vector_ushort_set_zero(v: *mut gsl_vector_ushort);
}
extern "C" {
    pub fn gsl_vector_ushort_set_all(v: *mut gsl_vector_ushort, x: ::std::os::raw::c_ushort);
}
extern "C" {
    pub fn gsl_vector_ushort_set_basis(
        v: *mut gsl_vector_ushort,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_fread(
        stream: *mut FILE,
        v: *mut gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_ushort,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_memcpy(
        dest: *mut gsl_vector_ushort,
        src: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_reverse(v: *mut gsl_vector_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_swap(
        v: *mut gsl_vector_ushort,
        w: *mut gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_swap_elements(
        v: *mut gsl_vector_ushort,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_max(v: *const gsl_vector_ushort) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_vector_ushort_min(v: *const gsl_vector_ushort) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_vector_ushort_minmax(
        v: *const gsl_vector_ushort,
        min_out: *mut ::std::os::raw::c_ushort,
        max_out: *mut ::std::os::raw::c_ushort,
    );
}
extern "C" {
    pub fn gsl_vector_ushort_max_index(v: *const gsl_vector_ushort) -> usize;
}
extern "C" {
    pub fn gsl_vector_ushort_min_index(v: *const gsl_vector_ushort) -> usize;
}
extern "C" {
    pub fn gsl_vector_ushort_minmax_index(
        v: *const gsl_vector_ushort,
        imin: *mut usize,
        imax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_vector_ushort_add(
        a: *mut gsl_vector_ushort,
        b: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_sub(
        a: *mut gsl_vector_ushort,
        b: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_mul(
        a: *mut gsl_vector_ushort,
        b: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_div(
        a: *mut gsl_vector_ushort,
        b: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_scale(
        a: *mut gsl_vector_ushort,
        x: ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_add_constant(
        a: *mut gsl_vector_ushort,
        x: ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_axpby(
        alpha: ::std::os::raw::c_ushort,
        x: *const gsl_vector_ushort,
        beta: ::std::os::raw::c_ushort,
        y: *mut gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_sum(a: *const gsl_vector_ushort) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_vector_ushort_equal(
        u: *const gsl_vector_ushort,
        v: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_isnull(v: *const gsl_vector_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_ispos(v: *const gsl_vector_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_isneg(v: *const gsl_vector_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_isnonneg(v: *const gsl_vector_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_ushort_get(v: *const gsl_vector_ushort, i: usize)
        -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_vector_ushort_set(v: *mut gsl_vector_ushort, i: usize, x: ::std::os::raw::c_ushort);
}
extern "C" {
    pub fn gsl_vector_ushort_ptr(
        v: *mut gsl_vector_ushort,
        i: usize,
    ) -> *mut ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_vector_ushort_const_ptr(
        v: *const gsl_vector_ushort,
        i: usize,
    ) -> *const ::std::os::raw::c_ushort;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_short_struct;
pub type gsl_block_short = gsl_block_short_struct;
extern "C" {
    pub fn gsl_block_short_alloc(n: usize) -> *mut gsl_block_short;
}
extern "C" {
    pub fn gsl_block_short_calloc(n: usize) -> *mut gsl_block_short;
}
extern "C" {
    pub fn gsl_block_short_free(b: *mut gsl_block_short);
}
extern "C" {
    pub fn gsl_block_short_fread(
        stream: *mut FILE,
        b: *mut gsl_block_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_short_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_short_fscanf(
        stream: *mut FILE,
        b: *mut gsl_block_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_short_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_short,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_short_raw_fread(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_short,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_short_raw_fwrite(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_short,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_short_raw_fscanf(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_short,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_short_raw_fprintf(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_short,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_short_size(b: *const gsl_block_short) -> usize;
}
extern "C" {
    pub fn gsl_block_short_data(b: *const gsl_block_short) -> *mut ::std::os::raw::c_short;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_short {
    pub size: usize,
    pub stride: usize,
    pub data: *mut ::std::os::raw::c_short,
    pub block: *mut gsl_block_short,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_short_view {
    pub vector: gsl_vector_short,
}
pub type gsl_vector_short_view = _gsl_vector_short_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_short_const_view {
    pub vector: gsl_vector_short,
}
pub type gsl_vector_short_const_view = _gsl_vector_short_const_view;
extern "C" {
    pub fn gsl_vector_short_alloc(n: usize) -> *mut gsl_vector_short;
}
extern "C" {
    pub fn gsl_vector_short_calloc(n: usize) -> *mut gsl_vector_short;
}
extern "C" {
    pub fn gsl_vector_short_alloc_from_block(
        b: *mut gsl_block_short,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_short;
}
extern "C" {
    pub fn gsl_vector_short_alloc_from_vector(
        v: *mut gsl_vector_short,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_short;
}
extern "C" {
    pub fn gsl_vector_short_free(v: *mut gsl_vector_short);
}
extern "C" {
    pub fn gsl_vector_short_view_array(
        v: *mut ::std::os::raw::c_short,
        n: usize,
    ) -> _gsl_vector_short_view;
}
extern "C" {
    pub fn gsl_vector_short_view_array_with_stride(
        base: *mut ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_short_view;
}
extern "C" {
    pub fn gsl_vector_short_const_view_array(
        v: *const ::std::os::raw::c_short,
        n: usize,
    ) -> _gsl_vector_short_const_view;
}
extern "C" {
    pub fn gsl_vector_short_const_view_array_with_stride(
        base: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_short_const_view;
}
extern "C" {
    pub fn gsl_vector_short_subvector(
        v: *mut gsl_vector_short,
        i: usize,
        n: usize,
    ) -> _gsl_vector_short_view;
}
extern "C" {
    pub fn gsl_vector_short_subvector_with_stride(
        v: *mut gsl_vector_short,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_short_view;
}
extern "C" {
    pub fn gsl_vector_short_const_subvector(
        v: *const gsl_vector_short,
        i: usize,
        n: usize,
    ) -> _gsl_vector_short_const_view;
}
extern "C" {
    pub fn gsl_vector_short_const_subvector_with_stride(
        v: *const gsl_vector_short,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_short_const_view;
}
extern "C" {
    pub fn gsl_vector_short_set_zero(v: *mut gsl_vector_short);
}
extern "C" {
    pub fn gsl_vector_short_set_all(v: *mut gsl_vector_short, x: ::std::os::raw::c_short);
}
extern "C" {
    pub fn gsl_vector_short_set_basis(v: *mut gsl_vector_short, i: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_fread(
        stream: *mut FILE,
        v: *mut gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_short,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_memcpy(
        dest: *mut gsl_vector_short,
        src: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_reverse(v: *mut gsl_vector_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_swap(
        v: *mut gsl_vector_short,
        w: *mut gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_swap_elements(
        v: *mut gsl_vector_short,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_max(v: *const gsl_vector_short) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_vector_short_min(v: *const gsl_vector_short) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_vector_short_minmax(
        v: *const gsl_vector_short,
        min_out: *mut ::std::os::raw::c_short,
        max_out: *mut ::std::os::raw::c_short,
    );
}
extern "C" {
    pub fn gsl_vector_short_max_index(v: *const gsl_vector_short) -> usize;
}
extern "C" {
    pub fn gsl_vector_short_min_index(v: *const gsl_vector_short) -> usize;
}
extern "C" {
    pub fn gsl_vector_short_minmax_index(
        v: *const gsl_vector_short,
        imin: *mut usize,
        imax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_vector_short_add(
        a: *mut gsl_vector_short,
        b: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_sub(
        a: *mut gsl_vector_short,
        b: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_mul(
        a: *mut gsl_vector_short,
        b: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_div(
        a: *mut gsl_vector_short,
        b: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_scale(
        a: *mut gsl_vector_short,
        x: ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_add_constant(
        a: *mut gsl_vector_short,
        x: ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_axpby(
        alpha: ::std::os::raw::c_short,
        x: *const gsl_vector_short,
        beta: ::std::os::raw::c_short,
        y: *mut gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_sum(a: *const gsl_vector_short) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_vector_short_equal(
        u: *const gsl_vector_short,
        v: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_isnull(v: *const gsl_vector_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_ispos(v: *const gsl_vector_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_isneg(v: *const gsl_vector_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_isnonneg(v: *const gsl_vector_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_short_get(v: *const gsl_vector_short, i: usize) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_vector_short_set(v: *mut gsl_vector_short, i: usize, x: ::std::os::raw::c_short);
}
extern "C" {
    pub fn gsl_vector_short_ptr(v: *mut gsl_vector_short, i: usize)
        -> *mut ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_vector_short_const_ptr(
        v: *const gsl_vector_short,
        i: usize,
    ) -> *const ::std::os::raw::c_short;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_uchar_struct;
pub type gsl_block_uchar = gsl_block_uchar_struct;
extern "C" {
    pub fn gsl_block_uchar_alloc(n: usize) -> *mut gsl_block_uchar;
}
extern "C" {
    pub fn gsl_block_uchar_calloc(n: usize) -> *mut gsl_block_uchar;
}
extern "C" {
    pub fn gsl_block_uchar_free(b: *mut gsl_block_uchar);
}
extern "C" {
    pub fn gsl_block_uchar_fread(
        stream: *mut FILE,
        b: *mut gsl_block_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uchar_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uchar_fscanf(
        stream: *mut FILE,
        b: *mut gsl_block_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uchar_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_uchar,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uchar_raw_fread(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_uchar,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uchar_raw_fwrite(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_uchar,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uchar_raw_fscanf(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_uchar,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uchar_raw_fprintf(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_uchar,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_uchar_size(b: *const gsl_block_uchar) -> usize;
}
extern "C" {
    pub fn gsl_block_uchar_data(b: *const gsl_block_uchar) -> *mut ::std::os::raw::c_uchar;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_uchar {
    pub size: usize,
    pub stride: usize,
    pub data: *mut ::std::os::raw::c_uchar,
    pub block: *mut gsl_block_uchar,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_uchar_view {
    pub vector: gsl_vector_uchar,
}
pub type gsl_vector_uchar_view = _gsl_vector_uchar_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_uchar_const_view {
    pub vector: gsl_vector_uchar,
}
pub type gsl_vector_uchar_const_view = _gsl_vector_uchar_const_view;
extern "C" {
    pub fn gsl_vector_uchar_alloc(n: usize) -> *mut gsl_vector_uchar;
}
extern "C" {
    pub fn gsl_vector_uchar_calloc(n: usize) -> *mut gsl_vector_uchar;
}
extern "C" {
    pub fn gsl_vector_uchar_alloc_from_block(
        b: *mut gsl_block_uchar,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_uchar;
}
extern "C" {
    pub fn gsl_vector_uchar_alloc_from_vector(
        v: *mut gsl_vector_uchar,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_uchar;
}
extern "C" {
    pub fn gsl_vector_uchar_free(v: *mut gsl_vector_uchar);
}
extern "C" {
    pub fn gsl_vector_uchar_view_array(
        v: *mut ::std::os::raw::c_uchar,
        n: usize,
    ) -> _gsl_vector_uchar_view;
}
extern "C" {
    pub fn gsl_vector_uchar_view_array_with_stride(
        base: *mut ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_uchar_view;
}
extern "C" {
    pub fn gsl_vector_uchar_const_view_array(
        v: *const ::std::os::raw::c_uchar,
        n: usize,
    ) -> _gsl_vector_uchar_const_view;
}
extern "C" {
    pub fn gsl_vector_uchar_const_view_array_with_stride(
        base: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_uchar_const_view;
}
extern "C" {
    pub fn gsl_vector_uchar_subvector(
        v: *mut gsl_vector_uchar,
        i: usize,
        n: usize,
    ) -> _gsl_vector_uchar_view;
}
extern "C" {
    pub fn gsl_vector_uchar_subvector_with_stride(
        v: *mut gsl_vector_uchar,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_uchar_view;
}
extern "C" {
    pub fn gsl_vector_uchar_const_subvector(
        v: *const gsl_vector_uchar,
        i: usize,
        n: usize,
    ) -> _gsl_vector_uchar_const_view;
}
extern "C" {
    pub fn gsl_vector_uchar_const_subvector_with_stride(
        v: *const gsl_vector_uchar,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_uchar_const_view;
}
extern "C" {
    pub fn gsl_vector_uchar_set_zero(v: *mut gsl_vector_uchar);
}
extern "C" {
    pub fn gsl_vector_uchar_set_all(v: *mut gsl_vector_uchar, x: ::std::os::raw::c_uchar);
}
extern "C" {
    pub fn gsl_vector_uchar_set_basis(v: *mut gsl_vector_uchar, i: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_fread(
        stream: *mut FILE,
        v: *mut gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_uchar,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_memcpy(
        dest: *mut gsl_vector_uchar,
        src: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_reverse(v: *mut gsl_vector_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_swap(
        v: *mut gsl_vector_uchar,
        w: *mut gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_swap_elements(
        v: *mut gsl_vector_uchar,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_max(v: *const gsl_vector_uchar) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_vector_uchar_min(v: *const gsl_vector_uchar) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_vector_uchar_minmax(
        v: *const gsl_vector_uchar,
        min_out: *mut ::std::os::raw::c_uchar,
        max_out: *mut ::std::os::raw::c_uchar,
    );
}
extern "C" {
    pub fn gsl_vector_uchar_max_index(v: *const gsl_vector_uchar) -> usize;
}
extern "C" {
    pub fn gsl_vector_uchar_min_index(v: *const gsl_vector_uchar) -> usize;
}
extern "C" {
    pub fn gsl_vector_uchar_minmax_index(
        v: *const gsl_vector_uchar,
        imin: *mut usize,
        imax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_vector_uchar_add(
        a: *mut gsl_vector_uchar,
        b: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_sub(
        a: *mut gsl_vector_uchar,
        b: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_mul(
        a: *mut gsl_vector_uchar,
        b: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_div(
        a: *mut gsl_vector_uchar,
        b: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_scale(
        a: *mut gsl_vector_uchar,
        x: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_add_constant(
        a: *mut gsl_vector_uchar,
        x: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_axpby(
        alpha: ::std::os::raw::c_uchar,
        x: *const gsl_vector_uchar,
        beta: ::std::os::raw::c_uchar,
        y: *mut gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_sum(a: *const gsl_vector_uchar) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_vector_uchar_equal(
        u: *const gsl_vector_uchar,
        v: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_isnull(v: *const gsl_vector_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_ispos(v: *const gsl_vector_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_isneg(v: *const gsl_vector_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_isnonneg(v: *const gsl_vector_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_uchar_get(v: *const gsl_vector_uchar, i: usize) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_vector_uchar_set(v: *mut gsl_vector_uchar, i: usize, x: ::std::os::raw::c_uchar);
}
extern "C" {
    pub fn gsl_vector_uchar_ptr(v: *mut gsl_vector_uchar, i: usize)
        -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_vector_uchar_const_ptr(
        v: *const gsl_vector_uchar,
        i: usize,
    ) -> *const ::std::os::raw::c_uchar;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_block_char_struct;
pub type gsl_block_char = gsl_block_char_struct;
extern "C" {
    pub fn gsl_block_char_alloc(n: usize) -> *mut gsl_block_char;
}
extern "C" {
    pub fn gsl_block_char_calloc(n: usize) -> *mut gsl_block_char;
}
extern "C" {
    pub fn gsl_block_char_free(b: *mut gsl_block_char);
}
extern "C" {
    pub fn gsl_block_char_fread(stream: *mut FILE, b: *mut gsl_block_char)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_char_fwrite(
        stream: *mut FILE,
        b: *const gsl_block_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_char_fscanf(
        stream: *mut FILE,
        b: *mut gsl_block_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_char_fprintf(
        stream: *mut FILE,
        b: *const gsl_block_char,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_char_raw_fread(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_char,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_char_raw_fwrite(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_char,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_char_raw_fscanf(
        stream: *mut FILE,
        b: *mut ::std::os::raw::c_char,
        n: usize,
        stride: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_char_raw_fprintf(
        stream: *mut FILE,
        b: *const ::std::os::raw::c_char,
        n: usize,
        stride: usize,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_block_char_size(b: *const gsl_block_char) -> usize;
}
extern "C" {
    pub fn gsl_block_char_data(b: *const gsl_block_char) -> *mut ::std::os::raw::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_vector_char {
    pub size: usize,
    pub stride: usize,
    pub data: *mut ::std::os::raw::c_char,
    pub block: *mut gsl_block_char,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_char_view {
    pub vector: gsl_vector_char,
}
pub type gsl_vector_char_view = _gsl_vector_char_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_vector_char_const_view {
    pub vector: gsl_vector_char,
}
pub type gsl_vector_char_const_view = _gsl_vector_char_const_view;
extern "C" {
    pub fn gsl_vector_char_alloc(n: usize) -> *mut gsl_vector_char;
}
extern "C" {
    pub fn gsl_vector_char_calloc(n: usize) -> *mut gsl_vector_char;
}
extern "C" {
    pub fn gsl_vector_char_alloc_from_block(
        b: *mut gsl_block_char,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_char;
}
extern "C" {
    pub fn gsl_vector_char_alloc_from_vector(
        v: *mut gsl_vector_char,
        offset: usize,
        n: usize,
        stride: usize,
    ) -> *mut gsl_vector_char;
}
extern "C" {
    pub fn gsl_vector_char_free(v: *mut gsl_vector_char);
}
extern "C" {
    pub fn gsl_vector_char_view_array(
        v: *mut ::std::os::raw::c_char,
        n: usize,
    ) -> _gsl_vector_char_view;
}
extern "C" {
    pub fn gsl_vector_char_view_array_with_stride(
        base: *mut ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_char_view;
}
extern "C" {
    pub fn gsl_vector_char_const_view_array(
        v: *const ::std::os::raw::c_char,
        n: usize,
    ) -> _gsl_vector_char_const_view;
}
extern "C" {
    pub fn gsl_vector_char_const_view_array_with_stride(
        base: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_char_const_view;
}
extern "C" {
    pub fn gsl_vector_char_subvector(
        v: *mut gsl_vector_char,
        i: usize,
        n: usize,
    ) -> _gsl_vector_char_view;
}
extern "C" {
    pub fn gsl_vector_char_subvector_with_stride(
        v: *mut gsl_vector_char,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_char_view;
}
extern "C" {
    pub fn gsl_vector_char_const_subvector(
        v: *const gsl_vector_char,
        i: usize,
        n: usize,
    ) -> _gsl_vector_char_const_view;
}
extern "C" {
    pub fn gsl_vector_char_const_subvector_with_stride(
        v: *const gsl_vector_char,
        i: usize,
        stride: usize,
        n: usize,
    ) -> _gsl_vector_char_const_view;
}
extern "C" {
    pub fn gsl_vector_char_set_zero(v: *mut gsl_vector_char);
}
extern "C" {
    pub fn gsl_vector_char_set_all(v: *mut gsl_vector_char, x: ::std::os::raw::c_char);
}
extern "C" {
    pub fn gsl_vector_char_set_basis(v: *mut gsl_vector_char, i: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_fread(
        stream: *mut FILE,
        v: *mut gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_fwrite(
        stream: *mut FILE,
        v: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_fscanf(
        stream: *mut FILE,
        v: *mut gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_fprintf(
        stream: *mut FILE,
        v: *const gsl_vector_char,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_memcpy(
        dest: *mut gsl_vector_char,
        src: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_reverse(v: *mut gsl_vector_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_swap(
        v: *mut gsl_vector_char,
        w: *mut gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_swap_elements(
        v: *mut gsl_vector_char,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_max(v: *const gsl_vector_char) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_vector_char_min(v: *const gsl_vector_char) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_vector_char_minmax(
        v: *const gsl_vector_char,
        min_out: *mut ::std::os::raw::c_char,
        max_out: *mut ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn gsl_vector_char_max_index(v: *const gsl_vector_char) -> usize;
}
extern "C" {
    pub fn gsl_vector_char_min_index(v: *const gsl_vector_char) -> usize;
}
extern "C" {
    pub fn gsl_vector_char_minmax_index(
        v: *const gsl_vector_char,
        imin: *mut usize,
        imax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_vector_char_add(
        a: *mut gsl_vector_char,
        b: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_sub(
        a: *mut gsl_vector_char,
        b: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_mul(
        a: *mut gsl_vector_char,
        b: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_div(
        a: *mut gsl_vector_char,
        b: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_scale(
        a: *mut gsl_vector_char,
        x: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_add_constant(
        a: *mut gsl_vector_char,
        x: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_axpby(
        alpha: ::std::os::raw::c_char,
        x: *const gsl_vector_char,
        beta: ::std::os::raw::c_char,
        y: *mut gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_sum(a: *const gsl_vector_char) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_vector_char_equal(
        u: *const gsl_vector_char,
        v: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_isnull(v: *const gsl_vector_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_ispos(v: *const gsl_vector_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_isneg(v: *const gsl_vector_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_isnonneg(v: *const gsl_vector_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_vector_char_get(v: *const gsl_vector_char, i: usize) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_vector_char_set(v: *mut gsl_vector_char, i: usize, x: ::std::os::raw::c_char);
}
extern "C" {
    pub fn gsl_vector_char_ptr(v: *mut gsl_vector_char, i: usize) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_vector_char_const_ptr(
        v: *const gsl_vector_char,
        i: usize,
    ) -> *const ::std::os::raw::c_char;
}
pub const CBLAS_ORDER_CblasRowMajor: CBLAS_ORDER = 101;
pub const CBLAS_ORDER_CblasColMajor: CBLAS_ORDER = 102;
pub type CBLAS_ORDER = ::std::os::raw::c_uint;
pub const CBLAS_TRANSPOSE_CblasNoTrans: CBLAS_TRANSPOSE = 111;
pub const CBLAS_TRANSPOSE_CblasTrans: CBLAS_TRANSPOSE = 112;
pub const CBLAS_TRANSPOSE_CblasConjTrans: CBLAS_TRANSPOSE = 113;
pub type CBLAS_TRANSPOSE = ::std::os::raw::c_uint;
pub const CBLAS_UPLO_CblasUpper: CBLAS_UPLO = 121;
pub const CBLAS_UPLO_CblasLower: CBLAS_UPLO = 122;
pub type CBLAS_UPLO = ::std::os::raw::c_uint;
pub const CBLAS_DIAG_CblasNonUnit: CBLAS_DIAG = 131;
pub const CBLAS_DIAG_CblasUnit: CBLAS_DIAG = 132;
pub type CBLAS_DIAG = ::std::os::raw::c_uint;
pub const CBLAS_SIDE_CblasLeft: CBLAS_SIDE = 141;
pub const CBLAS_SIDE_CblasRight: CBLAS_SIDE = 142;
pub type CBLAS_SIDE = ::std::os::raw::c_uint;
extern "C" {
    pub fn cblas_sdsdot(
        N: ::std::os::raw::c_int,
        alpha: f32,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        Y: *const f32,
        incY: ::std::os::raw::c_int,
    ) -> f32;
}
extern "C" {
    pub fn cblas_dsdot(
        N: ::std::os::raw::c_int,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        Y: *const f32,
        incY: ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn cblas_sdot(
        N: ::std::os::raw::c_int,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        Y: *const f32,
        incY: ::std::os::raw::c_int,
    ) -> f32;
}
extern "C" {
    pub fn cblas_ddot(
        N: ::std::os::raw::c_int,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        Y: *const f64,
        incY: ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn cblas_cdotu_sub(
        N: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *const ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
        dotu: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn cblas_cdotc_sub(
        N: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *const ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
        dotc: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn cblas_zdotu_sub(
        N: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *const ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
        dotu: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn cblas_zdotc_sub(
        N: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *const ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
        dotc: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn cblas_snrm2(N: ::std::os::raw::c_int, X: *const f32, incX: ::std::os::raw::c_int)
        -> f32;
}
extern "C" {
    pub fn cblas_sasum(N: ::std::os::raw::c_int, X: *const f32, incX: ::std::os::raw::c_int)
        -> f32;
}
extern "C" {
    pub fn cblas_dnrm2(N: ::std::os::raw::c_int, X: *const f64, incX: ::std::os::raw::c_int)
        -> f64;
}
extern "C" {
    pub fn cblas_dasum(N: ::std::os::raw::c_int, X: *const f64, incX: ::std::os::raw::c_int)
        -> f64;
}
extern "C" {
    pub fn cblas_scnrm2(
        N: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    ) -> f32;
}
extern "C" {
    pub fn cblas_scasum(
        N: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    ) -> f32;
}
extern "C" {
    pub fn cblas_dznrm2(
        N: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn cblas_dzasum(
        N: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn cblas_isamax(
        N: ::std::os::raw::c_int,
        X: *const f32,
        incX: ::std::os::raw::c_int,
    ) -> usize;
}
extern "C" {
    pub fn cblas_idamax(
        N: ::std::os::raw::c_int,
        X: *const f64,
        incX: ::std::os::raw::c_int,
    ) -> usize;
}
extern "C" {
    pub fn cblas_icamax(
        N: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    ) -> usize;
}
extern "C" {
    pub fn cblas_izamax(
        N: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    ) -> usize;
}
extern "C" {
    pub fn cblas_sswap(
        N: ::std::os::raw::c_int,
        X: *mut f32,
        incX: ::std::os::raw::c_int,
        Y: *mut f32,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_scopy(
        N: ::std::os::raw::c_int,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        Y: *mut f32,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_saxpy(
        N: ::std::os::raw::c_int,
        alpha: f32,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        Y: *mut f32,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dswap(
        N: ::std::os::raw::c_int,
        X: *mut f64,
        incX: ::std::os::raw::c_int,
        Y: *mut f64,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dcopy(
        N: ::std::os::raw::c_int,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        Y: *mut f64,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_daxpy(
        N: ::std::os::raw::c_int,
        alpha: f64,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        Y: *mut f64,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_cswap(
        N: ::std::os::raw::c_int,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ccopy(
        N: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_caxpy(
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zswap(
        N: ::std::os::raw::c_int,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zcopy(
        N: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zaxpy(
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_srotg(a: *mut f32, b: *mut f32, c: *mut f32, s: *mut f32);
}
extern "C" {
    pub fn cblas_srotmg(d1: *mut f32, d2: *mut f32, b1: *mut f32, b2: f32, P: *mut f32);
}
extern "C" {
    pub fn cblas_srot(
        N: ::std::os::raw::c_int,
        X: *mut f32,
        incX: ::std::os::raw::c_int,
        Y: *mut f32,
        incY: ::std::os::raw::c_int,
        c: f32,
        s: f32,
    );
}
extern "C" {
    pub fn cblas_srotm(
        N: ::std::os::raw::c_int,
        X: *mut f32,
        incX: ::std::os::raw::c_int,
        Y: *mut f32,
        incY: ::std::os::raw::c_int,
        P: *const f32,
    );
}
extern "C" {
    pub fn cblas_drotg(a: *mut f64, b: *mut f64, c: *mut f64, s: *mut f64);
}
extern "C" {
    pub fn cblas_drotmg(d1: *mut f64, d2: *mut f64, b1: *mut f64, b2: f64, P: *mut f64);
}
extern "C" {
    pub fn cblas_drot(
        N: ::std::os::raw::c_int,
        X: *mut f64,
        incX: ::std::os::raw::c_int,
        Y: *mut f64,
        incY: ::std::os::raw::c_int,
        c: f64,
        s: f64,
    );
}
extern "C" {
    pub fn cblas_drotm(
        N: ::std::os::raw::c_int,
        X: *mut f64,
        incX: ::std::os::raw::c_int,
        Y: *mut f64,
        incY: ::std::os::raw::c_int,
        P: *const f64,
    );
}
extern "C" {
    pub fn cblas_sscal(
        N: ::std::os::raw::c_int,
        alpha: f32,
        X: *mut f32,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dscal(
        N: ::std::os::raw::c_int,
        alpha: f64,
        X: *mut f64,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_cscal(
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zscal(
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_csscal(
        N: ::std::os::raw::c_int,
        alpha: f32,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zdscal(
        N: ::std::os::raw::c_int,
        alpha: f64,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_sgemv(
        order: CBLAS_ORDER,
        TransA: CBLAS_TRANSPOSE,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: f32,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        beta: f32,
        Y: *mut f32,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_sgbmv(
        order: CBLAS_ORDER,
        TransA: CBLAS_TRANSPOSE,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        KL: ::std::os::raw::c_int,
        KU: ::std::os::raw::c_int,
        alpha: f32,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        beta: f32,
        Y: *mut f32,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_strmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        X: *mut f32,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_stbmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        X: *mut f32,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_stpmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        Ap: *const f32,
        X: *mut f32,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_strsv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        X: *mut f32,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_stbsv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        X: *mut f32,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_stpsv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        Ap: *const f32,
        X: *mut f32,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dgemv(
        order: CBLAS_ORDER,
        TransA: CBLAS_TRANSPOSE,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: f64,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        beta: f64,
        Y: *mut f64,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dgbmv(
        order: CBLAS_ORDER,
        TransA: CBLAS_TRANSPOSE,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        KL: ::std::os::raw::c_int,
        KU: ::std::os::raw::c_int,
        alpha: f64,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        beta: f64,
        Y: *mut f64,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dtrmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        X: *mut f64,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dtbmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        X: *mut f64,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dtpmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        Ap: *const f64,
        X: *mut f64,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dtrsv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        X: *mut f64,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dtbsv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        X: *mut f64,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dtpsv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        Ap: *const f64,
        X: *mut f64,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_cgemv(
        order: CBLAS_ORDER,
        TransA: CBLAS_TRANSPOSE,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_cgbmv(
        order: CBLAS_ORDER,
        TransA: CBLAS_TRANSPOSE,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        KL: ::std::os::raw::c_int,
        KU: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ctrmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ctbmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ctpmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        Ap: *const ::std::os::raw::c_void,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ctrsv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ctbsv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ctpsv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        Ap: *const ::std::os::raw::c_void,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zgemv(
        order: CBLAS_ORDER,
        TransA: CBLAS_TRANSPOSE,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zgbmv(
        order: CBLAS_ORDER,
        TransA: CBLAS_TRANSPOSE,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        KL: ::std::os::raw::c_int,
        KU: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ztrmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ztbmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ztpmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        Ap: *const ::std::os::raw::c_void,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ztrsv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ztbsv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ztpsv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        N: ::std::os::raw::c_int,
        Ap: *const ::std::os::raw::c_void,
        X: *mut ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ssymv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f32,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        beta: f32,
        Y: *mut f32,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ssbmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: f32,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        beta: f32,
        Y: *mut f32,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_sspmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f32,
        Ap: *const f32,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        beta: f32,
        Y: *mut f32,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_sger(
        order: CBLAS_ORDER,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: f32,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        Y: *const f32,
        incY: ::std::os::raw::c_int,
        A: *mut f32,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ssyr(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f32,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        A: *mut f32,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_sspr(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f32,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        Ap: *mut f32,
    );
}
extern "C" {
    pub fn cblas_ssyr2(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f32,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        Y: *const f32,
        incY: ::std::os::raw::c_int,
        A: *mut f32,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_sspr2(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f32,
        X: *const f32,
        incX: ::std::os::raw::c_int,
        Y: *const f32,
        incY: ::std::os::raw::c_int,
        A: *mut f32,
    );
}
extern "C" {
    pub fn cblas_dsymv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f64,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        beta: f64,
        Y: *mut f64,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dsbmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: f64,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        beta: f64,
        Y: *mut f64,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dspmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f64,
        Ap: *const f64,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        beta: f64,
        Y: *mut f64,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dger(
        order: CBLAS_ORDER,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: f64,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        Y: *const f64,
        incY: ::std::os::raw::c_int,
        A: *mut f64,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dsyr(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f64,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        A: *mut f64,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dspr(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f64,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        Ap: *mut f64,
    );
}
extern "C" {
    pub fn cblas_dsyr2(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f64,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        Y: *const f64,
        incY: ::std::os::raw::c_int,
        A: *mut f64,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dspr2(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f64,
        X: *const f64,
        incX: ::std::os::raw::c_int,
        Y: *const f64,
        incY: ::std::os::raw::c_int,
        A: *mut f64,
    );
}
extern "C" {
    pub fn cblas_chemv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_chbmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_chpmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        Ap: *const ::std::os::raw::c_void,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_cgeru(
        order: CBLAS_ORDER,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *const ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
        A: *mut ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_cgerc(
        order: CBLAS_ORDER,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *const ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
        A: *mut ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_cher(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f32,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        A: *mut ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_chpr(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f32,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        A: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn cblas_cher2(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *const ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
        A: *mut ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_chpr2(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *const ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
        Ap: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn cblas_zhemv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zhbmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zhpmv(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        Ap: *const ::std::os::raw::c_void,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        Y: *mut ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zgeru(
        order: CBLAS_ORDER,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *const ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
        A: *mut ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zgerc(
        order: CBLAS_ORDER,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *const ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
        A: *mut ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zher(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f64,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        A: *mut ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zhpr(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: f64,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        A: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn cblas_zher2(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *const ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
        A: *mut ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zhpr2(
        order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        X: *const ::std::os::raw::c_void,
        incX: ::std::os::raw::c_int,
        Y: *const ::std::os::raw::c_void,
        incY: ::std::os::raw::c_int,
        Ap: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn cblas_sgemm(
        Order: CBLAS_ORDER,
        TransA: CBLAS_TRANSPOSE,
        TransB: CBLAS_TRANSPOSE,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: f32,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        B: *const f32,
        ldb: ::std::os::raw::c_int,
        beta: f32,
        C: *mut f32,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ssymm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: f32,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        B: *const f32,
        ldb: ::std::os::raw::c_int,
        beta: f32,
        C: *mut f32,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ssyrk(
        Order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        Trans: CBLAS_TRANSPOSE,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: f32,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        beta: f32,
        C: *mut f32,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ssyr2k(
        Order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        Trans: CBLAS_TRANSPOSE,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: f32,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        B: *const f32,
        ldb: ::std::os::raw::c_int,
        beta: f32,
        C: *mut f32,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_strmm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: f32,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        B: *mut f32,
        ldb: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_strsm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: f32,
        A: *const f32,
        lda: ::std::os::raw::c_int,
        B: *mut f32,
        ldb: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dgemm(
        Order: CBLAS_ORDER,
        TransA: CBLAS_TRANSPOSE,
        TransB: CBLAS_TRANSPOSE,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: f64,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        B: *const f64,
        ldb: ::std::os::raw::c_int,
        beta: f64,
        C: *mut f64,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dsymm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: f64,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        B: *const f64,
        ldb: ::std::os::raw::c_int,
        beta: f64,
        C: *mut f64,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dsyrk(
        Order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        Trans: CBLAS_TRANSPOSE,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: f64,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        beta: f64,
        C: *mut f64,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dsyr2k(
        Order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        Trans: CBLAS_TRANSPOSE,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: f64,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        B: *const f64,
        ldb: ::std::os::raw::c_int,
        beta: f64,
        C: *mut f64,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dtrmm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: f64,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        B: *mut f64,
        ldb: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_dtrsm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: f64,
        A: *const f64,
        lda: ::std::os::raw::c_int,
        B: *mut f64,
        ldb: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_cgemm(
        Order: CBLAS_ORDER,
        TransA: CBLAS_TRANSPOSE,
        TransB: CBLAS_TRANSPOSE,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *const ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_csymm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *const ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_csyrk(
        Order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        Trans: CBLAS_TRANSPOSE,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_csyr2k(
        Order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        Trans: CBLAS_TRANSPOSE,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *const ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ctrmm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *mut ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ctrsm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *mut ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zgemm(
        Order: CBLAS_ORDER,
        TransA: CBLAS_TRANSPOSE,
        TransB: CBLAS_TRANSPOSE,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *const ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zsymm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *const ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zsyrk(
        Order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        Trans: CBLAS_TRANSPOSE,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zsyr2k(
        Order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        Trans: CBLAS_TRANSPOSE,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *const ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ztrmm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *mut ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_ztrsm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        TransA: CBLAS_TRANSPOSE,
        Diag: CBLAS_DIAG,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *mut ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_chemm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *const ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_cherk(
        Order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        Trans: CBLAS_TRANSPOSE,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: f32,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        beta: f32,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_cher2k(
        Order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        Trans: CBLAS_TRANSPOSE,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *const ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
        beta: f32,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zhemm(
        Order: CBLAS_ORDER,
        Side: CBLAS_SIDE,
        Uplo: CBLAS_UPLO,
        M: ::std::os::raw::c_int,
        N: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *const ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
        beta: *const ::std::os::raw::c_void,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zherk(
        Order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        Trans: CBLAS_TRANSPOSE,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: f64,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        beta: f64,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_zher2k(
        Order: CBLAS_ORDER,
        Uplo: CBLAS_UPLO,
        Trans: CBLAS_TRANSPOSE,
        N: ::std::os::raw::c_int,
        K: ::std::os::raw::c_int,
        alpha: *const ::std::os::raw::c_void,
        A: *const ::std::os::raw::c_void,
        lda: ::std::os::raw::c_int,
        B: *const ::std::os::raw::c_void,
        ldb: ::std::os::raw::c_int,
        beta: f64,
        C: *mut ::std::os::raw::c_void,
        ldc: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn cblas_xerbla(
        p: ::std::os::raw::c_int,
        rout: *const ::std::os::raw::c_char,
        form: *const ::std::os::raw::c_char,
        ...
    );
}
pub type CBLAS_INDEX_t = usize;
pub use self::CBLAS_DIAG as CBLAS_DIAG_t;
pub use self::CBLAS_SIDE as CBLAS_SIDE_t;
pub use self::CBLAS_TRANSPOSE as CBLAS_TRANSPOSE_t;
pub use self::CBLAS_UPLO as CBLAS_UPLO_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_complex_long_double {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut u128,
    pub block: *mut gsl_block_complex_long_double,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_complex_long_double_view {
    pub matrix: gsl_matrix_complex_long_double,
}
pub type gsl_matrix_complex_long_double_view = _gsl_matrix_complex_long_double_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_complex_long_double_const_view {
    pub matrix: gsl_matrix_complex_long_double,
}
pub type gsl_matrix_complex_long_double_const_view = _gsl_matrix_complex_long_double_const_view;
extern "C" {
    pub fn gsl_matrix_complex_long_double_alloc(
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_complex_long_double;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_calloc(
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_complex_long_double;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_alloc_from_block(
        b: *mut gsl_block_complex_long_double,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_complex_long_double;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_alloc_from_matrix(
        b: *mut gsl_matrix_complex_long_double,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_complex_long_double;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_alloc_row_from_matrix(
        m: *mut gsl_matrix_complex_long_double,
        i: usize,
    ) -> *mut gsl_vector_complex_long_double;
}
extern "C" {
    pub fn gsl_vector_complex_long_double_alloc_col_from_matrix(
        m: *mut gsl_matrix_complex_long_double,
        j: usize,
    ) -> *mut gsl_vector_complex_long_double;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_free(m: *mut gsl_matrix_complex_long_double);
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_submatrix(
        m: *mut gsl_matrix_complex_long_double,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_row(
        m: *mut gsl_matrix_complex_long_double,
        i: usize,
    ) -> _gsl_vector_complex_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_column(
        m: *mut gsl_matrix_complex_long_double,
        j: usize,
    ) -> _gsl_vector_complex_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_diagonal(
        m: *mut gsl_matrix_complex_long_double,
    ) -> _gsl_vector_complex_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_subdiagonal(
        m: *mut gsl_matrix_complex_long_double,
        k: usize,
    ) -> _gsl_vector_complex_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_superdiagonal(
        m: *mut gsl_matrix_complex_long_double,
        k: usize,
    ) -> _gsl_vector_complex_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_subrow(
        m: *mut gsl_matrix_complex_long_double,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_complex_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_subcolumn(
        m: *mut gsl_matrix_complex_long_double,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_complex_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_view_array(
        base: *mut u128,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_view_array_with_tda(
        base: *mut u128,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_complex_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_view_vector(
        v: *mut gsl_vector_complex_long_double,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_view_vector_with_tda(
        v: *mut gsl_vector_complex_long_double,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_complex_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_submatrix(
        m: *const gsl_matrix_complex_long_double,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_row(
        m: *const gsl_matrix_complex_long_double,
        i: usize,
    ) -> _gsl_vector_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_column(
        m: *const gsl_matrix_complex_long_double,
        j: usize,
    ) -> _gsl_vector_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_diagonal(
        m: *const gsl_matrix_complex_long_double,
    ) -> _gsl_vector_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_subdiagonal(
        m: *const gsl_matrix_complex_long_double,
        k: usize,
    ) -> _gsl_vector_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_superdiagonal(
        m: *const gsl_matrix_complex_long_double,
        k: usize,
    ) -> _gsl_vector_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_subrow(
        m: *const gsl_matrix_complex_long_double,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_subcolumn(
        m: *const gsl_matrix_complex_long_double,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_view_array(
        base: *const u128,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_view_array_with_tda(
        base: *const u128,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_view_vector(
        v: *const gsl_vector_complex_long_double,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_view_vector_with_tda(
        v: *const gsl_vector_complex_long_double,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_complex_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_set_zero(m: *mut gsl_matrix_complex_long_double);
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_set_identity(m: *mut gsl_matrix_complex_long_double);
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_set_all(
        m: *mut gsl_matrix_complex_long_double,
        x: gsl_complex_long_double,
    );
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_fread(
        stream: *mut FILE,
        m: *mut gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_complex_long_double,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_memcpy(
        dest: *mut gsl_matrix_complex_long_double,
        src: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_swap(
        m1: *mut gsl_matrix_complex_long_double,
        m2: *mut gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_complex_long_double,
        src: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_swap_rows(
        m: *mut gsl_matrix_complex_long_double,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_swap_columns(
        m: *mut gsl_matrix_complex_long_double,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_swap_rowcol(
        m: *mut gsl_matrix_complex_long_double,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_transpose(
        m: *mut gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_transpose_memcpy(
        dest: *mut gsl_matrix_complex_long_double,
        src: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_complex_long_double,
        src: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_conjtrans_memcpy(
        dest: *mut gsl_matrix_complex_long_double,
        src: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_equal(
        a: *const gsl_matrix_complex_long_double,
        b: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_isnull(
        m: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_ispos(
        m: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_isneg(
        m: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_isnonneg(
        m: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_add(
        a: *mut gsl_matrix_complex_long_double,
        b: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_sub(
        a: *mut gsl_matrix_complex_long_double,
        b: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_mul_elements(
        a: *mut gsl_matrix_complex_long_double,
        b: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_div_elements(
        a: *mut gsl_matrix_complex_long_double,
        b: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_scale(
        a: *mut gsl_matrix_complex_long_double,
        x: gsl_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_scale_rows(
        a: *mut gsl_matrix_complex_long_double,
        x: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_scale_columns(
        a: *mut gsl_matrix_complex_long_double,
        x: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_add_constant(
        a: *mut gsl_matrix_complex_long_double,
        x: gsl_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_add_diagonal(
        a: *mut gsl_matrix_complex_long_double,
        x: gsl_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_get_row(
        v: *mut gsl_vector_complex_long_double,
        m: *const gsl_matrix_complex_long_double,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_get_col(
        v: *mut gsl_vector_complex_long_double,
        m: *const gsl_matrix_complex_long_double,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_set_row(
        m: *mut gsl_matrix_complex_long_double,
        i: usize,
        v: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_set_col(
        m: *mut gsl_matrix_complex_long_double,
        j: usize,
        v: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_get(
        m: *const gsl_matrix_complex_long_double,
        i: usize,
        j: usize,
    ) -> gsl_complex_long_double;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_set(
        m: *mut gsl_matrix_complex_long_double,
        i: usize,
        j: usize,
        x: gsl_complex_long_double,
    );
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_ptr(
        m: *mut gsl_matrix_complex_long_double,
        i: usize,
        j: usize,
    ) -> *mut gsl_complex_long_double;
}
extern "C" {
    pub fn gsl_matrix_complex_long_double_const_ptr(
        m: *const gsl_matrix_complex_long_double,
        i: usize,
        j: usize,
    ) -> *const gsl_complex_long_double;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_complex {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut f64,
    pub block: *mut gsl_block_complex,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_complex_view {
    pub matrix: gsl_matrix_complex,
}
pub type gsl_matrix_complex_view = _gsl_matrix_complex_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_complex_const_view {
    pub matrix: gsl_matrix_complex,
}
pub type gsl_matrix_complex_const_view = _gsl_matrix_complex_const_view;
extern "C" {
    pub fn gsl_matrix_complex_alloc(n1: usize, n2: usize) -> *mut gsl_matrix_complex;
}
extern "C" {
    pub fn gsl_matrix_complex_calloc(n1: usize, n2: usize) -> *mut gsl_matrix_complex;
}
extern "C" {
    pub fn gsl_matrix_complex_alloc_from_block(
        b: *mut gsl_block_complex,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_complex;
}
extern "C" {
    pub fn gsl_matrix_complex_alloc_from_matrix(
        b: *mut gsl_matrix_complex,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_complex;
}
extern "C" {
    pub fn gsl_vector_complex_alloc_row_from_matrix(
        m: *mut gsl_matrix_complex,
        i: usize,
    ) -> *mut gsl_vector_complex;
}
extern "C" {
    pub fn gsl_vector_complex_alloc_col_from_matrix(
        m: *mut gsl_matrix_complex,
        j: usize,
    ) -> *mut gsl_vector_complex;
}
extern "C" {
    pub fn gsl_matrix_complex_free(m: *mut gsl_matrix_complex);
}
extern "C" {
    pub fn gsl_matrix_complex_submatrix(
        m: *mut gsl_matrix_complex,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_view;
}
extern "C" {
    pub fn gsl_matrix_complex_row(m: *mut gsl_matrix_complex, i: usize)
        -> _gsl_vector_complex_view;
}
extern "C" {
    pub fn gsl_matrix_complex_column(
        m: *mut gsl_matrix_complex,
        j: usize,
    ) -> _gsl_vector_complex_view;
}
extern "C" {
    pub fn gsl_matrix_complex_diagonal(m: *mut gsl_matrix_complex) -> _gsl_vector_complex_view;
}
extern "C" {
    pub fn gsl_matrix_complex_subdiagonal(
        m: *mut gsl_matrix_complex,
        k: usize,
    ) -> _gsl_vector_complex_view;
}
extern "C" {
    pub fn gsl_matrix_complex_superdiagonal(
        m: *mut gsl_matrix_complex,
        k: usize,
    ) -> _gsl_vector_complex_view;
}
extern "C" {
    pub fn gsl_matrix_complex_subrow(
        m: *mut gsl_matrix_complex,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_complex_view;
}
extern "C" {
    pub fn gsl_matrix_complex_subcolumn(
        m: *mut gsl_matrix_complex,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_complex_view;
}
extern "C" {
    pub fn gsl_matrix_complex_view_array(
        base: *mut f64,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_view;
}
extern "C" {
    pub fn gsl_matrix_complex_view_array_with_tda(
        base: *mut f64,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_complex_view;
}
extern "C" {
    pub fn gsl_matrix_complex_view_vector(
        v: *mut gsl_vector_complex,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_view;
}
extern "C" {
    pub fn gsl_matrix_complex_view_vector_with_tda(
        v: *mut gsl_vector_complex,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_complex_view;
}
extern "C" {
    pub fn gsl_matrix_complex_const_submatrix(
        m: *const gsl_matrix_complex,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_const_row(
        m: *const gsl_matrix_complex,
        i: usize,
    ) -> _gsl_vector_complex_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_const_column(
        m: *const gsl_matrix_complex,
        j: usize,
    ) -> _gsl_vector_complex_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_const_diagonal(
        m: *const gsl_matrix_complex,
    ) -> _gsl_vector_complex_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_const_subdiagonal(
        m: *const gsl_matrix_complex,
        k: usize,
    ) -> _gsl_vector_complex_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_const_superdiagonal(
        m: *const gsl_matrix_complex,
        k: usize,
    ) -> _gsl_vector_complex_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_const_subrow(
        m: *const gsl_matrix_complex,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_complex_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_const_subcolumn(
        m: *const gsl_matrix_complex,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_complex_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_const_view_array(
        base: *const f64,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_const_view_array_with_tda(
        base: *const f64,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_complex_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_const_view_vector(
        v: *const gsl_vector_complex,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_const_view_vector_with_tda(
        v: *const gsl_vector_complex,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_complex_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_set_zero(m: *mut gsl_matrix_complex);
}
extern "C" {
    pub fn gsl_matrix_complex_set_identity(m: *mut gsl_matrix_complex);
}
extern "C" {
    pub fn gsl_matrix_complex_set_all(m: *mut gsl_matrix_complex, x: gsl_complex);
}
extern "C" {
    pub fn gsl_matrix_complex_fread(
        stream: *mut FILE,
        m: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_complex,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_memcpy(
        dest: *mut gsl_matrix_complex,
        src: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_swap(
        m1: *mut gsl_matrix_complex,
        m2: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_complex,
        src: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_swap_rows(
        m: *mut gsl_matrix_complex,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_swap_columns(
        m: *mut gsl_matrix_complex,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_swap_rowcol(
        m: *mut gsl_matrix_complex,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_transpose(m: *mut gsl_matrix_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_transpose_memcpy(
        dest: *mut gsl_matrix_complex,
        src: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_complex,
        src: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_matrix_complex_conjtrans_memcpy(
        dest: *mut gsl_matrix_complex,
        src: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_equal(
        a: *const gsl_matrix_complex,
        b: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_isnull(m: *const gsl_matrix_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_ispos(m: *const gsl_matrix_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_isneg(m: *const gsl_matrix_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_isnonneg(m: *const gsl_matrix_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_add(
        a: *mut gsl_matrix_complex,
        b: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_sub(
        a: *mut gsl_matrix_complex,
        b: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_mul_elements(
        a: *mut gsl_matrix_complex,
        b: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_div_elements(
        a: *mut gsl_matrix_complex,
        b: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_scale(
        a: *mut gsl_matrix_complex,
        x: gsl_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_scale_rows(
        a: *mut gsl_matrix_complex,
        x: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_scale_columns(
        a: *mut gsl_matrix_complex,
        x: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_add_constant(
        a: *mut gsl_matrix_complex,
        x: gsl_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_add_diagonal(
        a: *mut gsl_matrix_complex,
        x: gsl_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_get_row(
        v: *mut gsl_vector_complex,
        m: *const gsl_matrix_complex,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_get_col(
        v: *mut gsl_vector_complex,
        m: *const gsl_matrix_complex,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_set_row(
        m: *mut gsl_matrix_complex,
        i: usize,
        v: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_set_col(
        m: *mut gsl_matrix_complex,
        j: usize,
        v: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_get(m: *const gsl_matrix_complex, i: usize, j: usize) -> gsl_complex;
}
extern "C" {
    pub fn gsl_matrix_complex_set(m: *mut gsl_matrix_complex, i: usize, j: usize, x: gsl_complex);
}
extern "C" {
    pub fn gsl_matrix_complex_ptr(
        m: *mut gsl_matrix_complex,
        i: usize,
        j: usize,
    ) -> *mut gsl_complex;
}
extern "C" {
    pub fn gsl_matrix_complex_const_ptr(
        m: *const gsl_matrix_complex,
        i: usize,
        j: usize,
    ) -> *const gsl_complex;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_complex_float {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut f32,
    pub block: *mut gsl_block_complex_float,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_complex_float_view {
    pub matrix: gsl_matrix_complex_float,
}
pub type gsl_matrix_complex_float_view = _gsl_matrix_complex_float_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_complex_float_const_view {
    pub matrix: gsl_matrix_complex_float,
}
pub type gsl_matrix_complex_float_const_view = _gsl_matrix_complex_float_const_view;
extern "C" {
    pub fn gsl_matrix_complex_float_alloc(n1: usize, n2: usize) -> *mut gsl_matrix_complex_float;
}
extern "C" {
    pub fn gsl_matrix_complex_float_calloc(n1: usize, n2: usize) -> *mut gsl_matrix_complex_float;
}
extern "C" {
    pub fn gsl_matrix_complex_float_alloc_from_block(
        b: *mut gsl_block_complex_float,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_complex_float;
}
extern "C" {
    pub fn gsl_matrix_complex_float_alloc_from_matrix(
        b: *mut gsl_matrix_complex_float,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_complex_float;
}
extern "C" {
    pub fn gsl_vector_complex_float_alloc_row_from_matrix(
        m: *mut gsl_matrix_complex_float,
        i: usize,
    ) -> *mut gsl_vector_complex_float;
}
extern "C" {
    pub fn gsl_vector_complex_float_alloc_col_from_matrix(
        m: *mut gsl_matrix_complex_float,
        j: usize,
    ) -> *mut gsl_vector_complex_float;
}
extern "C" {
    pub fn gsl_matrix_complex_float_free(m: *mut gsl_matrix_complex_float);
}
extern "C" {
    pub fn gsl_matrix_complex_float_submatrix(
        m: *mut gsl_matrix_complex_float,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_float_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_row(
        m: *mut gsl_matrix_complex_float,
        i: usize,
    ) -> _gsl_vector_complex_float_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_column(
        m: *mut gsl_matrix_complex_float,
        j: usize,
    ) -> _gsl_vector_complex_float_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_diagonal(
        m: *mut gsl_matrix_complex_float,
    ) -> _gsl_vector_complex_float_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_subdiagonal(
        m: *mut gsl_matrix_complex_float,
        k: usize,
    ) -> _gsl_vector_complex_float_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_superdiagonal(
        m: *mut gsl_matrix_complex_float,
        k: usize,
    ) -> _gsl_vector_complex_float_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_subrow(
        m: *mut gsl_matrix_complex_float,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_complex_float_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_subcolumn(
        m: *mut gsl_matrix_complex_float,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_complex_float_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_view_array(
        base: *mut f32,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_float_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_view_array_with_tda(
        base: *mut f32,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_complex_float_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_view_vector(
        v: *mut gsl_vector_complex_float,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_float_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_view_vector_with_tda(
        v: *mut gsl_vector_complex_float,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_complex_float_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_submatrix(
        m: *const gsl_matrix_complex_float,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_row(
        m: *const gsl_matrix_complex_float,
        i: usize,
    ) -> _gsl_vector_complex_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_column(
        m: *const gsl_matrix_complex_float,
        j: usize,
    ) -> _gsl_vector_complex_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_diagonal(
        m: *const gsl_matrix_complex_float,
    ) -> _gsl_vector_complex_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_subdiagonal(
        m: *const gsl_matrix_complex_float,
        k: usize,
    ) -> _gsl_vector_complex_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_superdiagonal(
        m: *const gsl_matrix_complex_float,
        k: usize,
    ) -> _gsl_vector_complex_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_subrow(
        m: *const gsl_matrix_complex_float,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_complex_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_subcolumn(
        m: *const gsl_matrix_complex_float,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_complex_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_view_array(
        base: *const f32,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_view_array_with_tda(
        base: *const f32,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_complex_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_view_vector(
        v: *const gsl_vector_complex_float,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_complex_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_view_vector_with_tda(
        v: *const gsl_vector_complex_float,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_complex_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_complex_float_set_zero(m: *mut gsl_matrix_complex_float);
}
extern "C" {
    pub fn gsl_matrix_complex_float_set_identity(m: *mut gsl_matrix_complex_float);
}
extern "C" {
    pub fn gsl_matrix_complex_float_set_all(m: *mut gsl_matrix_complex_float, x: gsl_complex_float);
}
extern "C" {
    pub fn gsl_matrix_complex_float_fread(
        stream: *mut FILE,
        m: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_complex_float,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_memcpy(
        dest: *mut gsl_matrix_complex_float,
        src: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_swap(
        m1: *mut gsl_matrix_complex_float,
        m2: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_complex_float,
        src: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_swap_rows(
        m: *mut gsl_matrix_complex_float,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_swap_columns(
        m: *mut gsl_matrix_complex_float,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_swap_rowcol(
        m: *mut gsl_matrix_complex_float,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_transpose(
        m: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_transpose_memcpy(
        dest: *mut gsl_matrix_complex_float,
        src: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_complex_float,
        src: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_conjtrans_memcpy(
        dest: *mut gsl_matrix_complex_float,
        src: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_equal(
        a: *const gsl_matrix_complex_float,
        b: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_isnull(
        m: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_ispos(
        m: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_isneg(
        m: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_isnonneg(
        m: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_add(
        a: *mut gsl_matrix_complex_float,
        b: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_sub(
        a: *mut gsl_matrix_complex_float,
        b: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_mul_elements(
        a: *mut gsl_matrix_complex_float,
        b: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_div_elements(
        a: *mut gsl_matrix_complex_float,
        b: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_scale(
        a: *mut gsl_matrix_complex_float,
        x: gsl_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_scale_rows(
        a: *mut gsl_matrix_complex_float,
        x: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_scale_columns(
        a: *mut gsl_matrix_complex_float,
        x: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_add_constant(
        a: *mut gsl_matrix_complex_float,
        x: gsl_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_add_diagonal(
        a: *mut gsl_matrix_complex_float,
        x: gsl_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_get_row(
        v: *mut gsl_vector_complex_float,
        m: *const gsl_matrix_complex_float,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_get_col(
        v: *mut gsl_vector_complex_float,
        m: *const gsl_matrix_complex_float,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_set_row(
        m: *mut gsl_matrix_complex_float,
        i: usize,
        v: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_set_col(
        m: *mut gsl_matrix_complex_float,
        j: usize,
        v: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_complex_float_get(
        m: *const gsl_matrix_complex_float,
        i: usize,
        j: usize,
    ) -> gsl_complex_float;
}
extern "C" {
    pub fn gsl_matrix_complex_float_set(
        m: *mut gsl_matrix_complex_float,
        i: usize,
        j: usize,
        x: gsl_complex_float,
    );
}
extern "C" {
    pub fn gsl_matrix_complex_float_ptr(
        m: *mut gsl_matrix_complex_float,
        i: usize,
        j: usize,
    ) -> *mut gsl_complex_float;
}
extern "C" {
    pub fn gsl_matrix_complex_float_const_ptr(
        m: *const gsl_matrix_complex_float,
        i: usize,
        j: usize,
    ) -> *const gsl_complex_float;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_long_double {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut u128,
    pub block: *mut gsl_block_long_double,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_long_double_view {
    pub matrix: gsl_matrix_long_double,
}
pub type gsl_matrix_long_double_view = _gsl_matrix_long_double_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_long_double_const_view {
    pub matrix: gsl_matrix_long_double,
}
pub type gsl_matrix_long_double_const_view = _gsl_matrix_long_double_const_view;
extern "C" {
    pub fn gsl_matrix_long_double_alloc(n1: usize, n2: usize) -> *mut gsl_matrix_long_double;
}
extern "C" {
    pub fn gsl_matrix_long_double_calloc(n1: usize, n2: usize) -> *mut gsl_matrix_long_double;
}
extern "C" {
    pub fn gsl_matrix_long_double_alloc_from_block(
        b: *mut gsl_block_long_double,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_long_double;
}
extern "C" {
    pub fn gsl_matrix_long_double_alloc_from_matrix(
        m: *mut gsl_matrix_long_double,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_long_double;
}
extern "C" {
    pub fn gsl_vector_long_double_alloc_row_from_matrix(
        m: *mut gsl_matrix_long_double,
        i: usize,
    ) -> *mut gsl_vector_long_double;
}
extern "C" {
    pub fn gsl_vector_long_double_alloc_col_from_matrix(
        m: *mut gsl_matrix_long_double,
        j: usize,
    ) -> *mut gsl_vector_long_double;
}
extern "C" {
    pub fn gsl_matrix_long_double_free(m: *mut gsl_matrix_long_double);
}
extern "C" {
    pub fn gsl_matrix_long_double_submatrix(
        m: *mut gsl_matrix_long_double,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_row(
        m: *mut gsl_matrix_long_double,
        i: usize,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_column(
        m: *mut gsl_matrix_long_double,
        j: usize,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_diagonal(
        m: *mut gsl_matrix_long_double,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_subdiagonal(
        m: *mut gsl_matrix_long_double,
        k: usize,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_superdiagonal(
        m: *mut gsl_matrix_long_double,
        k: usize,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_subrow(
        m: *mut gsl_matrix_long_double,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_subcolumn(
        m: *mut gsl_matrix_long_double,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_view_array(
        base: *mut u128,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_view_array_with_tda(
        base: *mut u128,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_view_vector(
        v: *mut gsl_vector_long_double,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_view_vector_with_tda(
        v: *mut gsl_vector_long_double,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_long_double_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_submatrix(
        m: *const gsl_matrix_long_double,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_row(
        m: *const gsl_matrix_long_double,
        i: usize,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_column(
        m: *const gsl_matrix_long_double,
        j: usize,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_diagonal(
        m: *const gsl_matrix_long_double,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_subdiagonal(
        m: *const gsl_matrix_long_double,
        k: usize,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_superdiagonal(
        m: *const gsl_matrix_long_double,
        k: usize,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_subrow(
        m: *const gsl_matrix_long_double,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_subcolumn(
        m: *const gsl_matrix_long_double,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_view_array(
        base: *const u128,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_view_array_with_tda(
        base: *const u128,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_view_vector(
        v: *const gsl_vector_long_double,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_view_vector_with_tda(
        v: *const gsl_vector_long_double,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_long_double_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_double_set_zero(m: *mut gsl_matrix_long_double);
}
extern "C" {
    pub fn gsl_matrix_long_double_set_identity(m: *mut gsl_matrix_long_double);
}
extern "C" {
    pub fn gsl_matrix_long_double_set_all(m: *mut gsl_matrix_long_double, x: u128);
}
extern "C" {
    pub fn gsl_matrix_long_double_fread(
        stream: *mut FILE,
        m: *mut gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_long_double,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_memcpy(
        dest: *mut gsl_matrix_long_double,
        src: *const gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_swap(
        m1: *mut gsl_matrix_long_double,
        m2: *mut gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_long_double,
        src: *const gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_swap_rows(
        m: *mut gsl_matrix_long_double,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_swap_columns(
        m: *mut gsl_matrix_long_double,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_swap_rowcol(
        m: *mut gsl_matrix_long_double,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_transpose(
        m: *mut gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_transpose_memcpy(
        dest: *mut gsl_matrix_long_double,
        src: *const gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_long_double,
        src: *const gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_max(m: *const gsl_matrix_long_double) -> u128;
}
extern "C" {
    pub fn gsl_matrix_long_double_min(m: *const gsl_matrix_long_double) -> u128;
}
extern "C" {
    pub fn gsl_matrix_long_double_minmax(
        m: *const gsl_matrix_long_double,
        min_out: *mut u128,
        max_out: *mut u128,
    );
}
extern "C" {
    pub fn gsl_matrix_long_double_max_index(
        m: *const gsl_matrix_long_double,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_long_double_min_index(
        m: *const gsl_matrix_long_double,
        imin: *mut usize,
        jmin: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_long_double_minmax_index(
        m: *const gsl_matrix_long_double,
        imin: *mut usize,
        jmin: *mut usize,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_long_double_equal(
        a: *const gsl_matrix_long_double,
        b: *const gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_isnull(m: *const gsl_matrix_long_double)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_ispos(m: *const gsl_matrix_long_double) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_isneg(m: *const gsl_matrix_long_double) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_isnonneg(
        m: *const gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_norm1(m: *const gsl_matrix_long_double) -> u128;
}
extern "C" {
    pub fn gsl_matrix_long_double_add(
        a: *mut gsl_matrix_long_double,
        b: *const gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_sub(
        a: *mut gsl_matrix_long_double,
        b: *const gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_mul_elements(
        a: *mut gsl_matrix_long_double,
        b: *const gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_div_elements(
        a: *mut gsl_matrix_long_double,
        b: *const gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_scale(
        a: *mut gsl_matrix_long_double,
        x: u128,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_scale_rows(
        a: *mut gsl_matrix_long_double,
        x: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_scale_columns(
        a: *mut gsl_matrix_long_double,
        x: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_add_constant(
        a: *mut gsl_matrix_long_double,
        x: u128,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_add_diagonal(
        a: *mut gsl_matrix_long_double,
        x: u128,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_get_row(
        v: *mut gsl_vector_long_double,
        m: *const gsl_matrix_long_double,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_get_col(
        v: *mut gsl_vector_long_double,
        m: *const gsl_matrix_long_double,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_set_row(
        m: *mut gsl_matrix_long_double,
        i: usize,
        v: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_set_col(
        m: *mut gsl_matrix_long_double,
        j: usize,
        v: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_double_get(m: *const gsl_matrix_long_double, i: usize, j: usize)
        -> u128;
}
extern "C" {
    pub fn gsl_matrix_long_double_set(m: *mut gsl_matrix_long_double, i: usize, j: usize, x: u128);
}
extern "C" {
    pub fn gsl_matrix_long_double_ptr(
        m: *mut gsl_matrix_long_double,
        i: usize,
        j: usize,
    ) -> *mut u128;
}
extern "C" {
    pub fn gsl_matrix_long_double_const_ptr(
        m: *const gsl_matrix_long_double,
        i: usize,
        j: usize,
    ) -> *const u128;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut f64,
    pub block: *mut gsl_block,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_view {
    pub matrix: gsl_matrix,
}
pub type gsl_matrix_view = _gsl_matrix_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_const_view {
    pub matrix: gsl_matrix,
}
pub type gsl_matrix_const_view = _gsl_matrix_const_view;
extern "C" {
    pub fn gsl_matrix_alloc(n1: usize, n2: usize) -> *mut gsl_matrix;
}
extern "C" {
    pub fn gsl_matrix_calloc(n1: usize, n2: usize) -> *mut gsl_matrix;
}
extern "C" {
    pub fn gsl_matrix_alloc_from_block(
        b: *mut gsl_block,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix;
}
extern "C" {
    pub fn gsl_matrix_alloc_from_matrix(
        m: *mut gsl_matrix,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix;
}
extern "C" {
    pub fn gsl_vector_alloc_row_from_matrix(m: *mut gsl_matrix, i: usize) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_vector_alloc_col_from_matrix(m: *mut gsl_matrix, j: usize) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_matrix_free(m: *mut gsl_matrix);
}
extern "C" {
    pub fn gsl_matrix_submatrix(
        m: *mut gsl_matrix,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_view;
}
extern "C" {
    pub fn gsl_matrix_row(m: *mut gsl_matrix, i: usize) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_matrix_column(m: *mut gsl_matrix, j: usize) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_matrix_diagonal(m: *mut gsl_matrix) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_matrix_subdiagonal(m: *mut gsl_matrix, k: usize) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_matrix_superdiagonal(m: *mut gsl_matrix, k: usize) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_matrix_subrow(
        m: *mut gsl_matrix,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_matrix_subcolumn(
        m: *mut gsl_matrix,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_view;
}
extern "C" {
    pub fn gsl_matrix_view_array(base: *mut f64, n1: usize, n2: usize) -> _gsl_matrix_view;
}
extern "C" {
    pub fn gsl_matrix_view_array_with_tda(
        base: *mut f64,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_view;
}
extern "C" {
    pub fn gsl_matrix_view_vector(v: *mut gsl_vector, n1: usize, n2: usize) -> _gsl_matrix_view;
}
extern "C" {
    pub fn gsl_matrix_view_vector_with_tda(
        v: *mut gsl_vector,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_view;
}
extern "C" {
    pub fn gsl_matrix_const_submatrix(
        m: *const gsl_matrix,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_const_view;
}
extern "C" {
    pub fn gsl_matrix_const_row(m: *const gsl_matrix, i: usize) -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_matrix_const_column(m: *const gsl_matrix, j: usize) -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_matrix_const_diagonal(m: *const gsl_matrix) -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_matrix_const_subdiagonal(m: *const gsl_matrix, k: usize) -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_matrix_const_superdiagonal(m: *const gsl_matrix, k: usize)
        -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_matrix_const_subrow(
        m: *const gsl_matrix,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_matrix_const_subcolumn(
        m: *const gsl_matrix,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_const_view;
}
extern "C" {
    pub fn gsl_matrix_const_view_array(
        base: *const f64,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_const_view;
}
extern "C" {
    pub fn gsl_matrix_const_view_array_with_tda(
        base: *const f64,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_const_view;
}
extern "C" {
    pub fn gsl_matrix_const_view_vector(
        v: *const gsl_vector,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_const_view;
}
extern "C" {
    pub fn gsl_matrix_const_view_vector_with_tda(
        v: *const gsl_vector,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_const_view;
}
extern "C" {
    pub fn gsl_matrix_set_zero(m: *mut gsl_matrix);
}
extern "C" {
    pub fn gsl_matrix_set_identity(m: *mut gsl_matrix);
}
extern "C" {
    pub fn gsl_matrix_set_all(m: *mut gsl_matrix, x: f64);
}
extern "C" {
    pub fn gsl_matrix_fread(stream: *mut FILE, m: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_fwrite(stream: *mut FILE, m: *const gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_fscanf(stream: *mut FILE, m: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_memcpy(
        dest: *mut gsl_matrix,
        src: *const gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_swap(m1: *mut gsl_matrix, m2: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix,
        src: *const gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_swap_rows(m: *mut gsl_matrix, i: usize, j: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_swap_columns(m: *mut gsl_matrix, i: usize, j: usize)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_swap_rowcol(m: *mut gsl_matrix, i: usize, j: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_transpose(m: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_transpose_memcpy(
        dest: *mut gsl_matrix,
        src: *const gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix,
        src: *const gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_max(m: *const gsl_matrix) -> f64;
}
extern "C" {
    pub fn gsl_matrix_min(m: *const gsl_matrix) -> f64;
}
extern "C" {
    pub fn gsl_matrix_minmax(m: *const gsl_matrix, min_out: *mut f64, max_out: *mut f64);
}
extern "C" {
    pub fn gsl_matrix_max_index(m: *const gsl_matrix, imax: *mut usize, jmax: *mut usize);
}
extern "C" {
    pub fn gsl_matrix_min_index(m: *const gsl_matrix, imin: *mut usize, jmin: *mut usize);
}
extern "C" {
    pub fn gsl_matrix_minmax_index(
        m: *const gsl_matrix,
        imin: *mut usize,
        jmin: *mut usize,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_equal(a: *const gsl_matrix, b: *const gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_isnull(m: *const gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ispos(m: *const gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_isneg(m: *const gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_isnonneg(m: *const gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_matrix_norm1(m: *const gsl_matrix) -> f64;
}
extern "C" {
    pub fn gsl_matrix_add(a: *mut gsl_matrix, b: *const gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_sub(a: *mut gsl_matrix, b: *const gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_mul_elements(
        a: *mut gsl_matrix,
        b: *const gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_div_elements(
        a: *mut gsl_matrix,
        b: *const gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_scale(a: *mut gsl_matrix, x: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_matrix_scale_rows(a: *mut gsl_matrix, x: *const gsl_vector)
        -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_matrix_scale_columns(
        a: *mut gsl_matrix,
        x: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_add_constant(a: *mut gsl_matrix, x: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_add_diagonal(a: *mut gsl_matrix, x: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_get_row(
        v: *mut gsl_vector,
        m: *const gsl_matrix,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_get_col(
        v: *mut gsl_vector,
        m: *const gsl_matrix,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_set_row(
        m: *mut gsl_matrix,
        i: usize,
        v: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_set_col(
        m: *mut gsl_matrix,
        j: usize,
        v: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_get(m: *const gsl_matrix, i: usize, j: usize) -> f64;
}
extern "C" {
    pub fn gsl_matrix_set(m: *mut gsl_matrix, i: usize, j: usize, x: f64);
}
extern "C" {
    pub fn gsl_matrix_ptr(m: *mut gsl_matrix, i: usize, j: usize) -> *mut f64;
}
extern "C" {
    pub fn gsl_matrix_const_ptr(m: *const gsl_matrix, i: usize, j: usize) -> *const f64;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_float {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut f32,
    pub block: *mut gsl_block_float,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_float_view {
    pub matrix: gsl_matrix_float,
}
pub type gsl_matrix_float_view = _gsl_matrix_float_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_float_const_view {
    pub matrix: gsl_matrix_float,
}
pub type gsl_matrix_float_const_view = _gsl_matrix_float_const_view;
extern "C" {
    pub fn gsl_matrix_float_alloc(n1: usize, n2: usize) -> *mut gsl_matrix_float;
}
extern "C" {
    pub fn gsl_matrix_float_calloc(n1: usize, n2: usize) -> *mut gsl_matrix_float;
}
extern "C" {
    pub fn gsl_matrix_float_alloc_from_block(
        b: *mut gsl_block_float,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_float;
}
extern "C" {
    pub fn gsl_matrix_float_alloc_from_matrix(
        m: *mut gsl_matrix_float,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_float;
}
extern "C" {
    pub fn gsl_vector_float_alloc_row_from_matrix(
        m: *mut gsl_matrix_float,
        i: usize,
    ) -> *mut gsl_vector_float;
}
extern "C" {
    pub fn gsl_vector_float_alloc_col_from_matrix(
        m: *mut gsl_matrix_float,
        j: usize,
    ) -> *mut gsl_vector_float;
}
extern "C" {
    pub fn gsl_matrix_float_free(m: *mut gsl_matrix_float);
}
extern "C" {
    pub fn gsl_matrix_float_submatrix(
        m: *mut gsl_matrix_float,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_float_view;
}
extern "C" {
    pub fn gsl_matrix_float_row(m: *mut gsl_matrix_float, i: usize) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_matrix_float_column(m: *mut gsl_matrix_float, j: usize) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_matrix_float_diagonal(m: *mut gsl_matrix_float) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_matrix_float_subdiagonal(
        m: *mut gsl_matrix_float,
        k: usize,
    ) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_matrix_float_superdiagonal(
        m: *mut gsl_matrix_float,
        k: usize,
    ) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_matrix_float_subrow(
        m: *mut gsl_matrix_float,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_matrix_float_subcolumn(
        m: *mut gsl_matrix_float,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_float_view;
}
extern "C" {
    pub fn gsl_matrix_float_view_array(
        base: *mut f32,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_float_view;
}
extern "C" {
    pub fn gsl_matrix_float_view_array_with_tda(
        base: *mut f32,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_float_view;
}
extern "C" {
    pub fn gsl_matrix_float_view_vector(
        v: *mut gsl_vector_float,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_float_view;
}
extern "C" {
    pub fn gsl_matrix_float_view_vector_with_tda(
        v: *mut gsl_vector_float,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_float_view;
}
extern "C" {
    pub fn gsl_matrix_float_const_submatrix(
        m: *const gsl_matrix_float,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_float_const_row(
        m: *const gsl_matrix_float,
        i: usize,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_float_const_column(
        m: *const gsl_matrix_float,
        j: usize,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_float_const_diagonal(
        m: *const gsl_matrix_float,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_float_const_subdiagonal(
        m: *const gsl_matrix_float,
        k: usize,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_float_const_superdiagonal(
        m: *const gsl_matrix_float,
        k: usize,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_float_const_subrow(
        m: *const gsl_matrix_float,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_float_const_subcolumn(
        m: *const gsl_matrix_float,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_float_const_view_array(
        base: *const f32,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_float_const_view_array_with_tda(
        base: *const f32,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_float_const_view_vector(
        v: *const gsl_vector_float,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_float_const_view_vector_with_tda(
        v: *const gsl_vector_float,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_float_const_view;
}
extern "C" {
    pub fn gsl_matrix_float_set_zero(m: *mut gsl_matrix_float);
}
extern "C" {
    pub fn gsl_matrix_float_set_identity(m: *mut gsl_matrix_float);
}
extern "C" {
    pub fn gsl_matrix_float_set_all(m: *mut gsl_matrix_float, x: f32);
}
extern "C" {
    pub fn gsl_matrix_float_fread(
        stream: *mut FILE,
        m: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_float,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_memcpy(
        dest: *mut gsl_matrix_float,
        src: *const gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_swap(
        m1: *mut gsl_matrix_float,
        m2: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_float,
        src: *const gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_swap_rows(
        m: *mut gsl_matrix_float,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_swap_columns(
        m: *mut gsl_matrix_float,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_swap_rowcol(
        m: *mut gsl_matrix_float,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_transpose(m: *mut gsl_matrix_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_transpose_memcpy(
        dest: *mut gsl_matrix_float,
        src: *const gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_float,
        src: *const gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_max(m: *const gsl_matrix_float) -> f32;
}
extern "C" {
    pub fn gsl_matrix_float_min(m: *const gsl_matrix_float) -> f32;
}
extern "C" {
    pub fn gsl_matrix_float_minmax(
        m: *const gsl_matrix_float,
        min_out: *mut f32,
        max_out: *mut f32,
    );
}
extern "C" {
    pub fn gsl_matrix_float_max_index(
        m: *const gsl_matrix_float,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_float_min_index(
        m: *const gsl_matrix_float,
        imin: *mut usize,
        jmin: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_float_minmax_index(
        m: *const gsl_matrix_float,
        imin: *mut usize,
        jmin: *mut usize,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_float_equal(
        a: *const gsl_matrix_float,
        b: *const gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_isnull(m: *const gsl_matrix_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_ispos(m: *const gsl_matrix_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_isneg(m: *const gsl_matrix_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_isnonneg(m: *const gsl_matrix_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_norm1(m: *const gsl_matrix_float) -> f32;
}
extern "C" {
    pub fn gsl_matrix_float_add(
        a: *mut gsl_matrix_float,
        b: *const gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_sub(
        a: *mut gsl_matrix_float,
        b: *const gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_mul_elements(
        a: *mut gsl_matrix_float,
        b: *const gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_div_elements(
        a: *mut gsl_matrix_float,
        b: *const gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_scale(a: *mut gsl_matrix_float, x: f32) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_scale_rows(
        a: *mut gsl_matrix_float,
        x: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_scale_columns(
        a: *mut gsl_matrix_float,
        x: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_add_constant(a: *mut gsl_matrix_float, x: f32)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_add_diagonal(a: *mut gsl_matrix_float, x: f32)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_get_row(
        v: *mut gsl_vector_float,
        m: *const gsl_matrix_float,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_get_col(
        v: *mut gsl_vector_float,
        m: *const gsl_matrix_float,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_set_row(
        m: *mut gsl_matrix_float,
        i: usize,
        v: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_set_col(
        m: *mut gsl_matrix_float,
        j: usize,
        v: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_float_get(m: *const gsl_matrix_float, i: usize, j: usize) -> f32;
}
extern "C" {
    pub fn gsl_matrix_float_set(m: *mut gsl_matrix_float, i: usize, j: usize, x: f32);
}
extern "C" {
    pub fn gsl_matrix_float_ptr(m: *mut gsl_matrix_float, i: usize, j: usize) -> *mut f32;
}
extern "C" {
    pub fn gsl_matrix_float_const_ptr(m: *const gsl_matrix_float, i: usize, j: usize)
        -> *const f32;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_ulong {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut ::std::os::raw::c_ulong,
    pub block: *mut gsl_block_ulong,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_ulong_view {
    pub matrix: gsl_matrix_ulong,
}
pub type gsl_matrix_ulong_view = _gsl_matrix_ulong_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_ulong_const_view {
    pub matrix: gsl_matrix_ulong,
}
pub type gsl_matrix_ulong_const_view = _gsl_matrix_ulong_const_view;
extern "C" {
    pub fn gsl_matrix_ulong_alloc(n1: usize, n2: usize) -> *mut gsl_matrix_ulong;
}
extern "C" {
    pub fn gsl_matrix_ulong_calloc(n1: usize, n2: usize) -> *mut gsl_matrix_ulong;
}
extern "C" {
    pub fn gsl_matrix_ulong_alloc_from_block(
        b: *mut gsl_block_ulong,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_ulong;
}
extern "C" {
    pub fn gsl_matrix_ulong_alloc_from_matrix(
        m: *mut gsl_matrix_ulong,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_ulong;
}
extern "C" {
    pub fn gsl_vector_ulong_alloc_row_from_matrix(
        m: *mut gsl_matrix_ulong,
        i: usize,
    ) -> *mut gsl_vector_ulong;
}
extern "C" {
    pub fn gsl_vector_ulong_alloc_col_from_matrix(
        m: *mut gsl_matrix_ulong,
        j: usize,
    ) -> *mut gsl_vector_ulong;
}
extern "C" {
    pub fn gsl_matrix_ulong_free(m: *mut gsl_matrix_ulong);
}
extern "C" {
    pub fn gsl_matrix_ulong_submatrix(
        m: *mut gsl_matrix_ulong,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_ulong_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_row(m: *mut gsl_matrix_ulong, i: usize) -> _gsl_vector_ulong_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_column(m: *mut gsl_matrix_ulong, j: usize) -> _gsl_vector_ulong_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_diagonal(m: *mut gsl_matrix_ulong) -> _gsl_vector_ulong_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_subdiagonal(
        m: *mut gsl_matrix_ulong,
        k: usize,
    ) -> _gsl_vector_ulong_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_superdiagonal(
        m: *mut gsl_matrix_ulong,
        k: usize,
    ) -> _gsl_vector_ulong_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_subrow(
        m: *mut gsl_matrix_ulong,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_ulong_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_subcolumn(
        m: *mut gsl_matrix_ulong,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_ulong_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_view_array(
        base: *mut ::std::os::raw::c_ulong,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_ulong_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_view_array_with_tda(
        base: *mut ::std::os::raw::c_ulong,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_ulong_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_view_vector(
        v: *mut gsl_vector_ulong,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_ulong_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_view_vector_with_tda(
        v: *mut gsl_vector_ulong,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_ulong_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_submatrix(
        m: *const gsl_matrix_ulong,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_ulong_const_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_row(
        m: *const gsl_matrix_ulong,
        i: usize,
    ) -> _gsl_vector_ulong_const_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_column(
        m: *const gsl_matrix_ulong,
        j: usize,
    ) -> _gsl_vector_ulong_const_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_diagonal(
        m: *const gsl_matrix_ulong,
    ) -> _gsl_vector_ulong_const_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_subdiagonal(
        m: *const gsl_matrix_ulong,
        k: usize,
    ) -> _gsl_vector_ulong_const_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_superdiagonal(
        m: *const gsl_matrix_ulong,
        k: usize,
    ) -> _gsl_vector_ulong_const_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_subrow(
        m: *const gsl_matrix_ulong,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_ulong_const_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_subcolumn(
        m: *const gsl_matrix_ulong,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_ulong_const_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_view_array(
        base: *const ::std::os::raw::c_ulong,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_ulong_const_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_view_array_with_tda(
        base: *const ::std::os::raw::c_ulong,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_ulong_const_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_view_vector(
        v: *const gsl_vector_ulong,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_ulong_const_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_view_vector_with_tda(
        v: *const gsl_vector_ulong,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_ulong_const_view;
}
extern "C" {
    pub fn gsl_matrix_ulong_set_zero(m: *mut gsl_matrix_ulong);
}
extern "C" {
    pub fn gsl_matrix_ulong_set_identity(m: *mut gsl_matrix_ulong);
}
extern "C" {
    pub fn gsl_matrix_ulong_set_all(m: *mut gsl_matrix_ulong, x: ::std::os::raw::c_ulong);
}
extern "C" {
    pub fn gsl_matrix_ulong_fread(
        stream: *mut FILE,
        m: *mut gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_ulong,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_memcpy(
        dest: *mut gsl_matrix_ulong,
        src: *const gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_swap(
        m1: *mut gsl_matrix_ulong,
        m2: *mut gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_ulong,
        src: *const gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_swap_rows(
        m: *mut gsl_matrix_ulong,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_swap_columns(
        m: *mut gsl_matrix_ulong,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_swap_rowcol(
        m: *mut gsl_matrix_ulong,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_transpose(m: *mut gsl_matrix_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_transpose_memcpy(
        dest: *mut gsl_matrix_ulong,
        src: *const gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_ulong,
        src: *const gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_max(m: *const gsl_matrix_ulong) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_matrix_ulong_min(m: *const gsl_matrix_ulong) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_matrix_ulong_minmax(
        m: *const gsl_matrix_ulong,
        min_out: *mut ::std::os::raw::c_ulong,
        max_out: *mut ::std::os::raw::c_ulong,
    );
}
extern "C" {
    pub fn gsl_matrix_ulong_max_index(
        m: *const gsl_matrix_ulong,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_ulong_min_index(
        m: *const gsl_matrix_ulong,
        imin: *mut usize,
        jmin: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_ulong_minmax_index(
        m: *const gsl_matrix_ulong,
        imin: *mut usize,
        jmin: *mut usize,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_ulong_equal(
        a: *const gsl_matrix_ulong,
        b: *const gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_isnull(m: *const gsl_matrix_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_ispos(m: *const gsl_matrix_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_isneg(m: *const gsl_matrix_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_isnonneg(m: *const gsl_matrix_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_norm1(m: *const gsl_matrix_ulong) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_matrix_ulong_add(
        a: *mut gsl_matrix_ulong,
        b: *const gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_sub(
        a: *mut gsl_matrix_ulong,
        b: *const gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_mul_elements(
        a: *mut gsl_matrix_ulong,
        b: *const gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_div_elements(
        a: *mut gsl_matrix_ulong,
        b: *const gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_scale(
        a: *mut gsl_matrix_ulong,
        x: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_scale_rows(
        a: *mut gsl_matrix_ulong,
        x: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_scale_columns(
        a: *mut gsl_matrix_ulong,
        x: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_add_constant(
        a: *mut gsl_matrix_ulong,
        x: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_add_diagonal(
        a: *mut gsl_matrix_ulong,
        x: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_get_row(
        v: *mut gsl_vector_ulong,
        m: *const gsl_matrix_ulong,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_get_col(
        v: *mut gsl_vector_ulong,
        m: *const gsl_matrix_ulong,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_set_row(
        m: *mut gsl_matrix_ulong,
        i: usize,
        v: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_set_col(
        m: *mut gsl_matrix_ulong,
        j: usize,
        v: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ulong_get(
        m: *const gsl_matrix_ulong,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_matrix_ulong_set(
        m: *mut gsl_matrix_ulong,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_ulong,
    );
}
extern "C" {
    pub fn gsl_matrix_ulong_ptr(
        m: *mut gsl_matrix_ulong,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_matrix_ulong_const_ptr(
        m: *const gsl_matrix_ulong,
        i: usize,
        j: usize,
    ) -> *const ::std::os::raw::c_ulong;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_long {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut ::std::os::raw::c_long,
    pub block: *mut gsl_block_long,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_long_view {
    pub matrix: gsl_matrix_long,
}
pub type gsl_matrix_long_view = _gsl_matrix_long_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_long_const_view {
    pub matrix: gsl_matrix_long,
}
pub type gsl_matrix_long_const_view = _gsl_matrix_long_const_view;
extern "C" {
    pub fn gsl_matrix_long_alloc(n1: usize, n2: usize) -> *mut gsl_matrix_long;
}
extern "C" {
    pub fn gsl_matrix_long_calloc(n1: usize, n2: usize) -> *mut gsl_matrix_long;
}
extern "C" {
    pub fn gsl_matrix_long_alloc_from_block(
        b: *mut gsl_block_long,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_long;
}
extern "C" {
    pub fn gsl_matrix_long_alloc_from_matrix(
        m: *mut gsl_matrix_long,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_long;
}
extern "C" {
    pub fn gsl_vector_long_alloc_row_from_matrix(
        m: *mut gsl_matrix_long,
        i: usize,
    ) -> *mut gsl_vector_long;
}
extern "C" {
    pub fn gsl_vector_long_alloc_col_from_matrix(
        m: *mut gsl_matrix_long,
        j: usize,
    ) -> *mut gsl_vector_long;
}
extern "C" {
    pub fn gsl_matrix_long_free(m: *mut gsl_matrix_long);
}
extern "C" {
    pub fn gsl_matrix_long_submatrix(
        m: *mut gsl_matrix_long,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_long_view;
}
extern "C" {
    pub fn gsl_matrix_long_row(m: *mut gsl_matrix_long, i: usize) -> _gsl_vector_long_view;
}
extern "C" {
    pub fn gsl_matrix_long_column(m: *mut gsl_matrix_long, j: usize) -> _gsl_vector_long_view;
}
extern "C" {
    pub fn gsl_matrix_long_diagonal(m: *mut gsl_matrix_long) -> _gsl_vector_long_view;
}
extern "C" {
    pub fn gsl_matrix_long_subdiagonal(m: *mut gsl_matrix_long, k: usize) -> _gsl_vector_long_view;
}
extern "C" {
    pub fn gsl_matrix_long_superdiagonal(
        m: *mut gsl_matrix_long,
        k: usize,
    ) -> _gsl_vector_long_view;
}
extern "C" {
    pub fn gsl_matrix_long_subrow(
        m: *mut gsl_matrix_long,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_long_view;
}
extern "C" {
    pub fn gsl_matrix_long_subcolumn(
        m: *mut gsl_matrix_long,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_long_view;
}
extern "C" {
    pub fn gsl_matrix_long_view_array(
        base: *mut ::std::os::raw::c_long,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_long_view;
}
extern "C" {
    pub fn gsl_matrix_long_view_array_with_tda(
        base: *mut ::std::os::raw::c_long,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_long_view;
}
extern "C" {
    pub fn gsl_matrix_long_view_vector(
        v: *mut gsl_vector_long,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_long_view;
}
extern "C" {
    pub fn gsl_matrix_long_view_vector_with_tda(
        v: *mut gsl_vector_long,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_long_view;
}
extern "C" {
    pub fn gsl_matrix_long_const_submatrix(
        m: *const gsl_matrix_long,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_long_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_const_row(
        m: *const gsl_matrix_long,
        i: usize,
    ) -> _gsl_vector_long_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_const_column(
        m: *const gsl_matrix_long,
        j: usize,
    ) -> _gsl_vector_long_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_const_diagonal(m: *const gsl_matrix_long)
        -> _gsl_vector_long_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_const_subdiagonal(
        m: *const gsl_matrix_long,
        k: usize,
    ) -> _gsl_vector_long_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_const_superdiagonal(
        m: *const gsl_matrix_long,
        k: usize,
    ) -> _gsl_vector_long_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_const_subrow(
        m: *const gsl_matrix_long,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_long_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_const_subcolumn(
        m: *const gsl_matrix_long,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_long_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_const_view_array(
        base: *const ::std::os::raw::c_long,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_long_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_const_view_array_with_tda(
        base: *const ::std::os::raw::c_long,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_long_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_const_view_vector(
        v: *const gsl_vector_long,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_long_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_const_view_vector_with_tda(
        v: *const gsl_vector_long,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_long_const_view;
}
extern "C" {
    pub fn gsl_matrix_long_set_zero(m: *mut gsl_matrix_long);
}
extern "C" {
    pub fn gsl_matrix_long_set_identity(m: *mut gsl_matrix_long);
}
extern "C" {
    pub fn gsl_matrix_long_set_all(m: *mut gsl_matrix_long, x: ::std::os::raw::c_long);
}
extern "C" {
    pub fn gsl_matrix_long_fread(
        stream: *mut FILE,
        m: *mut gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_long,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_memcpy(
        dest: *mut gsl_matrix_long,
        src: *const gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_swap(
        m1: *mut gsl_matrix_long,
        m2: *mut gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_long,
        src: *const gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_swap_rows(
        m: *mut gsl_matrix_long,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_swap_columns(
        m: *mut gsl_matrix_long,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_swap_rowcol(
        m: *mut gsl_matrix_long,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_transpose(m: *mut gsl_matrix_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_transpose_memcpy(
        dest: *mut gsl_matrix_long,
        src: *const gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_long,
        src: *const gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_max(m: *const gsl_matrix_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_matrix_long_min(m: *const gsl_matrix_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_matrix_long_minmax(
        m: *const gsl_matrix_long,
        min_out: *mut ::std::os::raw::c_long,
        max_out: *mut ::std::os::raw::c_long,
    );
}
extern "C" {
    pub fn gsl_matrix_long_max_index(m: *const gsl_matrix_long, imax: *mut usize, jmax: *mut usize);
}
extern "C" {
    pub fn gsl_matrix_long_min_index(m: *const gsl_matrix_long, imin: *mut usize, jmin: *mut usize);
}
extern "C" {
    pub fn gsl_matrix_long_minmax_index(
        m: *const gsl_matrix_long,
        imin: *mut usize,
        jmin: *mut usize,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_long_equal(
        a: *const gsl_matrix_long,
        b: *const gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_isnull(m: *const gsl_matrix_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_ispos(m: *const gsl_matrix_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_isneg(m: *const gsl_matrix_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_isnonneg(m: *const gsl_matrix_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_norm1(m: *const gsl_matrix_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_matrix_long_add(
        a: *mut gsl_matrix_long,
        b: *const gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_sub(
        a: *mut gsl_matrix_long,
        b: *const gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_mul_elements(
        a: *mut gsl_matrix_long,
        b: *const gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_div_elements(
        a: *mut gsl_matrix_long,
        b: *const gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_scale(
        a: *mut gsl_matrix_long,
        x: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_scale_rows(
        a: *mut gsl_matrix_long,
        x: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_scale_columns(
        a: *mut gsl_matrix_long,
        x: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_add_constant(
        a: *mut gsl_matrix_long,
        x: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_add_diagonal(
        a: *mut gsl_matrix_long,
        x: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_get_row(
        v: *mut gsl_vector_long,
        m: *const gsl_matrix_long,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_get_col(
        v: *mut gsl_vector_long,
        m: *const gsl_matrix_long,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_set_row(
        m: *mut gsl_matrix_long,
        i: usize,
        v: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_set_col(
        m: *mut gsl_matrix_long,
        j: usize,
        v: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_long_get(
        m: *const gsl_matrix_long,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_matrix_long_set(
        m: *mut gsl_matrix_long,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_long,
    );
}
extern "C" {
    pub fn gsl_matrix_long_ptr(
        m: *mut gsl_matrix_long,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_matrix_long_const_ptr(
        m: *const gsl_matrix_long,
        i: usize,
        j: usize,
    ) -> *const ::std::os::raw::c_long;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_uint {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut ::std::os::raw::c_uint,
    pub block: *mut gsl_block_uint,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_uint_view {
    pub matrix: gsl_matrix_uint,
}
pub type gsl_matrix_uint_view = _gsl_matrix_uint_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_uint_const_view {
    pub matrix: gsl_matrix_uint,
}
pub type gsl_matrix_uint_const_view = _gsl_matrix_uint_const_view;
extern "C" {
    pub fn gsl_matrix_uint_alloc(n1: usize, n2: usize) -> *mut gsl_matrix_uint;
}
extern "C" {
    pub fn gsl_matrix_uint_calloc(n1: usize, n2: usize) -> *mut gsl_matrix_uint;
}
extern "C" {
    pub fn gsl_matrix_uint_alloc_from_block(
        b: *mut gsl_block_uint,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_uint;
}
extern "C" {
    pub fn gsl_matrix_uint_alloc_from_matrix(
        m: *mut gsl_matrix_uint,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_uint;
}
extern "C" {
    pub fn gsl_vector_uint_alloc_row_from_matrix(
        m: *mut gsl_matrix_uint,
        i: usize,
    ) -> *mut gsl_vector_uint;
}
extern "C" {
    pub fn gsl_vector_uint_alloc_col_from_matrix(
        m: *mut gsl_matrix_uint,
        j: usize,
    ) -> *mut gsl_vector_uint;
}
extern "C" {
    pub fn gsl_matrix_uint_free(m: *mut gsl_matrix_uint);
}
extern "C" {
    pub fn gsl_matrix_uint_submatrix(
        m: *mut gsl_matrix_uint,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_uint_view;
}
extern "C" {
    pub fn gsl_matrix_uint_row(m: *mut gsl_matrix_uint, i: usize) -> _gsl_vector_uint_view;
}
extern "C" {
    pub fn gsl_matrix_uint_column(m: *mut gsl_matrix_uint, j: usize) -> _gsl_vector_uint_view;
}
extern "C" {
    pub fn gsl_matrix_uint_diagonal(m: *mut gsl_matrix_uint) -> _gsl_vector_uint_view;
}
extern "C" {
    pub fn gsl_matrix_uint_subdiagonal(m: *mut gsl_matrix_uint, k: usize) -> _gsl_vector_uint_view;
}
extern "C" {
    pub fn gsl_matrix_uint_superdiagonal(
        m: *mut gsl_matrix_uint,
        k: usize,
    ) -> _gsl_vector_uint_view;
}
extern "C" {
    pub fn gsl_matrix_uint_subrow(
        m: *mut gsl_matrix_uint,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_uint_view;
}
extern "C" {
    pub fn gsl_matrix_uint_subcolumn(
        m: *mut gsl_matrix_uint,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_uint_view;
}
extern "C" {
    pub fn gsl_matrix_uint_view_array(
        base: *mut ::std::os::raw::c_uint,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_uint_view;
}
extern "C" {
    pub fn gsl_matrix_uint_view_array_with_tda(
        base: *mut ::std::os::raw::c_uint,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_uint_view;
}
extern "C" {
    pub fn gsl_matrix_uint_view_vector(
        v: *mut gsl_vector_uint,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_uint_view;
}
extern "C" {
    pub fn gsl_matrix_uint_view_vector_with_tda(
        v: *mut gsl_vector_uint,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_uint_view;
}
extern "C" {
    pub fn gsl_matrix_uint_const_submatrix(
        m: *const gsl_matrix_uint,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_uint_const_view;
}
extern "C" {
    pub fn gsl_matrix_uint_const_row(
        m: *const gsl_matrix_uint,
        i: usize,
    ) -> _gsl_vector_uint_const_view;
}
extern "C" {
    pub fn gsl_matrix_uint_const_column(
        m: *const gsl_matrix_uint,
        j: usize,
    ) -> _gsl_vector_uint_const_view;
}
extern "C" {
    pub fn gsl_matrix_uint_const_diagonal(m: *const gsl_matrix_uint)
        -> _gsl_vector_uint_const_view;
}
extern "C" {
    pub fn gsl_matrix_uint_const_subdiagonal(
        m: *const gsl_matrix_uint,
        k: usize,
    ) -> _gsl_vector_uint_const_view;
}
extern "C" {
    pub fn gsl_matrix_uint_const_superdiagonal(
        m: *const gsl_matrix_uint,
        k: usize,
    ) -> _gsl_vector_uint_const_view;
}
extern "C" {
    pub fn gsl_matrix_uint_const_subrow(
        m: *const gsl_matrix_uint,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_uint_const_view;
}
extern "C" {
    pub fn gsl_matrix_uint_const_subcolumn(
        m: *const gsl_matrix_uint,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_uint_const_view;
}
extern "C" {
    pub fn gsl_matrix_uint_const_view_array(
        base: *const ::std::os::raw::c_uint,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_uint_const_view;
}
extern "C" {
    pub fn gsl_matrix_uint_const_view_array_with_tda(
        base: *const ::std::os::raw::c_uint,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_uint_const_view;
}
extern "C" {
    pub fn gsl_matrix_uint_const_view_vector(
        v: *const gsl_vector_uint,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_uint_const_view;
}
extern "C" {
    pub fn gsl_matrix_uint_const_view_vector_with_tda(
        v: *const gsl_vector_uint,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_uint_const_view;
}
extern "C" {
    pub fn gsl_matrix_uint_set_zero(m: *mut gsl_matrix_uint);
}
extern "C" {
    pub fn gsl_matrix_uint_set_identity(m: *mut gsl_matrix_uint);
}
extern "C" {
    pub fn gsl_matrix_uint_set_all(m: *mut gsl_matrix_uint, x: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn gsl_matrix_uint_fread(
        stream: *mut FILE,
        m: *mut gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_uint,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_memcpy(
        dest: *mut gsl_matrix_uint,
        src: *const gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_swap(
        m1: *mut gsl_matrix_uint,
        m2: *mut gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_uint,
        src: *const gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_swap_rows(
        m: *mut gsl_matrix_uint,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_swap_columns(
        m: *mut gsl_matrix_uint,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_swap_rowcol(
        m: *mut gsl_matrix_uint,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_transpose(m: *mut gsl_matrix_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_transpose_memcpy(
        dest: *mut gsl_matrix_uint,
        src: *const gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_uint,
        src: *const gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_max(m: *const gsl_matrix_uint) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_matrix_uint_min(m: *const gsl_matrix_uint) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_matrix_uint_minmax(
        m: *const gsl_matrix_uint,
        min_out: *mut ::std::os::raw::c_uint,
        max_out: *mut ::std::os::raw::c_uint,
    );
}
extern "C" {
    pub fn gsl_matrix_uint_max_index(m: *const gsl_matrix_uint, imax: *mut usize, jmax: *mut usize);
}
extern "C" {
    pub fn gsl_matrix_uint_min_index(m: *const gsl_matrix_uint, imin: *mut usize, jmin: *mut usize);
}
extern "C" {
    pub fn gsl_matrix_uint_minmax_index(
        m: *const gsl_matrix_uint,
        imin: *mut usize,
        jmin: *mut usize,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_uint_equal(
        a: *const gsl_matrix_uint,
        b: *const gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_isnull(m: *const gsl_matrix_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_ispos(m: *const gsl_matrix_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_isneg(m: *const gsl_matrix_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_isnonneg(m: *const gsl_matrix_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_norm1(m: *const gsl_matrix_uint) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_matrix_uint_add(
        a: *mut gsl_matrix_uint,
        b: *const gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_sub(
        a: *mut gsl_matrix_uint,
        b: *const gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_mul_elements(
        a: *mut gsl_matrix_uint,
        b: *const gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_div_elements(
        a: *mut gsl_matrix_uint,
        b: *const gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_scale(
        a: *mut gsl_matrix_uint,
        x: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_scale_rows(
        a: *mut gsl_matrix_uint,
        x: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_scale_columns(
        a: *mut gsl_matrix_uint,
        x: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_add_constant(
        a: *mut gsl_matrix_uint,
        x: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_add_diagonal(
        a: *mut gsl_matrix_uint,
        x: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_get_row(
        v: *mut gsl_vector_uint,
        m: *const gsl_matrix_uint,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_get_col(
        v: *mut gsl_vector_uint,
        m: *const gsl_matrix_uint,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_set_row(
        m: *mut gsl_matrix_uint,
        i: usize,
        v: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_set_col(
        m: *mut gsl_matrix_uint,
        j: usize,
        v: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uint_get(
        m: *const gsl_matrix_uint,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_matrix_uint_set(
        m: *mut gsl_matrix_uint,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_uint,
    );
}
extern "C" {
    pub fn gsl_matrix_uint_ptr(
        m: *mut gsl_matrix_uint,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_matrix_uint_const_ptr(
        m: *const gsl_matrix_uint,
        i: usize,
        j: usize,
    ) -> *const ::std::os::raw::c_uint;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_int {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut ::std::os::raw::c_int,
    pub block: *mut gsl_block_int,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_int_view {
    pub matrix: gsl_matrix_int,
}
pub type gsl_matrix_int_view = _gsl_matrix_int_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_int_const_view {
    pub matrix: gsl_matrix_int,
}
pub type gsl_matrix_int_const_view = _gsl_matrix_int_const_view;
extern "C" {
    pub fn gsl_matrix_int_alloc(n1: usize, n2: usize) -> *mut gsl_matrix_int;
}
extern "C" {
    pub fn gsl_matrix_int_calloc(n1: usize, n2: usize) -> *mut gsl_matrix_int;
}
extern "C" {
    pub fn gsl_matrix_int_alloc_from_block(
        b: *mut gsl_block_int,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_int;
}
extern "C" {
    pub fn gsl_matrix_int_alloc_from_matrix(
        m: *mut gsl_matrix_int,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_int;
}
extern "C" {
    pub fn gsl_vector_int_alloc_row_from_matrix(
        m: *mut gsl_matrix_int,
        i: usize,
    ) -> *mut gsl_vector_int;
}
extern "C" {
    pub fn gsl_vector_int_alloc_col_from_matrix(
        m: *mut gsl_matrix_int,
        j: usize,
    ) -> *mut gsl_vector_int;
}
extern "C" {
    pub fn gsl_matrix_int_free(m: *mut gsl_matrix_int);
}
extern "C" {
    pub fn gsl_matrix_int_submatrix(
        m: *mut gsl_matrix_int,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_int_view;
}
extern "C" {
    pub fn gsl_matrix_int_row(m: *mut gsl_matrix_int, i: usize) -> _gsl_vector_int_view;
}
extern "C" {
    pub fn gsl_matrix_int_column(m: *mut gsl_matrix_int, j: usize) -> _gsl_vector_int_view;
}
extern "C" {
    pub fn gsl_matrix_int_diagonal(m: *mut gsl_matrix_int) -> _gsl_vector_int_view;
}
extern "C" {
    pub fn gsl_matrix_int_subdiagonal(m: *mut gsl_matrix_int, k: usize) -> _gsl_vector_int_view;
}
extern "C" {
    pub fn gsl_matrix_int_superdiagonal(m: *mut gsl_matrix_int, k: usize) -> _gsl_vector_int_view;
}
extern "C" {
    pub fn gsl_matrix_int_subrow(
        m: *mut gsl_matrix_int,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_int_view;
}
extern "C" {
    pub fn gsl_matrix_int_subcolumn(
        m: *mut gsl_matrix_int,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_int_view;
}
extern "C" {
    pub fn gsl_matrix_int_view_array(
        base: *mut ::std::os::raw::c_int,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_int_view;
}
extern "C" {
    pub fn gsl_matrix_int_view_array_with_tda(
        base: *mut ::std::os::raw::c_int,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_int_view;
}
extern "C" {
    pub fn gsl_matrix_int_view_vector(
        v: *mut gsl_vector_int,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_int_view;
}
extern "C" {
    pub fn gsl_matrix_int_view_vector_with_tda(
        v: *mut gsl_vector_int,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_int_view;
}
extern "C" {
    pub fn gsl_matrix_int_const_submatrix(
        m: *const gsl_matrix_int,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_int_const_view;
}
extern "C" {
    pub fn gsl_matrix_int_const_row(
        m: *const gsl_matrix_int,
        i: usize,
    ) -> _gsl_vector_int_const_view;
}
extern "C" {
    pub fn gsl_matrix_int_const_column(
        m: *const gsl_matrix_int,
        j: usize,
    ) -> _gsl_vector_int_const_view;
}
extern "C" {
    pub fn gsl_matrix_int_const_diagonal(m: *const gsl_matrix_int) -> _gsl_vector_int_const_view;
}
extern "C" {
    pub fn gsl_matrix_int_const_subdiagonal(
        m: *const gsl_matrix_int,
        k: usize,
    ) -> _gsl_vector_int_const_view;
}
extern "C" {
    pub fn gsl_matrix_int_const_superdiagonal(
        m: *const gsl_matrix_int,
        k: usize,
    ) -> _gsl_vector_int_const_view;
}
extern "C" {
    pub fn gsl_matrix_int_const_subrow(
        m: *const gsl_matrix_int,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_int_const_view;
}
extern "C" {
    pub fn gsl_matrix_int_const_subcolumn(
        m: *const gsl_matrix_int,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_int_const_view;
}
extern "C" {
    pub fn gsl_matrix_int_const_view_array(
        base: *const ::std::os::raw::c_int,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_int_const_view;
}
extern "C" {
    pub fn gsl_matrix_int_const_view_array_with_tda(
        base: *const ::std::os::raw::c_int,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_int_const_view;
}
extern "C" {
    pub fn gsl_matrix_int_const_view_vector(
        v: *const gsl_vector_int,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_int_const_view;
}
extern "C" {
    pub fn gsl_matrix_int_const_view_vector_with_tda(
        v: *const gsl_vector_int,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_int_const_view;
}
extern "C" {
    pub fn gsl_matrix_int_set_zero(m: *mut gsl_matrix_int);
}
extern "C" {
    pub fn gsl_matrix_int_set_identity(m: *mut gsl_matrix_int);
}
extern "C" {
    pub fn gsl_matrix_int_set_all(m: *mut gsl_matrix_int, x: ::std::os::raw::c_int);
}
extern "C" {
    pub fn gsl_matrix_int_fread(stream: *mut FILE, m: *mut gsl_matrix_int)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_int,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_memcpy(
        dest: *mut gsl_matrix_int,
        src: *const gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_swap(
        m1: *mut gsl_matrix_int,
        m2: *mut gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_int,
        src: *const gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_swap_rows(
        m: *mut gsl_matrix_int,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_swap_columns(
        m: *mut gsl_matrix_int,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_swap_rowcol(
        m: *mut gsl_matrix_int,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_transpose(m: *mut gsl_matrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_transpose_memcpy(
        dest: *mut gsl_matrix_int,
        src: *const gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_int,
        src: *const gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_max(m: *const gsl_matrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_min(m: *const gsl_matrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_minmax(
        m: *const gsl_matrix_int,
        min_out: *mut ::std::os::raw::c_int,
        max_out: *mut ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn gsl_matrix_int_max_index(m: *const gsl_matrix_int, imax: *mut usize, jmax: *mut usize);
}
extern "C" {
    pub fn gsl_matrix_int_min_index(m: *const gsl_matrix_int, imin: *mut usize, jmin: *mut usize);
}
extern "C" {
    pub fn gsl_matrix_int_minmax_index(
        m: *const gsl_matrix_int,
        imin: *mut usize,
        jmin: *mut usize,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_int_equal(
        a: *const gsl_matrix_int,
        b: *const gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_isnull(m: *const gsl_matrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_ispos(m: *const gsl_matrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_isneg(m: *const gsl_matrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_isnonneg(m: *const gsl_matrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_norm1(m: *const gsl_matrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_add(
        a: *mut gsl_matrix_int,
        b: *const gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_sub(
        a: *mut gsl_matrix_int,
        b: *const gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_mul_elements(
        a: *mut gsl_matrix_int,
        b: *const gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_div_elements(
        a: *mut gsl_matrix_int,
        b: *const gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_scale(
        a: *mut gsl_matrix_int,
        x: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_scale_rows(
        a: *mut gsl_matrix_int,
        x: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_scale_columns(
        a: *mut gsl_matrix_int,
        x: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_add_constant(
        a: *mut gsl_matrix_int,
        x: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_add_diagonal(
        a: *mut gsl_matrix_int,
        x: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_get_row(
        v: *mut gsl_vector_int,
        m: *const gsl_matrix_int,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_get_col(
        v: *mut gsl_vector_int,
        m: *const gsl_matrix_int,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_set_row(
        m: *mut gsl_matrix_int,
        i: usize,
        v: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_set_col(
        m: *mut gsl_matrix_int,
        j: usize,
        v: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_get(
        m: *const gsl_matrix_int,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_set(m: *mut gsl_matrix_int, i: usize, j: usize, x: ::std::os::raw::c_int);
}
extern "C" {
    pub fn gsl_matrix_int_ptr(
        m: *mut gsl_matrix_int,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_int_const_ptr(
        m: *const gsl_matrix_int,
        i: usize,
        j: usize,
    ) -> *const ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_ushort {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut ::std::os::raw::c_ushort,
    pub block: *mut gsl_block_ushort,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_ushort_view {
    pub matrix: gsl_matrix_ushort,
}
pub type gsl_matrix_ushort_view = _gsl_matrix_ushort_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_ushort_const_view {
    pub matrix: gsl_matrix_ushort,
}
pub type gsl_matrix_ushort_const_view = _gsl_matrix_ushort_const_view;
extern "C" {
    pub fn gsl_matrix_ushort_alloc(n1: usize, n2: usize) -> *mut gsl_matrix_ushort;
}
extern "C" {
    pub fn gsl_matrix_ushort_calloc(n1: usize, n2: usize) -> *mut gsl_matrix_ushort;
}
extern "C" {
    pub fn gsl_matrix_ushort_alloc_from_block(
        b: *mut gsl_block_ushort,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_ushort;
}
extern "C" {
    pub fn gsl_matrix_ushort_alloc_from_matrix(
        m: *mut gsl_matrix_ushort,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_ushort;
}
extern "C" {
    pub fn gsl_vector_ushort_alloc_row_from_matrix(
        m: *mut gsl_matrix_ushort,
        i: usize,
    ) -> *mut gsl_vector_ushort;
}
extern "C" {
    pub fn gsl_vector_ushort_alloc_col_from_matrix(
        m: *mut gsl_matrix_ushort,
        j: usize,
    ) -> *mut gsl_vector_ushort;
}
extern "C" {
    pub fn gsl_matrix_ushort_free(m: *mut gsl_matrix_ushort);
}
extern "C" {
    pub fn gsl_matrix_ushort_submatrix(
        m: *mut gsl_matrix_ushort,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_ushort_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_row(m: *mut gsl_matrix_ushort, i: usize) -> _gsl_vector_ushort_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_column(m: *mut gsl_matrix_ushort, j: usize)
        -> _gsl_vector_ushort_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_diagonal(m: *mut gsl_matrix_ushort) -> _gsl_vector_ushort_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_subdiagonal(
        m: *mut gsl_matrix_ushort,
        k: usize,
    ) -> _gsl_vector_ushort_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_superdiagonal(
        m: *mut gsl_matrix_ushort,
        k: usize,
    ) -> _gsl_vector_ushort_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_subrow(
        m: *mut gsl_matrix_ushort,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_ushort_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_subcolumn(
        m: *mut gsl_matrix_ushort,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_ushort_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_view_array(
        base: *mut ::std::os::raw::c_ushort,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_ushort_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_view_array_with_tda(
        base: *mut ::std::os::raw::c_ushort,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_ushort_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_view_vector(
        v: *mut gsl_vector_ushort,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_ushort_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_view_vector_with_tda(
        v: *mut gsl_vector_ushort,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_ushort_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_submatrix(
        m: *const gsl_matrix_ushort,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_ushort_const_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_row(
        m: *const gsl_matrix_ushort,
        i: usize,
    ) -> _gsl_vector_ushort_const_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_column(
        m: *const gsl_matrix_ushort,
        j: usize,
    ) -> _gsl_vector_ushort_const_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_diagonal(
        m: *const gsl_matrix_ushort,
    ) -> _gsl_vector_ushort_const_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_subdiagonal(
        m: *const gsl_matrix_ushort,
        k: usize,
    ) -> _gsl_vector_ushort_const_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_superdiagonal(
        m: *const gsl_matrix_ushort,
        k: usize,
    ) -> _gsl_vector_ushort_const_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_subrow(
        m: *const gsl_matrix_ushort,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_ushort_const_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_subcolumn(
        m: *const gsl_matrix_ushort,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_ushort_const_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_view_array(
        base: *const ::std::os::raw::c_ushort,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_ushort_const_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_view_array_with_tda(
        base: *const ::std::os::raw::c_ushort,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_ushort_const_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_view_vector(
        v: *const gsl_vector_ushort,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_ushort_const_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_view_vector_with_tda(
        v: *const gsl_vector_ushort,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_ushort_const_view;
}
extern "C" {
    pub fn gsl_matrix_ushort_set_zero(m: *mut gsl_matrix_ushort);
}
extern "C" {
    pub fn gsl_matrix_ushort_set_identity(m: *mut gsl_matrix_ushort);
}
extern "C" {
    pub fn gsl_matrix_ushort_set_all(m: *mut gsl_matrix_ushort, x: ::std::os::raw::c_ushort);
}
extern "C" {
    pub fn gsl_matrix_ushort_fread(
        stream: *mut FILE,
        m: *mut gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_ushort,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_memcpy(
        dest: *mut gsl_matrix_ushort,
        src: *const gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_swap(
        m1: *mut gsl_matrix_ushort,
        m2: *mut gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_ushort,
        src: *const gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_swap_rows(
        m: *mut gsl_matrix_ushort,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_swap_columns(
        m: *mut gsl_matrix_ushort,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_swap_rowcol(
        m: *mut gsl_matrix_ushort,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_transpose(m: *mut gsl_matrix_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_transpose_memcpy(
        dest: *mut gsl_matrix_ushort,
        src: *const gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_ushort,
        src: *const gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_max(m: *const gsl_matrix_ushort) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_matrix_ushort_min(m: *const gsl_matrix_ushort) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_matrix_ushort_minmax(
        m: *const gsl_matrix_ushort,
        min_out: *mut ::std::os::raw::c_ushort,
        max_out: *mut ::std::os::raw::c_ushort,
    );
}
extern "C" {
    pub fn gsl_matrix_ushort_max_index(
        m: *const gsl_matrix_ushort,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_ushort_min_index(
        m: *const gsl_matrix_ushort,
        imin: *mut usize,
        jmin: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_ushort_minmax_index(
        m: *const gsl_matrix_ushort,
        imin: *mut usize,
        jmin: *mut usize,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_ushort_equal(
        a: *const gsl_matrix_ushort,
        b: *const gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_isnull(m: *const gsl_matrix_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_ispos(m: *const gsl_matrix_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_isneg(m: *const gsl_matrix_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_isnonneg(m: *const gsl_matrix_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_norm1(m: *const gsl_matrix_ushort) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_matrix_ushort_add(
        a: *mut gsl_matrix_ushort,
        b: *const gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_sub(
        a: *mut gsl_matrix_ushort,
        b: *const gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_mul_elements(
        a: *mut gsl_matrix_ushort,
        b: *const gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_div_elements(
        a: *mut gsl_matrix_ushort,
        b: *const gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_scale(
        a: *mut gsl_matrix_ushort,
        x: ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_scale_rows(
        a: *mut gsl_matrix_ushort,
        x: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_scale_columns(
        a: *mut gsl_matrix_ushort,
        x: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_add_constant(
        a: *mut gsl_matrix_ushort,
        x: ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_add_diagonal(
        a: *mut gsl_matrix_ushort,
        x: ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_get_row(
        v: *mut gsl_vector_ushort,
        m: *const gsl_matrix_ushort,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_get_col(
        v: *mut gsl_vector_ushort,
        m: *const gsl_matrix_ushort,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_set_row(
        m: *mut gsl_matrix_ushort,
        i: usize,
        v: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_set_col(
        m: *mut gsl_matrix_ushort,
        j: usize,
        v: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_ushort_get(
        m: *const gsl_matrix_ushort,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_matrix_ushort_set(
        m: *mut gsl_matrix_ushort,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_ushort,
    );
}
extern "C" {
    pub fn gsl_matrix_ushort_ptr(
        m: *mut gsl_matrix_ushort,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_matrix_ushort_const_ptr(
        m: *const gsl_matrix_ushort,
        i: usize,
        j: usize,
    ) -> *const ::std::os::raw::c_ushort;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_short {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut ::std::os::raw::c_short,
    pub block: *mut gsl_block_short,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_short_view {
    pub matrix: gsl_matrix_short,
}
pub type gsl_matrix_short_view = _gsl_matrix_short_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_short_const_view {
    pub matrix: gsl_matrix_short,
}
pub type gsl_matrix_short_const_view = _gsl_matrix_short_const_view;
extern "C" {
    pub fn gsl_matrix_short_alloc(n1: usize, n2: usize) -> *mut gsl_matrix_short;
}
extern "C" {
    pub fn gsl_matrix_short_calloc(n1: usize, n2: usize) -> *mut gsl_matrix_short;
}
extern "C" {
    pub fn gsl_matrix_short_alloc_from_block(
        b: *mut gsl_block_short,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_short;
}
extern "C" {
    pub fn gsl_matrix_short_alloc_from_matrix(
        m: *mut gsl_matrix_short,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_short;
}
extern "C" {
    pub fn gsl_vector_short_alloc_row_from_matrix(
        m: *mut gsl_matrix_short,
        i: usize,
    ) -> *mut gsl_vector_short;
}
extern "C" {
    pub fn gsl_vector_short_alloc_col_from_matrix(
        m: *mut gsl_matrix_short,
        j: usize,
    ) -> *mut gsl_vector_short;
}
extern "C" {
    pub fn gsl_matrix_short_free(m: *mut gsl_matrix_short);
}
extern "C" {
    pub fn gsl_matrix_short_submatrix(
        m: *mut gsl_matrix_short,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_short_view;
}
extern "C" {
    pub fn gsl_matrix_short_row(m: *mut gsl_matrix_short, i: usize) -> _gsl_vector_short_view;
}
extern "C" {
    pub fn gsl_matrix_short_column(m: *mut gsl_matrix_short, j: usize) -> _gsl_vector_short_view;
}
extern "C" {
    pub fn gsl_matrix_short_diagonal(m: *mut gsl_matrix_short) -> _gsl_vector_short_view;
}
extern "C" {
    pub fn gsl_matrix_short_subdiagonal(
        m: *mut gsl_matrix_short,
        k: usize,
    ) -> _gsl_vector_short_view;
}
extern "C" {
    pub fn gsl_matrix_short_superdiagonal(
        m: *mut gsl_matrix_short,
        k: usize,
    ) -> _gsl_vector_short_view;
}
extern "C" {
    pub fn gsl_matrix_short_subrow(
        m: *mut gsl_matrix_short,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_short_view;
}
extern "C" {
    pub fn gsl_matrix_short_subcolumn(
        m: *mut gsl_matrix_short,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_short_view;
}
extern "C" {
    pub fn gsl_matrix_short_view_array(
        base: *mut ::std::os::raw::c_short,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_short_view;
}
extern "C" {
    pub fn gsl_matrix_short_view_array_with_tda(
        base: *mut ::std::os::raw::c_short,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_short_view;
}
extern "C" {
    pub fn gsl_matrix_short_view_vector(
        v: *mut gsl_vector_short,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_short_view;
}
extern "C" {
    pub fn gsl_matrix_short_view_vector_with_tda(
        v: *mut gsl_vector_short,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_short_view;
}
extern "C" {
    pub fn gsl_matrix_short_const_submatrix(
        m: *const gsl_matrix_short,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_short_const_view;
}
extern "C" {
    pub fn gsl_matrix_short_const_row(
        m: *const gsl_matrix_short,
        i: usize,
    ) -> _gsl_vector_short_const_view;
}
extern "C" {
    pub fn gsl_matrix_short_const_column(
        m: *const gsl_matrix_short,
        j: usize,
    ) -> _gsl_vector_short_const_view;
}
extern "C" {
    pub fn gsl_matrix_short_const_diagonal(
        m: *const gsl_matrix_short,
    ) -> _gsl_vector_short_const_view;
}
extern "C" {
    pub fn gsl_matrix_short_const_subdiagonal(
        m: *const gsl_matrix_short,
        k: usize,
    ) -> _gsl_vector_short_const_view;
}
extern "C" {
    pub fn gsl_matrix_short_const_superdiagonal(
        m: *const gsl_matrix_short,
        k: usize,
    ) -> _gsl_vector_short_const_view;
}
extern "C" {
    pub fn gsl_matrix_short_const_subrow(
        m: *const gsl_matrix_short,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_short_const_view;
}
extern "C" {
    pub fn gsl_matrix_short_const_subcolumn(
        m: *const gsl_matrix_short,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_short_const_view;
}
extern "C" {
    pub fn gsl_matrix_short_const_view_array(
        base: *const ::std::os::raw::c_short,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_short_const_view;
}
extern "C" {
    pub fn gsl_matrix_short_const_view_array_with_tda(
        base: *const ::std::os::raw::c_short,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_short_const_view;
}
extern "C" {
    pub fn gsl_matrix_short_const_view_vector(
        v: *const gsl_vector_short,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_short_const_view;
}
extern "C" {
    pub fn gsl_matrix_short_const_view_vector_with_tda(
        v: *const gsl_vector_short,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_short_const_view;
}
extern "C" {
    pub fn gsl_matrix_short_set_zero(m: *mut gsl_matrix_short);
}
extern "C" {
    pub fn gsl_matrix_short_set_identity(m: *mut gsl_matrix_short);
}
extern "C" {
    pub fn gsl_matrix_short_set_all(m: *mut gsl_matrix_short, x: ::std::os::raw::c_short);
}
extern "C" {
    pub fn gsl_matrix_short_fread(
        stream: *mut FILE,
        m: *mut gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_short,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_memcpy(
        dest: *mut gsl_matrix_short,
        src: *const gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_swap(
        m1: *mut gsl_matrix_short,
        m2: *mut gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_short,
        src: *const gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_swap_rows(
        m: *mut gsl_matrix_short,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_swap_columns(
        m: *mut gsl_matrix_short,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_swap_rowcol(
        m: *mut gsl_matrix_short,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_transpose(m: *mut gsl_matrix_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_transpose_memcpy(
        dest: *mut gsl_matrix_short,
        src: *const gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_short,
        src: *const gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_max(m: *const gsl_matrix_short) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_matrix_short_min(m: *const gsl_matrix_short) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_matrix_short_minmax(
        m: *const gsl_matrix_short,
        min_out: *mut ::std::os::raw::c_short,
        max_out: *mut ::std::os::raw::c_short,
    );
}
extern "C" {
    pub fn gsl_matrix_short_max_index(
        m: *const gsl_matrix_short,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_short_min_index(
        m: *const gsl_matrix_short,
        imin: *mut usize,
        jmin: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_short_minmax_index(
        m: *const gsl_matrix_short,
        imin: *mut usize,
        jmin: *mut usize,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_short_equal(
        a: *const gsl_matrix_short,
        b: *const gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_isnull(m: *const gsl_matrix_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_ispos(m: *const gsl_matrix_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_isneg(m: *const gsl_matrix_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_isnonneg(m: *const gsl_matrix_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_norm1(m: *const gsl_matrix_short) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_matrix_short_add(
        a: *mut gsl_matrix_short,
        b: *const gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_sub(
        a: *mut gsl_matrix_short,
        b: *const gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_mul_elements(
        a: *mut gsl_matrix_short,
        b: *const gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_div_elements(
        a: *mut gsl_matrix_short,
        b: *const gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_scale(
        a: *mut gsl_matrix_short,
        x: ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_scale_rows(
        a: *mut gsl_matrix_short,
        x: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_scale_columns(
        a: *mut gsl_matrix_short,
        x: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_add_constant(
        a: *mut gsl_matrix_short,
        x: ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_add_diagonal(
        a: *mut gsl_matrix_short,
        x: ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_get_row(
        v: *mut gsl_vector_short,
        m: *const gsl_matrix_short,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_get_col(
        v: *mut gsl_vector_short,
        m: *const gsl_matrix_short,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_set_row(
        m: *mut gsl_matrix_short,
        i: usize,
        v: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_set_col(
        m: *mut gsl_matrix_short,
        j: usize,
        v: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_short_get(
        m: *const gsl_matrix_short,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_matrix_short_set(
        m: *mut gsl_matrix_short,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_short,
    );
}
extern "C" {
    pub fn gsl_matrix_short_ptr(
        m: *mut gsl_matrix_short,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_matrix_short_const_ptr(
        m: *const gsl_matrix_short,
        i: usize,
        j: usize,
    ) -> *const ::std::os::raw::c_short;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_uchar {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut ::std::os::raw::c_uchar,
    pub block: *mut gsl_block_uchar,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_uchar_view {
    pub matrix: gsl_matrix_uchar,
}
pub type gsl_matrix_uchar_view = _gsl_matrix_uchar_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_uchar_const_view {
    pub matrix: gsl_matrix_uchar,
}
pub type gsl_matrix_uchar_const_view = _gsl_matrix_uchar_const_view;
extern "C" {
    pub fn gsl_matrix_uchar_alloc(n1: usize, n2: usize) -> *mut gsl_matrix_uchar;
}
extern "C" {
    pub fn gsl_matrix_uchar_calloc(n1: usize, n2: usize) -> *mut gsl_matrix_uchar;
}
extern "C" {
    pub fn gsl_matrix_uchar_alloc_from_block(
        b: *mut gsl_block_uchar,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_uchar;
}
extern "C" {
    pub fn gsl_matrix_uchar_alloc_from_matrix(
        m: *mut gsl_matrix_uchar,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_uchar;
}
extern "C" {
    pub fn gsl_vector_uchar_alloc_row_from_matrix(
        m: *mut gsl_matrix_uchar,
        i: usize,
    ) -> *mut gsl_vector_uchar;
}
extern "C" {
    pub fn gsl_vector_uchar_alloc_col_from_matrix(
        m: *mut gsl_matrix_uchar,
        j: usize,
    ) -> *mut gsl_vector_uchar;
}
extern "C" {
    pub fn gsl_matrix_uchar_free(m: *mut gsl_matrix_uchar);
}
extern "C" {
    pub fn gsl_matrix_uchar_submatrix(
        m: *mut gsl_matrix_uchar,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_uchar_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_row(m: *mut gsl_matrix_uchar, i: usize) -> _gsl_vector_uchar_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_column(m: *mut gsl_matrix_uchar, j: usize) -> _gsl_vector_uchar_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_diagonal(m: *mut gsl_matrix_uchar) -> _gsl_vector_uchar_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_subdiagonal(
        m: *mut gsl_matrix_uchar,
        k: usize,
    ) -> _gsl_vector_uchar_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_superdiagonal(
        m: *mut gsl_matrix_uchar,
        k: usize,
    ) -> _gsl_vector_uchar_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_subrow(
        m: *mut gsl_matrix_uchar,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_uchar_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_subcolumn(
        m: *mut gsl_matrix_uchar,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_uchar_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_view_array(
        base: *mut ::std::os::raw::c_uchar,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_uchar_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_view_array_with_tda(
        base: *mut ::std::os::raw::c_uchar,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_uchar_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_view_vector(
        v: *mut gsl_vector_uchar,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_uchar_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_view_vector_with_tda(
        v: *mut gsl_vector_uchar,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_uchar_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_submatrix(
        m: *const gsl_matrix_uchar,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_uchar_const_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_row(
        m: *const gsl_matrix_uchar,
        i: usize,
    ) -> _gsl_vector_uchar_const_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_column(
        m: *const gsl_matrix_uchar,
        j: usize,
    ) -> _gsl_vector_uchar_const_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_diagonal(
        m: *const gsl_matrix_uchar,
    ) -> _gsl_vector_uchar_const_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_subdiagonal(
        m: *const gsl_matrix_uchar,
        k: usize,
    ) -> _gsl_vector_uchar_const_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_superdiagonal(
        m: *const gsl_matrix_uchar,
        k: usize,
    ) -> _gsl_vector_uchar_const_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_subrow(
        m: *const gsl_matrix_uchar,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_uchar_const_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_subcolumn(
        m: *const gsl_matrix_uchar,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_uchar_const_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_view_array(
        base: *const ::std::os::raw::c_uchar,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_uchar_const_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_view_array_with_tda(
        base: *const ::std::os::raw::c_uchar,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_uchar_const_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_view_vector(
        v: *const gsl_vector_uchar,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_uchar_const_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_view_vector_with_tda(
        v: *const gsl_vector_uchar,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_uchar_const_view;
}
extern "C" {
    pub fn gsl_matrix_uchar_set_zero(m: *mut gsl_matrix_uchar);
}
extern "C" {
    pub fn gsl_matrix_uchar_set_identity(m: *mut gsl_matrix_uchar);
}
extern "C" {
    pub fn gsl_matrix_uchar_set_all(m: *mut gsl_matrix_uchar, x: ::std::os::raw::c_uchar);
}
extern "C" {
    pub fn gsl_matrix_uchar_fread(
        stream: *mut FILE,
        m: *mut gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_uchar,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_memcpy(
        dest: *mut gsl_matrix_uchar,
        src: *const gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_swap(
        m1: *mut gsl_matrix_uchar,
        m2: *mut gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_uchar,
        src: *const gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_swap_rows(
        m: *mut gsl_matrix_uchar,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_swap_columns(
        m: *mut gsl_matrix_uchar,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_swap_rowcol(
        m: *mut gsl_matrix_uchar,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_transpose(m: *mut gsl_matrix_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_transpose_memcpy(
        dest: *mut gsl_matrix_uchar,
        src: *const gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_uchar,
        src: *const gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_max(m: *const gsl_matrix_uchar) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_matrix_uchar_min(m: *const gsl_matrix_uchar) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_matrix_uchar_minmax(
        m: *const gsl_matrix_uchar,
        min_out: *mut ::std::os::raw::c_uchar,
        max_out: *mut ::std::os::raw::c_uchar,
    );
}
extern "C" {
    pub fn gsl_matrix_uchar_max_index(
        m: *const gsl_matrix_uchar,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_uchar_min_index(
        m: *const gsl_matrix_uchar,
        imin: *mut usize,
        jmin: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_uchar_minmax_index(
        m: *const gsl_matrix_uchar,
        imin: *mut usize,
        jmin: *mut usize,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_uchar_equal(
        a: *const gsl_matrix_uchar,
        b: *const gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_isnull(m: *const gsl_matrix_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_ispos(m: *const gsl_matrix_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_isneg(m: *const gsl_matrix_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_isnonneg(m: *const gsl_matrix_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_norm1(m: *const gsl_matrix_uchar) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_matrix_uchar_add(
        a: *mut gsl_matrix_uchar,
        b: *const gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_sub(
        a: *mut gsl_matrix_uchar,
        b: *const gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_mul_elements(
        a: *mut gsl_matrix_uchar,
        b: *const gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_div_elements(
        a: *mut gsl_matrix_uchar,
        b: *const gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_scale(
        a: *mut gsl_matrix_uchar,
        x: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_scale_rows(
        a: *mut gsl_matrix_uchar,
        x: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_scale_columns(
        a: *mut gsl_matrix_uchar,
        x: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_add_constant(
        a: *mut gsl_matrix_uchar,
        x: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_add_diagonal(
        a: *mut gsl_matrix_uchar,
        x: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_get_row(
        v: *mut gsl_vector_uchar,
        m: *const gsl_matrix_uchar,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_get_col(
        v: *mut gsl_vector_uchar,
        m: *const gsl_matrix_uchar,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_set_row(
        m: *mut gsl_matrix_uchar,
        i: usize,
        v: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_set_col(
        m: *mut gsl_matrix_uchar,
        j: usize,
        v: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_uchar_get(
        m: *const gsl_matrix_uchar,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_matrix_uchar_set(
        m: *mut gsl_matrix_uchar,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_uchar,
    );
}
extern "C" {
    pub fn gsl_matrix_uchar_ptr(
        m: *mut gsl_matrix_uchar,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_matrix_uchar_const_ptr(
        m: *const gsl_matrix_uchar,
        i: usize,
        j: usize,
    ) -> *const ::std::os::raw::c_uchar;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_matrix_char {
    pub size1: usize,
    pub size2: usize,
    pub tda: usize,
    pub data: *mut ::std::os::raw::c_char,
    pub block: *mut gsl_block_char,
    pub owner: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_char_view {
    pub matrix: gsl_matrix_char,
}
pub type gsl_matrix_char_view = _gsl_matrix_char_view;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _gsl_matrix_char_const_view {
    pub matrix: gsl_matrix_char,
}
pub type gsl_matrix_char_const_view = _gsl_matrix_char_const_view;
extern "C" {
    pub fn gsl_matrix_char_alloc(n1: usize, n2: usize) -> *mut gsl_matrix_char;
}
extern "C" {
    pub fn gsl_matrix_char_calloc(n1: usize, n2: usize) -> *mut gsl_matrix_char;
}
extern "C" {
    pub fn gsl_matrix_char_alloc_from_block(
        b: *mut gsl_block_char,
        offset: usize,
        n1: usize,
        n2: usize,
        d2: usize,
    ) -> *mut gsl_matrix_char;
}
extern "C" {
    pub fn gsl_matrix_char_alloc_from_matrix(
        m: *mut gsl_matrix_char,
        k1: usize,
        k2: usize,
        n1: usize,
        n2: usize,
    ) -> *mut gsl_matrix_char;
}
extern "C" {
    pub fn gsl_vector_char_alloc_row_from_matrix(
        m: *mut gsl_matrix_char,
        i: usize,
    ) -> *mut gsl_vector_char;
}
extern "C" {
    pub fn gsl_vector_char_alloc_col_from_matrix(
        m: *mut gsl_matrix_char,
        j: usize,
    ) -> *mut gsl_vector_char;
}
extern "C" {
    pub fn gsl_matrix_char_free(m: *mut gsl_matrix_char);
}
extern "C" {
    pub fn gsl_matrix_char_submatrix(
        m: *mut gsl_matrix_char,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_char_view;
}
extern "C" {
    pub fn gsl_matrix_char_row(m: *mut gsl_matrix_char, i: usize) -> _gsl_vector_char_view;
}
extern "C" {
    pub fn gsl_matrix_char_column(m: *mut gsl_matrix_char, j: usize) -> _gsl_vector_char_view;
}
extern "C" {
    pub fn gsl_matrix_char_diagonal(m: *mut gsl_matrix_char) -> _gsl_vector_char_view;
}
extern "C" {
    pub fn gsl_matrix_char_subdiagonal(m: *mut gsl_matrix_char, k: usize) -> _gsl_vector_char_view;
}
extern "C" {
    pub fn gsl_matrix_char_superdiagonal(
        m: *mut gsl_matrix_char,
        k: usize,
    ) -> _gsl_vector_char_view;
}
extern "C" {
    pub fn gsl_matrix_char_subrow(
        m: *mut gsl_matrix_char,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_char_view;
}
extern "C" {
    pub fn gsl_matrix_char_subcolumn(
        m: *mut gsl_matrix_char,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_char_view;
}
extern "C" {
    pub fn gsl_matrix_char_view_array(
        base: *mut ::std::os::raw::c_char,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_char_view;
}
extern "C" {
    pub fn gsl_matrix_char_view_array_with_tda(
        base: *mut ::std::os::raw::c_char,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_char_view;
}
extern "C" {
    pub fn gsl_matrix_char_view_vector(
        v: *mut gsl_vector_char,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_char_view;
}
extern "C" {
    pub fn gsl_matrix_char_view_vector_with_tda(
        v: *mut gsl_vector_char,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_char_view;
}
extern "C" {
    pub fn gsl_matrix_char_const_submatrix(
        m: *const gsl_matrix_char,
        i: usize,
        j: usize,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_char_const_view;
}
extern "C" {
    pub fn gsl_matrix_char_const_row(
        m: *const gsl_matrix_char,
        i: usize,
    ) -> _gsl_vector_char_const_view;
}
extern "C" {
    pub fn gsl_matrix_char_const_column(
        m: *const gsl_matrix_char,
        j: usize,
    ) -> _gsl_vector_char_const_view;
}
extern "C" {
    pub fn gsl_matrix_char_const_diagonal(m: *const gsl_matrix_char)
        -> _gsl_vector_char_const_view;
}
extern "C" {
    pub fn gsl_matrix_char_const_subdiagonal(
        m: *const gsl_matrix_char,
        k: usize,
    ) -> _gsl_vector_char_const_view;
}
extern "C" {
    pub fn gsl_matrix_char_const_superdiagonal(
        m: *const gsl_matrix_char,
        k: usize,
    ) -> _gsl_vector_char_const_view;
}
extern "C" {
    pub fn gsl_matrix_char_const_subrow(
        m: *const gsl_matrix_char,
        i: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_char_const_view;
}
extern "C" {
    pub fn gsl_matrix_char_const_subcolumn(
        m: *const gsl_matrix_char,
        j: usize,
        offset: usize,
        n: usize,
    ) -> _gsl_vector_char_const_view;
}
extern "C" {
    pub fn gsl_matrix_char_const_view_array(
        base: *const ::std::os::raw::c_char,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_char_const_view;
}
extern "C" {
    pub fn gsl_matrix_char_const_view_array_with_tda(
        base: *const ::std::os::raw::c_char,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_char_const_view;
}
extern "C" {
    pub fn gsl_matrix_char_const_view_vector(
        v: *const gsl_vector_char,
        n1: usize,
        n2: usize,
    ) -> _gsl_matrix_char_const_view;
}
extern "C" {
    pub fn gsl_matrix_char_const_view_vector_with_tda(
        v: *const gsl_vector_char,
        n1: usize,
        n2: usize,
        tda: usize,
    ) -> _gsl_matrix_char_const_view;
}
extern "C" {
    pub fn gsl_matrix_char_set_zero(m: *mut gsl_matrix_char);
}
extern "C" {
    pub fn gsl_matrix_char_set_identity(m: *mut gsl_matrix_char);
}
extern "C" {
    pub fn gsl_matrix_char_set_all(m: *mut gsl_matrix_char, x: ::std::os::raw::c_char);
}
extern "C" {
    pub fn gsl_matrix_char_fread(
        stream: *mut FILE,
        m: *mut gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_fwrite(
        stream: *mut FILE,
        m: *const gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_fscanf(
        stream: *mut FILE,
        m: *mut gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_fprintf(
        stream: *mut FILE,
        m: *const gsl_matrix_char,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_memcpy(
        dest: *mut gsl_matrix_char,
        src: *const gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_swap(
        m1: *mut gsl_matrix_char,
        m2: *mut gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_tricpy(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_char,
        src: *const gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_swap_rows(
        m: *mut gsl_matrix_char,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_swap_columns(
        m: *mut gsl_matrix_char,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_swap_rowcol(
        m: *mut gsl_matrix_char,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_transpose(m: *mut gsl_matrix_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_transpose_memcpy(
        dest: *mut gsl_matrix_char,
        src: *const gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_transpose_tricpy(
        Uplo_src: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        dest: *mut gsl_matrix_char,
        src: *const gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_max(m: *const gsl_matrix_char) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_matrix_char_min(m: *const gsl_matrix_char) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_matrix_char_minmax(
        m: *const gsl_matrix_char,
        min_out: *mut ::std::os::raw::c_char,
        max_out: *mut ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn gsl_matrix_char_max_index(m: *const gsl_matrix_char, imax: *mut usize, jmax: *mut usize);
}
extern "C" {
    pub fn gsl_matrix_char_min_index(m: *const gsl_matrix_char, imin: *mut usize, jmin: *mut usize);
}
extern "C" {
    pub fn gsl_matrix_char_minmax_index(
        m: *const gsl_matrix_char,
        imin: *mut usize,
        jmin: *mut usize,
        imax: *mut usize,
        jmax: *mut usize,
    );
}
extern "C" {
    pub fn gsl_matrix_char_equal(
        a: *const gsl_matrix_char,
        b: *const gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_isnull(m: *const gsl_matrix_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_ispos(m: *const gsl_matrix_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_isneg(m: *const gsl_matrix_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_isnonneg(m: *const gsl_matrix_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_norm1(m: *const gsl_matrix_char) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_matrix_char_add(
        a: *mut gsl_matrix_char,
        b: *const gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_sub(
        a: *mut gsl_matrix_char,
        b: *const gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_mul_elements(
        a: *mut gsl_matrix_char,
        b: *const gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_div_elements(
        a: *mut gsl_matrix_char,
        b: *const gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_scale(
        a: *mut gsl_matrix_char,
        x: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_scale_rows(
        a: *mut gsl_matrix_char,
        x: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_scale_columns(
        a: *mut gsl_matrix_char,
        x: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_add_constant(
        a: *mut gsl_matrix_char,
        x: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_add_diagonal(
        a: *mut gsl_matrix_char,
        x: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_get_row(
        v: *mut gsl_vector_char,
        m: *const gsl_matrix_char,
        i: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_get_col(
        v: *mut gsl_vector_char,
        m: *const gsl_matrix_char,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_set_row(
        m: *mut gsl_matrix_char,
        i: usize,
        v: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_set_col(
        m: *mut gsl_matrix_char,
        j: usize,
        v: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_matrix_char_get(
        m: *const gsl_matrix_char,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_matrix_char_set(
        m: *mut gsl_matrix_char,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn gsl_matrix_char_ptr(
        m: *mut gsl_matrix_char,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_matrix_char_const_ptr(
        m: *const gsl_matrix_char,
        i: usize,
        j: usize,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_blas_sdsdot(
        alpha: f32,
        X: *const gsl_vector_float,
        Y: *const gsl_vector_float,
        result: *mut f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dsdot(
        X: *const gsl_vector_float,
        Y: *const gsl_vector_float,
        result: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_sdot(
        X: *const gsl_vector_float,
        Y: *const gsl_vector_float,
        result: *mut f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ddot(
        X: *const gsl_vector,
        Y: *const gsl_vector,
        result: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_cdotu(
        X: *const gsl_vector_complex_float,
        Y: *const gsl_vector_complex_float,
        dotu: *mut gsl_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_cdotc(
        X: *const gsl_vector_complex_float,
        Y: *const gsl_vector_complex_float,
        dotc: *mut gsl_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zdotu(
        X: *const gsl_vector_complex,
        Y: *const gsl_vector_complex,
        dotu: *mut gsl_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zdotc(
        X: *const gsl_vector_complex,
        Y: *const gsl_vector_complex,
        dotc: *mut gsl_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_snrm2(X: *const gsl_vector_float) -> f32;
}
extern "C" {
    pub fn gsl_blas_sasum(X: *const gsl_vector_float) -> f32;
}
extern "C" {
    pub fn gsl_blas_dnrm2(X: *const gsl_vector) -> f64;
}
extern "C" {
    pub fn gsl_blas_dasum(X: *const gsl_vector) -> f64;
}
extern "C" {
    pub fn gsl_blas_scnrm2(X: *const gsl_vector_complex_float) -> f32;
}
extern "C" {
    pub fn gsl_blas_scasum(X: *const gsl_vector_complex_float) -> f32;
}
extern "C" {
    pub fn gsl_blas_dznrm2(X: *const gsl_vector_complex) -> f64;
}
extern "C" {
    pub fn gsl_blas_dzasum(X: *const gsl_vector_complex) -> f64;
}
extern "C" {
    pub fn gsl_blas_isamax(X: *const gsl_vector_float) -> CBLAS_INDEX_t;
}
extern "C" {
    pub fn gsl_blas_idamax(X: *const gsl_vector) -> CBLAS_INDEX_t;
}
extern "C" {
    pub fn gsl_blas_icamax(X: *const gsl_vector_complex_float) -> CBLAS_INDEX_t;
}
extern "C" {
    pub fn gsl_blas_izamax(X: *const gsl_vector_complex) -> CBLAS_INDEX_t;
}
extern "C" {
    pub fn gsl_blas_sswap(
        X: *mut gsl_vector_float,
        Y: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_scopy(
        X: *const gsl_vector_float,
        Y: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_saxpy(
        alpha: f32,
        X: *const gsl_vector_float,
        Y: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dswap(X: *mut gsl_vector, Y: *mut gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dcopy(X: *const gsl_vector, Y: *mut gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_daxpy(
        alpha: f64,
        X: *const gsl_vector,
        Y: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_cswap(
        X: *mut gsl_vector_complex_float,
        Y: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ccopy(
        X: *const gsl_vector_complex_float,
        Y: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_caxpy(
        alpha: gsl_complex_float,
        X: *const gsl_vector_complex_float,
        Y: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zswap(
        X: *mut gsl_vector_complex,
        Y: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zcopy(
        X: *const gsl_vector_complex,
        Y: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zaxpy(
        alpha: gsl_complex,
        X: *const gsl_vector_complex,
        Y: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_srotg(
        a: *mut f32,
        b: *mut f32,
        c: *mut f32,
        s: *mut f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_srotmg(
        d1: *mut f32,
        d2: *mut f32,
        b1: *mut f32,
        b2: f32,
        P: *mut f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_srot(
        X: *mut gsl_vector_float,
        Y: *mut gsl_vector_float,
        c: f32,
        s: f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_srotm(
        X: *mut gsl_vector_float,
        Y: *mut gsl_vector_float,
        P: *const f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_drotg(
        a: *mut f64,
        b: *mut f64,
        c: *mut f64,
        s: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_drotmg(
        d1: *mut f64,
        d2: *mut f64,
        b1: *mut f64,
        b2: f64,
        P: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_drot(
        X: *mut gsl_vector,
        Y: *mut gsl_vector,
        c: f64,
        s: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_drotm(
        X: *mut gsl_vector,
        Y: *mut gsl_vector,
        P: *const f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_sscal(alpha: f32, X: *mut gsl_vector_float);
}
extern "C" {
    pub fn gsl_blas_dscal(alpha: f64, X: *mut gsl_vector);
}
extern "C" {
    pub fn gsl_blas_cscal(alpha: gsl_complex_float, X: *mut gsl_vector_complex_float);
}
extern "C" {
    pub fn gsl_blas_zscal(alpha: gsl_complex, X: *mut gsl_vector_complex);
}
extern "C" {
    pub fn gsl_blas_csscal(alpha: f32, X: *mut gsl_vector_complex_float);
}
extern "C" {
    pub fn gsl_blas_zdscal(alpha: f64, X: *mut gsl_vector_complex);
}
extern "C" {
    pub fn gsl_blas_sgemv(
        TransA: CBLAS_TRANSPOSE_t,
        alpha: f32,
        A: *const gsl_matrix_float,
        X: *const gsl_vector_float,
        beta: f32,
        Y: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_strmv(
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        A: *const gsl_matrix_float,
        X: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_strsv(
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        A: *const gsl_matrix_float,
        X: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dgemv(
        TransA: CBLAS_TRANSPOSE_t,
        alpha: f64,
        A: *const gsl_matrix,
        X: *const gsl_vector,
        beta: f64,
        Y: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dtrmv(
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        A: *const gsl_matrix,
        X: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dtrsv(
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        A: *const gsl_matrix,
        X: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_cgemv(
        TransA: CBLAS_TRANSPOSE_t,
        alpha: gsl_complex_float,
        A: *const gsl_matrix_complex_float,
        X: *const gsl_vector_complex_float,
        beta: gsl_complex_float,
        Y: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ctrmv(
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        A: *const gsl_matrix_complex_float,
        X: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ctrsv(
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        A: *const gsl_matrix_complex_float,
        X: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zgemv(
        TransA: CBLAS_TRANSPOSE_t,
        alpha: gsl_complex,
        A: *const gsl_matrix_complex,
        X: *const gsl_vector_complex,
        beta: gsl_complex,
        Y: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ztrmv(
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        A: *const gsl_matrix_complex,
        X: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ztrsv(
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        A: *const gsl_matrix_complex,
        X: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ssymv(
        Uplo: CBLAS_UPLO_t,
        alpha: f32,
        A: *const gsl_matrix_float,
        X: *const gsl_vector_float,
        beta: f32,
        Y: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_sger(
        alpha: f32,
        X: *const gsl_vector_float,
        Y: *const gsl_vector_float,
        A: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ssyr(
        Uplo: CBLAS_UPLO_t,
        alpha: f32,
        X: *const gsl_vector_float,
        A: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ssyr2(
        Uplo: CBLAS_UPLO_t,
        alpha: f32,
        X: *const gsl_vector_float,
        Y: *const gsl_vector_float,
        A: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dsymv(
        Uplo: CBLAS_UPLO_t,
        alpha: f64,
        A: *const gsl_matrix,
        X: *const gsl_vector,
        beta: f64,
        Y: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dger(
        alpha: f64,
        X: *const gsl_vector,
        Y: *const gsl_vector,
        A: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dsyr(
        Uplo: CBLAS_UPLO_t,
        alpha: f64,
        X: *const gsl_vector,
        A: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dsyr2(
        Uplo: CBLAS_UPLO_t,
        alpha: f64,
        X: *const gsl_vector,
        Y: *const gsl_vector,
        A: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_chemv(
        Uplo: CBLAS_UPLO_t,
        alpha: gsl_complex_float,
        A: *const gsl_matrix_complex_float,
        X: *const gsl_vector_complex_float,
        beta: gsl_complex_float,
        Y: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_cgeru(
        alpha: gsl_complex_float,
        X: *const gsl_vector_complex_float,
        Y: *const gsl_vector_complex_float,
        A: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_cgerc(
        alpha: gsl_complex_float,
        X: *const gsl_vector_complex_float,
        Y: *const gsl_vector_complex_float,
        A: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_cher(
        Uplo: CBLAS_UPLO_t,
        alpha: f32,
        X: *const gsl_vector_complex_float,
        A: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_cher2(
        Uplo: CBLAS_UPLO_t,
        alpha: gsl_complex_float,
        X: *const gsl_vector_complex_float,
        Y: *const gsl_vector_complex_float,
        A: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zhemv(
        Uplo: CBLAS_UPLO_t,
        alpha: gsl_complex,
        A: *const gsl_matrix_complex,
        X: *const gsl_vector_complex,
        beta: gsl_complex,
        Y: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zgeru(
        alpha: gsl_complex,
        X: *const gsl_vector_complex,
        Y: *const gsl_vector_complex,
        A: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zgerc(
        alpha: gsl_complex,
        X: *const gsl_vector_complex,
        Y: *const gsl_vector_complex,
        A: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zher(
        Uplo: CBLAS_UPLO_t,
        alpha: f64,
        X: *const gsl_vector_complex,
        A: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zher2(
        Uplo: CBLAS_UPLO_t,
        alpha: gsl_complex,
        X: *const gsl_vector_complex,
        Y: *const gsl_vector_complex,
        A: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_sgemm(
        TransA: CBLAS_TRANSPOSE_t,
        TransB: CBLAS_TRANSPOSE_t,
        alpha: f32,
        A: *const gsl_matrix_float,
        B: *const gsl_matrix_float,
        beta: f32,
        C: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ssymm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        alpha: f32,
        A: *const gsl_matrix_float,
        B: *const gsl_matrix_float,
        beta: f32,
        C: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ssyrk(
        Uplo: CBLAS_UPLO_t,
        Trans: CBLAS_TRANSPOSE_t,
        alpha: f32,
        A: *const gsl_matrix_float,
        beta: f32,
        C: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ssyr2k(
        Uplo: CBLAS_UPLO_t,
        Trans: CBLAS_TRANSPOSE_t,
        alpha: f32,
        A: *const gsl_matrix_float,
        B: *const gsl_matrix_float,
        beta: f32,
        C: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_strmm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        alpha: f32,
        A: *const gsl_matrix_float,
        B: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_strsm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        alpha: f32,
        A: *const gsl_matrix_float,
        B: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dgemm(
        TransA: CBLAS_TRANSPOSE_t,
        TransB: CBLAS_TRANSPOSE_t,
        alpha: f64,
        A: *const gsl_matrix,
        B: *const gsl_matrix,
        beta: f64,
        C: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dsymm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        alpha: f64,
        A: *const gsl_matrix,
        B: *const gsl_matrix,
        beta: f64,
        C: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dsyrk(
        Uplo: CBLAS_UPLO_t,
        Trans: CBLAS_TRANSPOSE_t,
        alpha: f64,
        A: *const gsl_matrix,
        beta: f64,
        C: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dsyr2k(
        Uplo: CBLAS_UPLO_t,
        Trans: CBLAS_TRANSPOSE_t,
        alpha: f64,
        A: *const gsl_matrix,
        B: *const gsl_matrix,
        beta: f64,
        C: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dtrmm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        alpha: f64,
        A: *const gsl_matrix,
        B: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_dtrsm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        alpha: f64,
        A: *const gsl_matrix,
        B: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_cgemm(
        TransA: CBLAS_TRANSPOSE_t,
        TransB: CBLAS_TRANSPOSE_t,
        alpha: gsl_complex_float,
        A: *const gsl_matrix_complex_float,
        B: *const gsl_matrix_complex_float,
        beta: gsl_complex_float,
        C: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_csymm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        alpha: gsl_complex_float,
        A: *const gsl_matrix_complex_float,
        B: *const gsl_matrix_complex_float,
        beta: gsl_complex_float,
        C: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_csyrk(
        Uplo: CBLAS_UPLO_t,
        Trans: CBLAS_TRANSPOSE_t,
        alpha: gsl_complex_float,
        A: *const gsl_matrix_complex_float,
        beta: gsl_complex_float,
        C: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_csyr2k(
        Uplo: CBLAS_UPLO_t,
        Trans: CBLAS_TRANSPOSE_t,
        alpha: gsl_complex_float,
        A: *const gsl_matrix_complex_float,
        B: *const gsl_matrix_complex_float,
        beta: gsl_complex_float,
        C: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ctrmm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        alpha: gsl_complex_float,
        A: *const gsl_matrix_complex_float,
        B: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ctrsm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        alpha: gsl_complex_float,
        A: *const gsl_matrix_complex_float,
        B: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zgemm(
        TransA: CBLAS_TRANSPOSE_t,
        TransB: CBLAS_TRANSPOSE_t,
        alpha: gsl_complex,
        A: *const gsl_matrix_complex,
        B: *const gsl_matrix_complex,
        beta: gsl_complex,
        C: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zsymm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        alpha: gsl_complex,
        A: *const gsl_matrix_complex,
        B: *const gsl_matrix_complex,
        beta: gsl_complex,
        C: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zsyrk(
        Uplo: CBLAS_UPLO_t,
        Trans: CBLAS_TRANSPOSE_t,
        alpha: gsl_complex,
        A: *const gsl_matrix_complex,
        beta: gsl_complex,
        C: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zsyr2k(
        Uplo: CBLAS_UPLO_t,
        Trans: CBLAS_TRANSPOSE_t,
        alpha: gsl_complex,
        A: *const gsl_matrix_complex,
        B: *const gsl_matrix_complex,
        beta: gsl_complex,
        C: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ztrmm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        alpha: gsl_complex,
        A: *const gsl_matrix_complex,
        B: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_ztrsm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        TransA: CBLAS_TRANSPOSE_t,
        Diag: CBLAS_DIAG_t,
        alpha: gsl_complex,
        A: *const gsl_matrix_complex,
        B: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_chemm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        alpha: gsl_complex_float,
        A: *const gsl_matrix_complex_float,
        B: *const gsl_matrix_complex_float,
        beta: gsl_complex_float,
        C: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_cherk(
        Uplo: CBLAS_UPLO_t,
        Trans: CBLAS_TRANSPOSE_t,
        alpha: f32,
        A: *const gsl_matrix_complex_float,
        beta: f32,
        C: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_cher2k(
        Uplo: CBLAS_UPLO_t,
        Trans: CBLAS_TRANSPOSE_t,
        alpha: gsl_complex_float,
        A: *const gsl_matrix_complex_float,
        B: *const gsl_matrix_complex_float,
        beta: f32,
        C: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zhemm(
        Side: CBLAS_SIDE_t,
        Uplo: CBLAS_UPLO_t,
        alpha: gsl_complex,
        A: *const gsl_matrix_complex,
        B: *const gsl_matrix_complex,
        beta: gsl_complex,
        C: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zherk(
        Uplo: CBLAS_UPLO_t,
        Trans: CBLAS_TRANSPOSE_t,
        alpha: f64,
        A: *const gsl_matrix_complex,
        beta: f64,
        C: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_blas_zher2k(
        Uplo: CBLAS_UPLO_t,
        Trans: CBLAS_TRANSPOSE_t,
        alpha: gsl_complex,
        A: *const gsl_matrix_complex,
        B: *const gsl_matrix_complex,
        beta: f64,
        C: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_log1p(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_expm1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_hypot(x: f64, y: f64) -> f64;
}
extern "C" {
    pub fn gsl_hypot3(x: f64, y: f64, z: f64) -> f64;
}
extern "C" {
    pub fn gsl_acosh(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_asinh(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_atanh(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_isnan(x: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_isinf(x: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_finite(x: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_nan() -> f64;
}
extern "C" {
    pub fn gsl_posinf() -> f64;
}
extern "C" {
    pub fn gsl_neginf() -> f64;
}
extern "C" {
    pub fn gsl_fdiv(x: f64, y: f64) -> f64;
}
extern "C" {
    pub fn gsl_coerce_double(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_coerce_float(x: f32) -> f32;
}
extern "C" {
    pub fn gsl_coerce_long_double(x: u128) -> u128;
}
extern "C" {
    pub fn gsl_ldexp(x: f64, e: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_frexp(x: f64, e: *mut ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_fcmp(x1: f64, x2: f64, epsilon: f64) -> ::std::os::raw::c_int;
}
pub type gsl_prec_t = ::std::os::raw::c_uint;
extern "C" {
    pub static mut gsl_prec_eps: [f64; 0usize];
}
extern "C" {
    pub static mut gsl_prec_sqrt_eps: [f64; 0usize];
}
extern "C" {
    pub static mut gsl_prec_root3_eps: [f64; 0usize];
}
extern "C" {
    pub static mut gsl_prec_root4_eps: [f64; 0usize];
}
extern "C" {
    pub static mut gsl_prec_root5_eps: [f64; 0usize];
}
extern "C" {
    pub static mut gsl_prec_root6_eps: [f64; 0usize];
}
extern "C" {
    pub fn gsl_pow_2(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_pow_3(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_pow_4(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_pow_5(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_pow_6(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_pow_7(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_pow_8(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_pow_9(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_pow_int(x: f64, n: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_pow_uint(x: f64, n: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_max(a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_min(a: f64, b: f64) -> f64;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_function_struct {
    pub function: ::std::option::Option<
        unsafe extern "C" fn(x: f64, params: *mut ::std::os::raw::c_void) -> f64,
    >,
    pub params: *mut ::std::os::raw::c_void,
}
pub type gsl_function = gsl_function_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_function_fdf_struct {
    pub f: ::std::option::Option<
        unsafe extern "C" fn(x: f64, params: *mut ::std::os::raw::c_void) -> f64,
    >,
    pub df: ::std::option::Option<
        unsafe extern "C" fn(x: f64, params: *mut ::std::os::raw::c_void) -> f64,
    >,
    pub fdf: ::std::option::Option<
        unsafe extern "C" fn(
            x: f64,
            params: *mut ::std::os::raw::c_void,
            f: *mut f64,
            df: *mut f64,
        ),
    >,
    pub params: *mut ::std::os::raw::c_void,
}
pub type gsl_function_fdf = gsl_function_fdf_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_function_vec_struct;
pub type gsl_function_vec = gsl_function_vec_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_bspline_workspace;
extern "C" {
    pub fn gsl_bspline_alloc(k: usize, nbreak: usize) -> *mut gsl_bspline_workspace;
}
extern "C" {
    pub fn gsl_bspline_free(w: *mut gsl_bspline_workspace);
}
extern "C" {
    pub fn gsl_bspline_ncoeffs(w: *mut gsl_bspline_workspace) -> usize;
}
extern "C" {
    pub fn gsl_bspline_order(w: *mut gsl_bspline_workspace) -> usize;
}
extern "C" {
    pub fn gsl_bspline_nbreak(w: *mut gsl_bspline_workspace) -> usize;
}
extern "C" {
    pub fn gsl_bspline_breakpoint(i: usize, w: *mut gsl_bspline_workspace) -> f64;
}
extern "C" {
    pub fn gsl_bspline_greville_abscissa(i: usize, w: *mut gsl_bspline_workspace) -> f64;
}
extern "C" {
    pub fn gsl_bspline_knots(
        breakpts: *const gsl_vector,
        w: *mut gsl_bspline_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_bspline_knots_uniform(
        a: f64,
        b: f64,
        w: *mut gsl_bspline_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_bspline_knots_greville(
        abscissae: *const gsl_vector,
        w: *mut gsl_bspline_workspace,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_bspline_eval(
        x: f64,
        B: *mut gsl_vector,
        w: *mut gsl_bspline_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_bspline_eval_nonzero(
        x: f64,
        Bk: *mut gsl_vector,
        istart: *mut usize,
        iend: *mut usize,
        w: *mut gsl_bspline_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_bspline_deriv_eval(
        x: f64,
        nderiv: usize,
        dB: *mut gsl_matrix,
        w: *mut gsl_bspline_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_bspline_deriv_eval_nonzero(
        x: f64,
        nderiv: usize,
        dB: *mut gsl_matrix,
        istart: *mut usize,
        iend: *mut usize,
        w: *mut gsl_bspline_workspace,
    ) -> ::std::os::raw::c_int;
}
#[cfg(feature = "v2_6")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
pub type gsl_bst_cmp_function = ::std::option::Option<
    unsafe extern "C" fn(
        a: *const ::std::os::raw::c_void,
        b: *const ::std::os::raw::c_void,
        params: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_6")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
pub struct gsl_bst_allocator;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_6")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
pub struct gsl_bst_avl_node;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_6")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
pub struct gsl_bst_avl_table;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_6")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
pub struct gsl_bst_avl_traverser;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_6")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
pub struct gsl_bst_rb_node;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_6")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
pub struct gsl_bst_rb_table;
#[repr(C)]
#[derive(Copy, Clone)]
#[cfg(feature = "v2_6")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
pub struct gsl_bst_rb_traverser;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_6")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
pub struct gsl_bst_type;
#[repr(C)]
#[derive(Copy, Clone)]
#[cfg(feature = "v2_6")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
pub struct gsl_bst_workspace;
#[repr(C)]
#[derive(Copy, Clone)]
#[cfg(feature = "v2_6")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
pub struct gsl_bst_trav;
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub static mut gsl_bst_avl: *const gsl_bst_type;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub static mut gsl_bst_rb: *const gsl_bst_type;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_alloc(
        T: *const gsl_bst_type,
        allocator: *const gsl_bst_allocator,
        compare: gsl_bst_cmp_function,
        params: *mut ::std::os::raw::c_void,
    ) -> *mut gsl_bst_workspace;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_free(w: *mut gsl_bst_workspace);
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_empty(w: *mut gsl_bst_workspace) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_insert(
        item: *mut ::std::os::raw::c_void,
        w: *mut gsl_bst_workspace,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_find(
        item: *const ::std::os::raw::c_void,
        w: *const gsl_bst_workspace,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_remove(
        item: *const ::std::os::raw::c_void,
        w: *mut gsl_bst_workspace,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_nodes(w: *const gsl_bst_workspace) -> usize;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_node_size(w: *const gsl_bst_workspace) -> usize;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_name(w: *const gsl_bst_workspace) -> *const ::std::os::raw::c_char;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_trav_init(
        trav: *mut gsl_bst_trav,
        w: *const gsl_bst_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_trav_first(
        trav: *mut gsl_bst_trav,
        w: *const gsl_bst_workspace,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_trav_last(
        trav: *mut gsl_bst_trav,
        w: *const gsl_bst_workspace,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_trav_find(
        item: *const ::std::os::raw::c_void,
        trav: *mut gsl_bst_trav,
        w: *const gsl_bst_workspace,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_trav_insert(
        item: *mut ::std::os::raw::c_void,
        trav: *mut gsl_bst_trav,
        w: *mut gsl_bst_workspace,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_trav_copy(
        dest: *mut gsl_bst_trav,
        src: *const gsl_bst_trav,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_trav_next(trav: *mut gsl_bst_trav) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_trav_prev(trav: *mut gsl_bst_trav) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_trav_cur(trav: *const gsl_bst_trav) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_bst_trav_replace(
        trav: *mut gsl_bst_trav,
        new_item: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn gsl_cdf_ugaussian_P(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_ugaussian_Q(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_ugaussian_Pinv(P: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_ugaussian_Qinv(Q: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gaussian_P(x: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gaussian_Q(x: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gaussian_Pinv(P: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gaussian_Qinv(Q: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gamma_P(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gamma_Q(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gamma_Pinv(P: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gamma_Qinv(Q: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_cauchy_P(x: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_cauchy_Q(x: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_cauchy_Pinv(P: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_cauchy_Qinv(Q: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_laplace_P(x: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_laplace_Q(x: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_laplace_Pinv(P: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_laplace_Qinv(Q: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_rayleigh_P(x: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_rayleigh_Q(x: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_rayleigh_Pinv(P: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_rayleigh_Qinv(Q: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_chisq_P(x: f64, nu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_chisq_Q(x: f64, nu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_chisq_Pinv(P: f64, nu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_chisq_Qinv(Q: f64, nu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_exponential_P(x: f64, mu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_exponential_Q(x: f64, mu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_exponential_Pinv(P: f64, mu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_exponential_Qinv(Q: f64, mu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_exppow_P(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_exppow_Q(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_tdist_P(x: f64, nu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_tdist_Q(x: f64, nu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_tdist_Pinv(P: f64, nu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_tdist_Qinv(Q: f64, nu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_fdist_P(x: f64, nu1: f64, nu2: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_fdist_Q(x: f64, nu1: f64, nu2: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_fdist_Pinv(P: f64, nu1: f64, nu2: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_fdist_Qinv(Q: f64, nu1: f64, nu2: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_beta_P(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_beta_Q(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_beta_Pinv(P: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_beta_Qinv(Q: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_flat_P(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_flat_Q(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_flat_Pinv(P: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_flat_Qinv(Q: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_lognormal_P(x: f64, zeta: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_lognormal_Q(x: f64, zeta: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_lognormal_Pinv(P: f64, zeta: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_lognormal_Qinv(Q: f64, zeta: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gumbel1_P(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gumbel1_Q(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gumbel1_Pinv(P: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gumbel1_Qinv(Q: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gumbel2_P(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gumbel2_Q(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gumbel2_Pinv(P: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_gumbel2_Qinv(Q: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_weibull_P(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_weibull_Q(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_weibull_Pinv(P: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_weibull_Qinv(Q: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_pareto_P(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_pareto_Q(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_pareto_Pinv(P: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_pareto_Qinv(Q: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_logistic_P(x: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_logistic_Q(x: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_logistic_Pinv(P: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_logistic_Qinv(Q: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_binomial_P(k: ::std::os::raw::c_uint, p: f64, n: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_cdf_binomial_Q(k: ::std::os::raw::c_uint, p: f64, n: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_cdf_poisson_P(k: ::std::os::raw::c_uint, mu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_poisson_Q(k: ::std::os::raw::c_uint, mu: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_geometric_P(k: ::std::os::raw::c_uint, p: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_geometric_Q(k: ::std::os::raw::c_uint, p: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_negative_binomial_P(k: ::std::os::raw::c_uint, p: f64, n: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_negative_binomial_Q(k: ::std::os::raw::c_uint, p: f64, n: f64) -> f64;
}
extern "C" {
    pub fn gsl_cdf_pascal_P(k: ::std::os::raw::c_uint, p: f64, n: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_cdf_pascal_Q(k: ::std::os::raw::c_uint, p: f64, n: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_cdf_hypergeometric_P(
        k: ::std::os::raw::c_uint,
        n1: ::std::os::raw::c_uint,
        n2: ::std::os::raw::c_uint,
        t: ::std::os::raw::c_uint,
    ) -> f64;
}
extern "C" {
    pub fn gsl_cdf_hypergeometric_Q(
        k: ::std::os::raw::c_uint,
        n1: ::std::os::raw::c_uint,
        n2: ::std::os::raw::c_uint,
        t: ::std::os::raw::c_uint,
    ) -> f64;
}
pub type gsl_mode_t = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_cheb_series_struct;
pub type gsl_cheb_series = gsl_cheb_series_struct;
extern "C" {
    pub fn gsl_cheb_alloc(order: usize) -> *mut gsl_cheb_series;
}
extern "C" {
    pub fn gsl_cheb_free(cs: *mut gsl_cheb_series);
}
extern "C" {
    pub fn gsl_cheb_init(
        cs: *mut gsl_cheb_series,
        func: *const gsl_function,
        a: f64,
        b: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_cheb_order(cs: *const gsl_cheb_series) -> usize;
}
extern "C" {
    pub fn gsl_cheb_size(cs: *const gsl_cheb_series) -> usize;
}
extern "C" {
    pub fn gsl_cheb_coeffs(cs: *const gsl_cheb_series) -> *mut f64;
}
extern "C" {
    pub fn gsl_cheb_eval(cs: *const gsl_cheb_series, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_cheb_eval_err(
        cs: *const gsl_cheb_series,
        x: f64,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_cheb_eval_n(cs: *const gsl_cheb_series, order: usize, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_cheb_eval_n_err(
        cs: *const gsl_cheb_series,
        order: usize,
        x: f64,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_cheb_eval_mode(cs: *const gsl_cheb_series, x: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_cheb_eval_mode_e(
        cs: *const gsl_cheb_series,
        x: f64,
        mode: gsl_mode_t,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_cheb_calc_deriv(
        deriv: *mut gsl_cheb_series,
        cs: *const gsl_cheb_series,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_cheb_calc_integ(
        integ: *mut gsl_cheb_series,
        cs: *const gsl_cheb_series,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_combination_struct {
    pub n: usize,
    pub k: usize,
    pub data: *mut usize,
}
pub type gsl_combination = gsl_combination_struct;
extern "C" {
    pub fn gsl_combination_alloc(n: usize, k: usize) -> *mut gsl_combination;
}
extern "C" {
    pub fn gsl_combination_calloc(n: usize, k: usize) -> *mut gsl_combination;
}
extern "C" {
    pub fn gsl_combination_init_first(c: *mut gsl_combination);
}
extern "C" {
    pub fn gsl_combination_init_last(c: *mut gsl_combination);
}
extern "C" {
    pub fn gsl_combination_free(c: *mut gsl_combination);
}
extern "C" {
    pub fn gsl_combination_memcpy(
        dest: *mut gsl_combination,
        src: *const gsl_combination,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_combination_fread(
        stream: *mut FILE,
        c: *mut gsl_combination,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_combination_fwrite(
        stream: *mut FILE,
        c: *const gsl_combination,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_combination_fscanf(
        stream: *mut FILE,
        c: *mut gsl_combination,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_combination_fprintf(
        stream: *mut FILE,
        c: *const gsl_combination,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_combination_n(c: *const gsl_combination) -> usize;
}
extern "C" {
    pub fn gsl_combination_k(c: *const gsl_combination) -> usize;
}
extern "C" {
    pub fn gsl_combination_data(c: *const gsl_combination) -> *mut usize;
}
extern "C" {
    pub fn gsl_combination_valid(c: *mut gsl_combination) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_combination_next(c: *mut gsl_combination) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_combination_prev(c: *mut gsl_combination) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_combination_get(c: *const gsl_combination, i: usize) -> usize;
}
extern "C" {
    pub fn gsl_complex_polar(r: f64, theta: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_rect(x: f64, y: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arg(z: gsl_complex) -> f64;
}
extern "C" {
    pub fn gsl_complex_abs(z: gsl_complex) -> f64;
}
extern "C" {
    pub fn gsl_complex_abs2(z: gsl_complex) -> f64;
}
extern "C" {
    pub fn gsl_complex_logabs(z: gsl_complex) -> f64;
}
extern "C" {
    pub fn gsl_complex_add(a: gsl_complex, b: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_sub(a: gsl_complex, b: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_mul(a: gsl_complex, b: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_div(a: gsl_complex, b: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_add_real(a: gsl_complex, x: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_sub_real(a: gsl_complex, x: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_mul_real(a: gsl_complex, x: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_div_real(a: gsl_complex, x: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_add_imag(a: gsl_complex, y: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_sub_imag(a: gsl_complex, y: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_mul_imag(a: gsl_complex, y: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_div_imag(a: gsl_complex, y: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_conjugate(z: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_inverse(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_negative(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_sqrt(z: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_sqrt_real(x: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_pow(a: gsl_complex, b: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_pow_real(a: gsl_complex, b: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_exp(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_log(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_log10(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_log_b(a: gsl_complex, b: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_sin(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_cos(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_sec(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_csc(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_tan(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_cot(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arcsin(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arcsin_real(a: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arccos(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arccos_real(a: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arcsec(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arcsec_real(a: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arccsc(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arccsc_real(a: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arctan(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arccot(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_sinh(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_cosh(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_sech(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_csch(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_tanh(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_coth(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arcsinh(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arccosh(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arccosh_real(a: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arcsech(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arccsch(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arctanh(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arctanh_real(a: f64) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_arccoth(a: gsl_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_deriv_central(
        f: *const gsl_function,
        x: f64,
        h: f64,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_deriv_backward(
        f: *const gsl_function,
        x: f64,
        h: f64,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_deriv_forward(
        f: *const gsl_function,
        x: f64,
        h: f64,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
pub const gsl_fft_direction_gsl_fft_forward: gsl_fft_direction = -1;
pub const gsl_fft_direction_gsl_fft_backward: gsl_fft_direction = 1;
pub type gsl_fft_direction = ::std::os::raw::c_int;
extern "C" {
    pub fn gsl_dft_complex_forward(
        data: *const f64,
        stride: usize,
        n: usize,
        result: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_dft_complex_backward(
        data: *const f64,
        stride: usize,
        n: usize,
        result: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_dft_complex_inverse(
        data: *const f64,
        stride: usize,
        n: usize,
        result: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_dft_complex_transform(
        data: *const f64,
        stride: usize,
        n: usize,
        result: *mut f64,
        sign: gsl_fft_direction,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_dft_complex_float_forward(
        data: *const f32,
        stride: usize,
        n: usize,
        result: *mut f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_dft_complex_float_backward(
        data: *const f32,
        stride: usize,
        n: usize,
        result: *mut f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_dft_complex_float_inverse(
        data: *const f32,
        stride: usize,
        n: usize,
        result: *mut f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_dft_complex_float_transform(
        data: *const f32,
        stride: usize,
        n: usize,
        result: *mut f32,
        sign: gsl_fft_direction,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_dht_struct {
    pub size: usize,
    pub nu: f64,
    pub xmax: f64,
    pub kmax: f64,
    pub j: *mut f64,
    pub Jjj: *mut f64,
    pub J2: *mut f64,
}
pub type gsl_dht = gsl_dht_struct;
extern "C" {
    pub fn gsl_dht_alloc(size: usize) -> *mut gsl_dht;
}
extern "C" {
    pub fn gsl_dht_new(size: usize, nu: f64, xmax: f64) -> *mut gsl_dht;
}
extern "C" {
    pub fn gsl_dht_init(t: *mut gsl_dht, nu: f64, xmax: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_dht_x_sample(t: *const gsl_dht, n: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_dht_k_sample(t: *const gsl_dht, n: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_dht_free(t: *mut gsl_dht);
}
extern "C" {
    pub fn gsl_dht_apply(
        t: *const gsl_dht,
        f_in: *mut f64,
        f_out: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_diff_central(
        f: *const gsl_function,
        x: f64,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_diff_backward(
        f: *const gsl_function,
        x: f64,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_diff_forward(
        f: *const gsl_function,
        x: f64,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_symm_workspace;
extern "C" {
    pub fn gsl_eigen_symm_alloc(n: usize) -> *mut gsl_eigen_symm_workspace;
}
extern "C" {
    pub fn gsl_eigen_symm_free(w: *mut gsl_eigen_symm_workspace);
}
extern "C" {
    pub fn gsl_eigen_symm(
        A: *mut gsl_matrix,
        eval: *mut gsl_vector,
        w: *mut gsl_eigen_symm_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_symmv_workspace;
extern "C" {
    pub fn gsl_eigen_symmv_alloc(n: usize) -> *mut gsl_eigen_symmv_workspace;
}
extern "C" {
    pub fn gsl_eigen_symmv_free(w: *mut gsl_eigen_symmv_workspace);
}
extern "C" {
    pub fn gsl_eigen_symmv(
        A: *mut gsl_matrix,
        eval: *mut gsl_vector,
        evec: *mut gsl_matrix,
        w: *mut gsl_eigen_symmv_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_herm_workspace;
extern "C" {
    pub fn gsl_eigen_herm_alloc(n: usize) -> *mut gsl_eigen_herm_workspace;
}
extern "C" {
    pub fn gsl_eigen_herm_free(w: *mut gsl_eigen_herm_workspace);
}
extern "C" {
    pub fn gsl_eigen_herm(
        A: *mut gsl_matrix_complex,
        eval: *mut gsl_vector,
        w: *mut gsl_eigen_herm_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_hermv_workspace;
extern "C" {
    pub fn gsl_eigen_hermv_alloc(n: usize) -> *mut gsl_eigen_hermv_workspace;
}
extern "C" {
    pub fn gsl_eigen_hermv_free(w: *mut gsl_eigen_hermv_workspace);
}
extern "C" {
    pub fn gsl_eigen_hermv(
        A: *mut gsl_matrix_complex,
        eval: *mut gsl_vector,
        evec: *mut gsl_matrix_complex,
        w: *mut gsl_eigen_hermv_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_francis_workspace;
extern "C" {
    pub fn gsl_eigen_francis_alloc() -> *mut gsl_eigen_francis_workspace;
}
extern "C" {
    pub fn gsl_eigen_francis_free(w: *mut gsl_eigen_francis_workspace);
}
extern "C" {
    pub fn gsl_eigen_francis_T(
        compute_t: ::std::os::raw::c_int,
        w: *mut gsl_eigen_francis_workspace,
    );
}
extern "C" {
    pub fn gsl_eigen_francis(
        H: *mut gsl_matrix,
        eval: *mut gsl_vector_complex,
        w: *mut gsl_eigen_francis_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_francis_Z(
        H: *mut gsl_matrix,
        eval: *mut gsl_vector_complex,
        Z: *mut gsl_matrix,
        w: *mut gsl_eigen_francis_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_nonsymm_workspace {
    pub size: usize,
    pub diag: *mut gsl_vector,
    pub tau: *mut gsl_vector,
    pub Z: *mut gsl_matrix,
    pub do_balance: ::std::os::raw::c_int,
    pub n_evals: usize,
    pub francis_workspace_p: *mut gsl_eigen_francis_workspace,
}
extern "C" {
    pub fn gsl_eigen_nonsymm_alloc(n: usize) -> *mut gsl_eigen_nonsymm_workspace;
}
extern "C" {
    pub fn gsl_eigen_nonsymm_free(w: *mut gsl_eigen_nonsymm_workspace);
}
extern "C" {
    pub fn gsl_eigen_nonsymm_params(
        compute_t: ::std::os::raw::c_int,
        balance: ::std::os::raw::c_int,
        w: *mut gsl_eigen_nonsymm_workspace,
    );
}
extern "C" {
    pub fn gsl_eigen_nonsymm(
        A: *mut gsl_matrix,
        eval: *mut gsl_vector_complex,
        w: *mut gsl_eigen_nonsymm_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_nonsymm_Z(
        A: *mut gsl_matrix,
        eval: *mut gsl_vector_complex,
        Z: *mut gsl_matrix,
        w: *mut gsl_eigen_nonsymm_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_nonsymmv_workspace;
extern "C" {
    pub fn gsl_eigen_nonsymmv_alloc(n: usize) -> *mut gsl_eigen_nonsymmv_workspace;
}
extern "C" {
    pub fn gsl_eigen_nonsymmv_free(w: *mut gsl_eigen_nonsymmv_workspace);
}
extern "C" {
    pub fn gsl_eigen_nonsymmv_params(
        balance: ::std::os::raw::c_int,
        w: *mut gsl_eigen_nonsymmv_workspace,
    );
}
extern "C" {
    pub fn gsl_eigen_nonsymmv(
        A: *mut gsl_matrix,
        eval: *mut gsl_vector_complex,
        evec: *mut gsl_matrix_complex,
        w: *mut gsl_eigen_nonsymmv_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_nonsymmv_Z(
        A: *mut gsl_matrix,
        eval: *mut gsl_vector_complex,
        evec: *mut gsl_matrix_complex,
        Z: *mut gsl_matrix,
        w: *mut gsl_eigen_nonsymmv_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_gensymm_workspace;
extern "C" {
    pub fn gsl_eigen_gensymm_alloc(n: usize) -> *mut gsl_eigen_gensymm_workspace;
}
extern "C" {
    pub fn gsl_eigen_gensymm_free(w: *mut gsl_eigen_gensymm_workspace);
}
extern "C" {
    pub fn gsl_eigen_gensymm(
        A: *mut gsl_matrix,
        B: *mut gsl_matrix,
        eval: *mut gsl_vector,
        w: *mut gsl_eigen_gensymm_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_gensymm_standardize(
        A: *mut gsl_matrix,
        B: *const gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_gensymmv_workspace;
extern "C" {
    pub fn gsl_eigen_gensymmv_alloc(n: usize) -> *mut gsl_eigen_gensymmv_workspace;
}
extern "C" {
    pub fn gsl_eigen_gensymmv_free(w: *mut gsl_eigen_gensymmv_workspace);
}
extern "C" {
    pub fn gsl_eigen_gensymmv(
        A: *mut gsl_matrix,
        B: *mut gsl_matrix,
        eval: *mut gsl_vector,
        evec: *mut gsl_matrix,
        w: *mut gsl_eigen_gensymmv_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_genherm_workspace;
extern "C" {
    pub fn gsl_eigen_genherm_alloc(n: usize) -> *mut gsl_eigen_genherm_workspace;
}
extern "C" {
    pub fn gsl_eigen_genherm_free(w: *mut gsl_eigen_genherm_workspace);
}
extern "C" {
    pub fn gsl_eigen_genherm(
        A: *mut gsl_matrix_complex,
        B: *mut gsl_matrix_complex,
        eval: *mut gsl_vector,
        w: *mut gsl_eigen_genherm_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_genherm_standardize(
        A: *mut gsl_matrix_complex,
        B: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_genhermv_workspace;
extern "C" {
    pub fn gsl_eigen_genhermv_alloc(n: usize) -> *mut gsl_eigen_genhermv_workspace;
}
extern "C" {
    pub fn gsl_eigen_genhermv_free(w: *mut gsl_eigen_genhermv_workspace);
}
extern "C" {
    pub fn gsl_eigen_genhermv(
        A: *mut gsl_matrix_complex,
        B: *mut gsl_matrix_complex,
        eval: *mut gsl_vector,
        evec: *mut gsl_matrix_complex,
        w: *mut gsl_eigen_genhermv_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_gen_workspace;
extern "C" {
    pub fn gsl_eigen_gen_alloc(n: usize) -> *mut gsl_eigen_gen_workspace;
}
extern "C" {
    pub fn gsl_eigen_gen_free(w: *mut gsl_eigen_gen_workspace);
}
extern "C" {
    pub fn gsl_eigen_gen_params(
        compute_s: ::std::os::raw::c_int,
        compute_t: ::std::os::raw::c_int,
        balance: ::std::os::raw::c_int,
        w: *mut gsl_eigen_gen_workspace,
    );
}
extern "C" {
    pub fn gsl_eigen_gen(
        A: *mut gsl_matrix,
        B: *mut gsl_matrix,
        alpha: *mut gsl_vector_complex,
        beta: *mut gsl_vector,
        w: *mut gsl_eigen_gen_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_gen_QZ(
        A: *mut gsl_matrix,
        B: *mut gsl_matrix,
        alpha: *mut gsl_vector_complex,
        beta: *mut gsl_vector,
        Q: *mut gsl_matrix,
        Z: *mut gsl_matrix,
        w: *mut gsl_eigen_gen_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_eigen_genv_workspace;
extern "C" {
    pub fn gsl_eigen_genv_alloc(n: usize) -> *mut gsl_eigen_genv_workspace;
}
extern "C" {
    pub fn gsl_eigen_genv_free(w: *mut gsl_eigen_genv_workspace);
}
extern "C" {
    pub fn gsl_eigen_genv(
        A: *mut gsl_matrix,
        B: *mut gsl_matrix,
        alpha: *mut gsl_vector_complex,
        beta: *mut gsl_vector,
        evec: *mut gsl_matrix_complex,
        w: *mut gsl_eigen_genv_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_genv_QZ(
        A: *mut gsl_matrix,
        B: *mut gsl_matrix,
        alpha: *mut gsl_vector_complex,
        beta: *mut gsl_vector,
        evec: *mut gsl_matrix_complex,
        Q: *mut gsl_matrix,
        Z: *mut gsl_matrix,
        w: *mut gsl_eigen_genv_workspace,
    ) -> ::std::os::raw::c_int;
}
pub const gsl_eigen_sort_t_GSL_EIGEN_SORT_VAL_ASC: gsl_eigen_sort_t = 0;
pub const gsl_eigen_sort_t_GSL_EIGEN_SORT_VAL_DESC: gsl_eigen_sort_t = 1;
pub const gsl_eigen_sort_t_GSL_EIGEN_SORT_ABS_ASC: gsl_eigen_sort_t = 2;
pub const gsl_eigen_sort_t_GSL_EIGEN_SORT_ABS_DESC: gsl_eigen_sort_t = 3;
pub type gsl_eigen_sort_t = ::std::os::raw::c_uint;
extern "C" {
    pub fn gsl_eigen_symmv_sort(
        eval: *mut gsl_vector,
        evec: *mut gsl_matrix,
        sort_type: gsl_eigen_sort_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_hermv_sort(
        eval: *mut gsl_vector,
        evec: *mut gsl_matrix_complex,
        sort_type: gsl_eigen_sort_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_nonsymmv_sort(
        eval: *mut gsl_vector_complex,
        evec: *mut gsl_matrix_complex,
        sort_type: gsl_eigen_sort_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_gensymmv_sort(
        eval: *mut gsl_vector,
        evec: *mut gsl_matrix,
        sort_type: gsl_eigen_sort_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_genhermv_sort(
        eval: *mut gsl_vector,
        evec: *mut gsl_matrix_complex,
        sort_type: gsl_eigen_sort_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_genv_sort(
        alpha: *mut gsl_vector_complex,
        beta: *mut gsl_vector,
        evec: *mut gsl_matrix_complex,
        sort_type: gsl_eigen_sort_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_schur_gen_eigvals(
        A: *const gsl_matrix,
        B: *const gsl_matrix,
        wr1: *mut f64,
        wr2: *mut f64,
        wi: *mut f64,
        scale1: *mut f64,
        scale2: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_schur_solve_equation(
        ca: f64,
        A: *const gsl_matrix,
        z: f64,
        d1: f64,
        d2: f64,
        b: *const gsl_vector,
        x: *mut gsl_vector,
        s: *mut f64,
        xnorm: *mut f64,
        smin: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_schur_solve_equation_z(
        ca: f64,
        A: *const gsl_matrix,
        z: *mut gsl_complex,
        d1: f64,
        d2: f64,
        b: *const gsl_vector_complex,
        x: *mut gsl_vector_complex,
        s: *mut f64,
        xnorm: *mut f64,
        smin: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_jacobi(
        matrix: *mut gsl_matrix,
        eval: *mut gsl_vector,
        evec: *mut gsl_matrix,
        max_rot: ::std::os::raw::c_uint,
        nrot: *mut ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_eigen_invert_jacobi(
        matrix: *const gsl_matrix,
        ainv: *mut gsl_matrix,
        max_rot: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_radix2_forward(
        data: gsl_complex_packed_array,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_radix2_backward(
        data: gsl_complex_packed_array,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_radix2_inverse(
        data: gsl_complex_packed_array,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_radix2_transform(
        data: gsl_complex_packed_array,
        stride: usize,
        n: usize,
        sign: gsl_fft_direction,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_radix2_dif_forward(
        data: gsl_complex_packed_array,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_radix2_dif_backward(
        data: gsl_complex_packed_array,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_radix2_dif_inverse(
        data: gsl_complex_packed_array,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_radix2_dif_transform(
        data: gsl_complex_packed_array,
        stride: usize,
        n: usize,
        sign: gsl_fft_direction,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_fft_complex_wavetable {
    pub n: usize,
    pub nf: usize,
    pub factor: [usize; 64usize],
    pub twiddle: [*mut gsl_complex; 64usize],
    pub trig: *mut gsl_complex,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_fft_complex_workspace;
extern "C" {
    pub fn gsl_fft_complex_wavetable_alloc(n: usize) -> *mut gsl_fft_complex_wavetable;
}
extern "C" {
    pub fn gsl_fft_complex_wavetable_free(wavetable: *mut gsl_fft_complex_wavetable);
}
extern "C" {
    pub fn gsl_fft_complex_workspace_alloc(n: usize) -> *mut gsl_fft_complex_workspace;
}
extern "C" {
    pub fn gsl_fft_complex_workspace_free(workspace: *mut gsl_fft_complex_workspace);
}
extern "C" {
    pub fn gsl_fft_complex_memcpy(
        dest: *mut gsl_fft_complex_wavetable,
        src: *mut gsl_fft_complex_wavetable,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_forward(
        data: gsl_complex_packed_array,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_complex_wavetable,
        work: *mut gsl_fft_complex_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_backward(
        data: gsl_complex_packed_array,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_complex_wavetable,
        work: *mut gsl_fft_complex_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_inverse(
        data: gsl_complex_packed_array,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_complex_wavetable,
        work: *mut gsl_fft_complex_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_transform(
        data: gsl_complex_packed_array,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_complex_wavetable,
        work: *mut gsl_fft_complex_workspace,
        sign: gsl_fft_direction,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_float_radix2_forward(
        data: gsl_complex_packed_array_float,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_float_radix2_backward(
        data: gsl_complex_packed_array_float,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_float_radix2_inverse(
        data: gsl_complex_packed_array_float,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_float_radix2_transform(
        data: gsl_complex_packed_array_float,
        stride: usize,
        n: usize,
        sign: gsl_fft_direction,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_float_radix2_dif_forward(
        data: gsl_complex_packed_array_float,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_float_radix2_dif_backward(
        data: gsl_complex_packed_array_float,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_float_radix2_dif_inverse(
        data: gsl_complex_packed_array_float,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_float_radix2_dif_transform(
        data: gsl_complex_packed_array_float,
        stride: usize,
        n: usize,
        sign: gsl_fft_direction,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_fft_complex_wavetable_float {
    pub n: usize,
    pub nf: usize,
    pub factor: [usize; 64usize],
    pub twiddle: [*mut gsl_complex_float; 64usize],
    pub trig: *mut gsl_complex_float,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_fft_complex_workspace_float;
extern "C" {
    pub fn gsl_fft_complex_wavetable_float_alloc(n: usize) -> *mut gsl_fft_complex_wavetable_float;
}
extern "C" {
    pub fn gsl_fft_complex_wavetable_float_free(wavetable: *mut gsl_fft_complex_wavetable_float);
}
extern "C" {
    pub fn gsl_fft_complex_workspace_float_alloc(n: usize) -> *mut gsl_fft_complex_workspace_float;
}
extern "C" {
    pub fn gsl_fft_complex_workspace_float_free(workspace: *mut gsl_fft_complex_workspace_float);
}
extern "C" {
    pub fn gsl_fft_complex_float_memcpy(
        dest: *mut gsl_fft_complex_wavetable_float,
        src: *mut gsl_fft_complex_wavetable_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_float_forward(
        data: gsl_complex_packed_array_float,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_complex_wavetable_float,
        work: *mut gsl_fft_complex_workspace_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_float_backward(
        data: gsl_complex_packed_array_float,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_complex_wavetable_float,
        work: *mut gsl_fft_complex_workspace_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_float_inverse(
        data: gsl_complex_packed_array_float,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_complex_wavetable_float,
        work: *mut gsl_fft_complex_workspace_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_complex_float_transform(
        data: gsl_complex_packed_array_float,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_complex_wavetable_float,
        work: *mut gsl_fft_complex_workspace_float,
        sign: gsl_fft_direction,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_real_radix2_transform(
        data: *mut f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_fft_real_wavetable;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_fft_real_workspace;
extern "C" {
    pub fn gsl_fft_real_wavetable_alloc(n: usize) -> *mut gsl_fft_real_wavetable;
}
extern "C" {
    pub fn gsl_fft_real_wavetable_free(wavetable: *mut gsl_fft_real_wavetable);
}
extern "C" {
    pub fn gsl_fft_real_workspace_alloc(n: usize) -> *mut gsl_fft_real_workspace;
}
extern "C" {
    pub fn gsl_fft_real_workspace_free(workspace: *mut gsl_fft_real_workspace);
}
extern "C" {
    pub fn gsl_fft_real_transform(
        data: *mut f64,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_real_wavetable,
        work: *mut gsl_fft_real_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_real_unpack(
        real_coefficient: *const f64,
        complex_coefficient: *mut f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_radix2_backward(
        data: *mut f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_radix2_inverse(
        data: *mut f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_radix2_transform(
        data: *mut f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_fft_halfcomplex_wavetable;
extern "C" {
    pub fn gsl_fft_halfcomplex_wavetable_alloc(n: usize) -> *mut gsl_fft_halfcomplex_wavetable;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_wavetable_free(wavetable: *mut gsl_fft_halfcomplex_wavetable);
}
extern "C" {
    pub fn gsl_fft_halfcomplex_backward(
        data: *mut f64,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_halfcomplex_wavetable,
        work: *mut gsl_fft_real_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_inverse(
        data: *mut f64,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_halfcomplex_wavetable,
        work: *mut gsl_fft_real_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_transform(
        data: *mut f64,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_halfcomplex_wavetable,
        work: *mut gsl_fft_real_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_unpack(
        halfcomplex_coefficient: *const f64,
        complex_coefficient: *mut f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_radix2_unpack(
        halfcomplex_coefficient: *const f64,
        complex_coefficient: *mut f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_real_float_radix2_transform(
        data: *mut f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_fft_real_wavetable_float;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_fft_real_workspace_float;
extern "C" {
    pub fn gsl_fft_real_wavetable_float_alloc(n: usize) -> *mut gsl_fft_real_wavetable_float;
}
extern "C" {
    pub fn gsl_fft_real_wavetable_float_free(wavetable: *mut gsl_fft_real_wavetable_float);
}
extern "C" {
    pub fn gsl_fft_real_workspace_float_alloc(n: usize) -> *mut gsl_fft_real_workspace_float;
}
extern "C" {
    pub fn gsl_fft_real_workspace_float_free(workspace: *mut gsl_fft_real_workspace_float);
}
extern "C" {
    pub fn gsl_fft_real_float_transform(
        data: *mut f32,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_real_wavetable_float,
        work: *mut gsl_fft_real_workspace_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_real_float_unpack(
        real_float_coefficient: *const f32,
        complex_coefficient: *mut f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_float_radix2_backward(
        data: *mut f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_float_radix2_inverse(
        data: *mut f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_float_radix2_transform(
        data: *mut f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_fft_halfcomplex_wavetable_float;
extern "C" {
    pub fn gsl_fft_halfcomplex_wavetable_float_alloc(
        n: usize,
    ) -> *mut gsl_fft_halfcomplex_wavetable_float;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_wavetable_float_free(
        wavetable: *mut gsl_fft_halfcomplex_wavetable_float,
    );
}
extern "C" {
    pub fn gsl_fft_halfcomplex_float_backward(
        data: *mut f32,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_halfcomplex_wavetable_float,
        work: *mut gsl_fft_real_workspace_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_float_inverse(
        data: *mut f32,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_halfcomplex_wavetable_float,
        work: *mut gsl_fft_real_workspace_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_float_transform(
        data: *mut f32,
        stride: usize,
        n: usize,
        wavetable: *const gsl_fft_halfcomplex_wavetable_float,
        work: *mut gsl_fft_real_workspace_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_float_unpack(
        halfcomplex_coefficient: *const f32,
        complex_coefficient: *mut f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fft_halfcomplex_float_radix2_unpack(
        halfcomplex_coefficient: *const f32,
        complex_coefficient: *mut f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub const gsl_movstat_end_t_GSL_MOVSTAT_END_PADZERO: gsl_movstat_end_t = 0;
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub const gsl_movstat_end_t_GSL_MOVSTAT_END_PADVALUE: gsl_movstat_end_t = 1;
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub const gsl_movstat_end_t_GSL_MOVSTAT_END_TRUNCATE: gsl_movstat_end_t = 2;
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub type gsl_movstat_end_t = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub struct gsl_movstat_accum;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub struct gsl_movstat_function;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub struct gsl_movstat_workspace;
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_alloc(K: usize) -> *mut gsl_movstat_workspace;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_alloc2(H: usize, J: usize) -> *mut gsl_movstat_workspace;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_alloc_with_size(
        accum_state_size: usize,
        H: usize,
        J: usize,
    ) -> *mut gsl_movstat_workspace;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_free(w: *mut gsl_movstat_workspace);
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_apply_accum(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        accum: *const gsl_movstat_accum,
        accum_params: *mut ::std::os::raw::c_void,
        y: *mut gsl_vector,
        z: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_apply(
        endtype: gsl_movstat_end_t,
        F: *const gsl_movstat_function,
        x: *const gsl_vector,
        y: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_fill(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        idx: usize,
        H: usize,
        J: usize,
        window: *mut f64,
    ) -> usize;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_mean(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        y: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_variance(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        y: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_sd(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        y: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_median(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        y: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_min(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        y: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_max(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        y: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_minmax(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        y_min: *mut gsl_vector,
        y_max: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_mad0(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        xmedian: *mut gsl_vector,
        xmad: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_mad(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        xmedian: *mut gsl_vector,
        xmad: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_qqr(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        q: f64,
        xqqr: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_Sn(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        xscale: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_Qn(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        xscale: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_movstat_sum(
        endtype: gsl_movstat_end_t,
        x: *const gsl_vector,
        y: *mut gsl_vector,
        w: *mut gsl_movstat_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_mad: *const gsl_movstat_accum;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_max: *const gsl_movstat_accum;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_mean: *const gsl_movstat_accum;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_median: *const gsl_movstat_accum;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_min: *const gsl_movstat_accum;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_minmax: *const gsl_movstat_accum;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_sd: *const gsl_movstat_accum;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_Sn: *const gsl_movstat_accum;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_sum: *const gsl_movstat_accum;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_Qn: *const gsl_movstat_accum;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_qqr: *const gsl_movstat_accum;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_userfunc: *const gsl_movstat_accum;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub static mut gsl_movstat_accum_variance: *const gsl_movstat_accum;
}
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub const gsl_filter_end_t_GSL_FILTER_END_PADZERO: gsl_filter_end_t = 0;
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub const gsl_filter_end_t_GSL_FILTER_END_PADVALUE: gsl_filter_end_t = 1;
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub const gsl_filter_end_t_GSL_FILTER_END_TRUNCATE: gsl_filter_end_t = 2;
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub type gsl_filter_end_t = ::std::os::raw::c_uint;
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub const gsl_filter_scale_t_GSL_FILTER_SCALE_MAD: gsl_filter_scale_t = 0;
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub const gsl_filter_scale_t_GSL_FILTER_SCALE_IQR: gsl_filter_scale_t = 1;
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub const gsl_filter_scale_t_GSL_FILTER_SCALE_SN: gsl_filter_scale_t = 2;
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub const gsl_filter_scale_t_GSL_FILTER_SCALE_QN: gsl_filter_scale_t = 3;
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub type gsl_filter_scale_t = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub struct gsl_filter_gaussian_workspace;
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_gaussian_alloc(K: usize) -> *mut gsl_filter_gaussian_workspace;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_gaussian_free(w: *mut gsl_filter_gaussian_workspace);
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_gaussian(
        endtype: gsl_filter_end_t,
        alpha: f64,
        order: usize,
        x: *const gsl_vector,
        y: *mut gsl_vector,
        w: *mut gsl_filter_gaussian_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_gaussian_kernel(
        alpha: f64,
        order: usize,
        normalize: ::std::os::raw::c_int,
        kernel: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub struct gsl_filter_median_workspace;
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_median_alloc(K: usize) -> *mut gsl_filter_median_workspace;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_median_free(w: *mut gsl_filter_median_workspace);
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_median(
        endtype: gsl_filter_end_t,
        x: *const gsl_vector,
        y: *mut gsl_vector,
        w: *mut gsl_filter_median_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub struct gsl_filter_rmedian_workspace;
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_rmedian_alloc(K: usize) -> *mut gsl_filter_rmedian_workspace;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_rmedian_free(w: *mut gsl_filter_rmedian_workspace);
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_rmedian(
        arg1: gsl_filter_end_t,
        x: *const gsl_vector,
        y: *mut gsl_vector,
        w: *mut gsl_filter_rmedian_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub struct gsl_filter_impulse_workspace;
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_impulse_alloc(K: usize) -> *mut gsl_filter_impulse_workspace;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_impulse_free(w: *mut gsl_filter_impulse_workspace);
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_filter_impulse(
        endtype: gsl_filter_end_t,
        scale_type: gsl_filter_scale_t,
        t: f64,
        x: *const gsl_vector,
        y: *mut gsl_vector,
        xmedian: *mut gsl_vector,
        xsigma: *mut gsl_vector,
        noutlier: *mut usize,
        ioutlier: *mut gsl_vector_int,
        w: *mut gsl_filter_impulse_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fit_linear(
        x: *const f64,
        xstride: usize,
        y: *const f64,
        ystride: usize,
        n: usize,
        c0: *mut f64,
        c1: *mut f64,
        cov00: *mut f64,
        cov01: *mut f64,
        cov11: *mut f64,
        sumsq: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fit_wlinear(
        x: *const f64,
        xstride: usize,
        w: *const f64,
        wstride: usize,
        y: *const f64,
        ystride: usize,
        n: usize,
        c0: *mut f64,
        c1: *mut f64,
        cov00: *mut f64,
        cov01: *mut f64,
        cov11: *mut f64,
        chisq: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fit_linear_est(
        x: f64,
        c0: f64,
        c1: f64,
        cov00: f64,
        cov01: f64,
        cov11: f64,
        y: *mut f64,
        y_err: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fit_mul(
        x: *const f64,
        xstride: usize,
        y: *const f64,
        ystride: usize,
        n: usize,
        c1: *mut f64,
        cov11: *mut f64,
        sumsq: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fit_wmul(
        x: *const f64,
        xstride: usize,
        w: *const f64,
        wstride: usize,
        y: *const f64,
        ystride: usize,
        n: usize,
        c1: *mut f64,
        cov11: *mut f64,
        sumsq: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_fit_mul_est(
        x: f64,
        c1: f64,
        cov11: f64,
        y: *mut f64,
        y_err: *mut f64,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_permutation_struct {
    pub size: usize,
    pub data: *mut usize,
}
pub type gsl_permutation = gsl_permutation_struct;
extern "C" {
    pub fn gsl_permutation_alloc(n: usize) -> *mut gsl_permutation;
}
extern "C" {
    pub fn gsl_permutation_calloc(n: usize) -> *mut gsl_permutation;
}
extern "C" {
    pub fn gsl_permutation_init(p: *mut gsl_permutation);
}
extern "C" {
    pub fn gsl_permutation_free(p: *mut gsl_permutation);
}
extern "C" {
    pub fn gsl_permutation_memcpy(
        dest: *mut gsl_permutation,
        src: *const gsl_permutation,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_fread(
        stream: *mut FILE,
        p: *mut gsl_permutation,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_fwrite(
        stream: *mut FILE,
        p: *const gsl_permutation,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_fscanf(
        stream: *mut FILE,
        p: *mut gsl_permutation,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_fprintf(
        stream: *mut FILE,
        p: *const gsl_permutation,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_size(p: *const gsl_permutation) -> usize;
}
extern "C" {
    pub fn gsl_permutation_data(p: *const gsl_permutation) -> *mut usize;
}
extern "C" {
    pub fn gsl_permutation_swap(
        p: *mut gsl_permutation,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_valid(p: *const gsl_permutation) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_reverse(p: *mut gsl_permutation);
}
extern "C" {
    pub fn gsl_permutation_inverse(
        inv: *mut gsl_permutation,
        p: *const gsl_permutation,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_next(p: *mut gsl_permutation) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_prev(p: *mut gsl_permutation) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_mul(
        p: *mut gsl_permutation,
        pa: *const gsl_permutation,
        pb: *const gsl_permutation,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_linear_to_canonical(
        q: *mut gsl_permutation,
        p: *const gsl_permutation,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_canonical_to_linear(
        p: *mut gsl_permutation,
        q: *const gsl_permutation,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permutation_inversions(p: *const gsl_permutation) -> usize;
}
extern "C" {
    pub fn gsl_permutation_linear_cycles(p: *const gsl_permutation) -> usize;
}
extern "C" {
    pub fn gsl_permutation_canonical_cycles(q: *const gsl_permutation) -> usize;
}
extern "C" {
    pub fn gsl_permutation_get(p: *const gsl_permutation, i: usize) -> usize;
}
pub type gsl_comparison_fn_t = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *const ::std::os::raw::c_void,
        arg2: *const ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn gsl_heapsort(
        array: *mut ::std::os::raw::c_void,
        count: usize,
        size: usize,
        compare: gsl_comparison_fn_t,
    );
}
extern "C" {
    pub fn gsl_heapsort_index(
        p: *mut usize,
        array: *const ::std::os::raw::c_void,
        count: usize,
        size: usize,
        compare: gsl_comparison_fn_t,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_histogram {
    pub n: usize,
    pub range: *mut f64,
    pub bin: *mut f64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_histogram_pdf;
extern "C" {
    pub fn gsl_histogram_alloc(n: usize) -> *mut gsl_histogram;
}
extern "C" {
    pub fn gsl_histogram_calloc(n: usize) -> *mut gsl_histogram;
}
extern "C" {
    pub fn gsl_histogram_calloc_uniform(n: usize, xmin: f64, xmax: f64) -> *mut gsl_histogram;
}
extern "C" {
    pub fn gsl_histogram_free(h: *mut gsl_histogram);
}
extern "C" {
    pub fn gsl_histogram_increment(h: *mut gsl_histogram, x: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_accumulate(
        h: *mut gsl_histogram,
        x: f64,
        weight: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_find(
        h: *const gsl_histogram,
        x: f64,
        i: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_get(h: *const gsl_histogram, i: usize) -> f64;
}
extern "C" {
    pub fn gsl_histogram_get_range(
        h: *const gsl_histogram,
        i: usize,
        lower: *mut f64,
        upper: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_max(h: *const gsl_histogram) -> f64;
}
extern "C" {
    pub fn gsl_histogram_min(h: *const gsl_histogram) -> f64;
}
extern "C" {
    pub fn gsl_histogram_bins(h: *const gsl_histogram) -> usize;
}
extern "C" {
    pub fn gsl_histogram_reset(h: *mut gsl_histogram);
}
extern "C" {
    pub fn gsl_histogram_calloc_range(n: usize, range: *mut f64) -> *mut gsl_histogram;
}
extern "C" {
    pub fn gsl_histogram_set_ranges(
        h: *mut gsl_histogram,
        range: *const f64,
        size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_set_ranges_uniform(
        h: *mut gsl_histogram,
        xmin: f64,
        xmax: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_memcpy(
        dest: *mut gsl_histogram,
        source: *const gsl_histogram,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_clone(source: *const gsl_histogram) -> *mut gsl_histogram;
}
extern "C" {
    pub fn gsl_histogram_max_val(h: *const gsl_histogram) -> f64;
}
extern "C" {
    pub fn gsl_histogram_max_bin(h: *const gsl_histogram) -> usize;
}
extern "C" {
    pub fn gsl_histogram_min_val(h: *const gsl_histogram) -> f64;
}
extern "C" {
    pub fn gsl_histogram_min_bin(h: *const gsl_histogram) -> usize;
}
extern "C" {
    pub fn gsl_histogram_equal_bins_p(
        h1: *const gsl_histogram,
        h2: *const gsl_histogram,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_add(
        h1: *mut gsl_histogram,
        h2: *const gsl_histogram,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_sub(
        h1: *mut gsl_histogram,
        h2: *const gsl_histogram,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_mul(
        h1: *mut gsl_histogram,
        h2: *const gsl_histogram,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_div(
        h1: *mut gsl_histogram,
        h2: *const gsl_histogram,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_scale(h: *mut gsl_histogram, scale: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_shift(h: *mut gsl_histogram, shift: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_sigma(h: *const gsl_histogram) -> f64;
}
extern "C" {
    pub fn gsl_histogram_mean(h: *const gsl_histogram) -> f64;
}
extern "C" {
    pub fn gsl_histogram_sum(h: *const gsl_histogram) -> f64;
}
extern "C" {
    pub fn gsl_histogram_fwrite(
        stream: *mut FILE,
        h: *const gsl_histogram,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_fread(stream: *mut FILE, h: *mut gsl_histogram) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_fprintf(
        stream: *mut FILE,
        h: *const gsl_histogram,
        range_format: *const ::std::os::raw::c_char,
        bin_format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_fscanf(stream: *mut FILE, h: *mut gsl_histogram) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_pdf_alloc(n: usize) -> *mut gsl_histogram_pdf;
}
extern "C" {
    pub fn gsl_histogram_pdf_init(
        p: *mut gsl_histogram_pdf,
        h: *const gsl_histogram,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram_pdf_free(p: *mut gsl_histogram_pdf);
}
extern "C" {
    pub fn gsl_histogram_pdf_sample(p: *const gsl_histogram_pdf, r: f64) -> f64;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_histogram2d;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_histogram2d_pdf;
extern "C" {
    pub fn gsl_histogram2d_alloc(nx: usize, ny: usize) -> *mut gsl_histogram2d;
}
extern "C" {
    pub fn gsl_histogram2d_calloc(nx: usize, ny: usize) -> *mut gsl_histogram2d;
}
extern "C" {
    pub fn gsl_histogram2d_calloc_uniform(
        nx: usize,
        ny: usize,
        xmin: f64,
        xmax: f64,
        ymin: f64,
        ymax: f64,
    ) -> *mut gsl_histogram2d;
}
extern "C" {
    pub fn gsl_histogram2d_free(h: *mut gsl_histogram2d);
}
extern "C" {
    pub fn gsl_histogram2d_increment(
        h: *mut gsl_histogram2d,
        x: f64,
        y: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_accumulate(
        h: *mut gsl_histogram2d,
        x: f64,
        y: f64,
        weight: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_find(
        h: *const gsl_histogram2d,
        x: f64,
        y: f64,
        i: *mut usize,
        j: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_get(h: *const gsl_histogram2d, i: usize, j: usize) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_get_xrange(
        h: *const gsl_histogram2d,
        i: usize,
        xlower: *mut f64,
        xupper: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_get_yrange(
        h: *const gsl_histogram2d,
        j: usize,
        ylower: *mut f64,
        yupper: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_xmax(h: *const gsl_histogram2d) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_xmin(h: *const gsl_histogram2d) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_nx(h: *const gsl_histogram2d) -> usize;
}
extern "C" {
    pub fn gsl_histogram2d_ymax(h: *const gsl_histogram2d) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_ymin(h: *const gsl_histogram2d) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_ny(h: *const gsl_histogram2d) -> usize;
}
extern "C" {
    pub fn gsl_histogram2d_reset(h: *mut gsl_histogram2d);
}
extern "C" {
    pub fn gsl_histogram2d_calloc_range(
        nx: usize,
        ny: usize,
        xrange: *mut f64,
        yrange: *mut f64,
    ) -> *mut gsl_histogram2d;
}
extern "C" {
    pub fn gsl_histogram2d_set_ranges_uniform(
        h: *mut gsl_histogram2d,
        xmin: f64,
        xmax: f64,
        ymin: f64,
        ymax: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_set_ranges(
        h: *mut gsl_histogram2d,
        xrange: *const f64,
        xsize: usize,
        yrange: *const f64,
        ysize: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_memcpy(
        dest: *mut gsl_histogram2d,
        source: *const gsl_histogram2d,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_clone(source: *const gsl_histogram2d) -> *mut gsl_histogram2d;
}
extern "C" {
    pub fn gsl_histogram2d_max_val(h: *const gsl_histogram2d) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_max_bin(h: *const gsl_histogram2d, i: *mut usize, j: *mut usize);
}
extern "C" {
    pub fn gsl_histogram2d_min_val(h: *const gsl_histogram2d) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_min_bin(h: *const gsl_histogram2d, i: *mut usize, j: *mut usize);
}
extern "C" {
    pub fn gsl_histogram2d_xmean(h: *const gsl_histogram2d) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_ymean(h: *const gsl_histogram2d) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_xsigma(h: *const gsl_histogram2d) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_ysigma(h: *const gsl_histogram2d) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_cov(h: *const gsl_histogram2d) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_sum(h: *const gsl_histogram2d) -> f64;
}
extern "C" {
    pub fn gsl_histogram2d_equal_bins_p(
        h1: *const gsl_histogram2d,
        h2: *const gsl_histogram2d,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_add(
        h1: *mut gsl_histogram2d,
        h2: *const gsl_histogram2d,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_sub(
        h1: *mut gsl_histogram2d,
        h2: *const gsl_histogram2d,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_mul(
        h1: *mut gsl_histogram2d,
        h2: *const gsl_histogram2d,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_div(
        h1: *mut gsl_histogram2d,
        h2: *const gsl_histogram2d,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_scale(h: *mut gsl_histogram2d, scale: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_shift(h: *mut gsl_histogram2d, shift: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_fwrite(
        stream: *mut FILE,
        h: *const gsl_histogram2d,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_fread(
        stream: *mut FILE,
        h: *mut gsl_histogram2d,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_fprintf(
        stream: *mut FILE,
        h: *const gsl_histogram2d,
        range_format: *const ::std::os::raw::c_char,
        bin_format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_fscanf(
        stream: *mut FILE,
        h: *mut gsl_histogram2d,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_pdf_alloc(nx: usize, ny: usize) -> *mut gsl_histogram2d_pdf;
}
extern "C" {
    pub fn gsl_histogram2d_pdf_init(
        p: *mut gsl_histogram2d_pdf,
        h: *const gsl_histogram2d,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_histogram2d_pdf_free(p: *mut gsl_histogram2d_pdf);
}
extern "C" {
    pub fn gsl_histogram2d_pdf_sample(
        p: *const gsl_histogram2d_pdf,
        r1: f64,
        r2: f64,
        x: *mut f64,
        y: *mut f64,
    ) -> ::std::os::raw::c_int;
}
pub const GSL_IEEE_TYPE_NAN: ::std::os::raw::c_uint = 1;
pub const GSL_IEEE_TYPE_INF: ::std::os::raw::c_uint = 2;
pub const GSL_IEEE_TYPE_NORMAL: ::std::os::raw::c_uint = 3;
pub const GSL_IEEE_TYPE_DENORMAL: ::std::os::raw::c_uint = 4;
pub const GSL_IEEE_TYPE_ZERO: ::std::os::raw::c_uint = 5;
pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_ieee_float_rep;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_ieee_double_rep;
extern "C" {
    pub fn gsl_ieee_printf_float(x: *const f32);
}
extern "C" {
    pub fn gsl_ieee_printf_double(x: *const f64);
}
extern "C" {
    pub fn gsl_ieee_fprintf_float(stream: *mut FILE, x: *const f32);
}
extern "C" {
    pub fn gsl_ieee_fprintf_double(stream: *mut FILE, x: *const f64);
}
extern "C" {
    pub fn gsl_ieee_float_to_rep(x: *const f32, r: *mut gsl_ieee_float_rep);
}
extern "C" {
    pub fn gsl_ieee_double_to_rep(x: *const f64, r: *mut gsl_ieee_double_rep);
}
pub const GSL_IEEE_SINGLE_PRECISION: ::std::os::raw::c_uint = 1;
pub const GSL_IEEE_DOUBLE_PRECISION: ::std::os::raw::c_uint = 2;
pub const GSL_IEEE_EXTENDED_PRECISION: ::std::os::raw::c_uint = 3;
pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
pub const GSL_IEEE_ROUND_TO_NEAREST: ::std::os::raw::c_uint = 1;
pub const GSL_IEEE_ROUND_DOWN: ::std::os::raw::c_uint = 2;
pub const GSL_IEEE_ROUND_UP: ::std::os::raw::c_uint = 3;
pub const GSL_IEEE_ROUND_TO_ZERO: ::std::os::raw::c_uint = 4;
pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
pub const GSL_IEEE_MASK_INVALID: ::std::os::raw::c_uint = 1;
pub const GSL_IEEE_MASK_DENORMALIZED: ::std::os::raw::c_uint = 2;
pub const GSL_IEEE_MASK_DIVISION_BY_ZERO: ::std::os::raw::c_uint = 4;
pub const GSL_IEEE_MASK_OVERFLOW: ::std::os::raw::c_uint = 8;
pub const GSL_IEEE_MASK_UNDERFLOW: ::std::os::raw::c_uint = 16;
pub const GSL_IEEE_MASK_ALL: ::std::os::raw::c_uint = 31;
pub const GSL_IEEE_TRAP_INEXACT: ::std::os::raw::c_uint = 32;
pub type _bindgen_ty_5 = ::std::os::raw::c_uint;
extern "C" {
    pub fn gsl_ieee_env_setup();
}
extern "C" {
    pub fn gsl_ieee_read_mode_string(
        description: *const ::std::os::raw::c_char,
        precision: *mut ::std::os::raw::c_int,
        rounding: *mut ::std::os::raw::c_int,
        exception_mask: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_ieee_set_mode(
        precision: ::std::os::raw::c_int,
        rounding: ::std::os::raw::c_int,
        exception_mask: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_integration_workspace {
    pub limit: usize,
    pub size: usize,
    pub nrmax: usize,
    pub i: usize,
    pub maximum_level: usize,
    pub alist: *mut f64,
    pub blist: *mut f64,
    pub rlist: *mut f64,
    pub elist: *mut f64,
    pub order: *mut usize,
    pub level: *mut usize,
}
extern "C" {
    pub fn gsl_integration_workspace_alloc(n: usize) -> *mut gsl_integration_workspace;
}
extern "C" {
    pub fn gsl_integration_workspace_free(w: *mut gsl_integration_workspace);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_integration_qaws_table;
extern "C" {
    pub fn gsl_integration_qaws_table_alloc(
        alpha: f64,
        beta: f64,
        mu: ::std::os::raw::c_int,
        nu: ::std::os::raw::c_int,
    ) -> *mut gsl_integration_qaws_table;
}
extern "C" {
    pub fn gsl_integration_qaws_table_set(
        t: *mut gsl_integration_qaws_table,
        alpha: f64,
        beta: f64,
        mu: ::std::os::raw::c_int,
        nu: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qaws_table_free(t: *mut gsl_integration_qaws_table);
}
pub const gsl_integration_qawo_enum_GSL_INTEG_COSINE: gsl_integration_qawo_enum = 0;
pub const gsl_integration_qawo_enum_GSL_INTEG_SINE: gsl_integration_qawo_enum = 1;
pub type gsl_integration_qawo_enum = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_integration_qawo_table;
extern "C" {
    pub fn gsl_integration_qawo_table_alloc(
        omega: f64,
        L: f64,
        sine: gsl_integration_qawo_enum,
        n: usize,
    ) -> *mut gsl_integration_qawo_table;
}
extern "C" {
    pub fn gsl_integration_qawo_table_set(
        t: *mut gsl_integration_qawo_table,
        omega: f64,
        L: f64,
        sine: gsl_integration_qawo_enum,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qawo_table_set_length(
        t: *mut gsl_integration_qawo_table,
        L: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qawo_table_free(t: *mut gsl_integration_qawo_table);
}
pub type gsl_integration_rule = ::std::option::Option<
    unsafe extern "C" fn(
        f: *const gsl_function,
        a: f64,
        b: f64,
        result: *mut f64,
        abserr: *mut f64,
        defabs: *mut f64,
        resabs: *mut f64,
    ),
>;
extern "C" {
    pub fn gsl_integration_qk15(
        f: *const gsl_function,
        a: f64,
        b: f64,
        result: *mut f64,
        abserr: *mut f64,
        resabs: *mut f64,
        resasc: *mut f64,
    );
}
extern "C" {
    pub fn gsl_integration_qk21(
        f: *const gsl_function,
        a: f64,
        b: f64,
        result: *mut f64,
        abserr: *mut f64,
        resabs: *mut f64,
        resasc: *mut f64,
    );
}
extern "C" {
    pub fn gsl_integration_qk31(
        f: *const gsl_function,
        a: f64,
        b: f64,
        result: *mut f64,
        abserr: *mut f64,
        resabs: *mut f64,
        resasc: *mut f64,
    );
}
extern "C" {
    pub fn gsl_integration_qk41(
        f: *const gsl_function,
        a: f64,
        b: f64,
        result: *mut f64,
        abserr: *mut f64,
        resabs: *mut f64,
        resasc: *mut f64,
    );
}
extern "C" {
    pub fn gsl_integration_qk51(
        f: *const gsl_function,
        a: f64,
        b: f64,
        result: *mut f64,
        abserr: *mut f64,
        resabs: *mut f64,
        resasc: *mut f64,
    );
}
extern "C" {
    pub fn gsl_integration_qk61(
        f: *const gsl_function,
        a: f64,
        b: f64,
        result: *mut f64,
        abserr: *mut f64,
        resabs: *mut f64,
        resasc: *mut f64,
    );
}
extern "C" {
    pub fn gsl_integration_qcheb(
        f: *mut gsl_function,
        a: f64,
        b: f64,
        cheb12: *mut f64,
        cheb24: *mut f64,
    );
}
pub const GSL_INTEG_GAUSS15: ::std::os::raw::c_uint = 1;
pub const GSL_INTEG_GAUSS21: ::std::os::raw::c_uint = 2;
pub const GSL_INTEG_GAUSS31: ::std::os::raw::c_uint = 3;
pub const GSL_INTEG_GAUSS41: ::std::os::raw::c_uint = 4;
pub const GSL_INTEG_GAUSS51: ::std::os::raw::c_uint = 5;
pub const GSL_INTEG_GAUSS61: ::std::os::raw::c_uint = 6;
pub type _bindgen_ty_6 = ::std::os::raw::c_uint;
extern "C" {
    pub fn gsl_integration_qk(
        n: ::std::os::raw::c_int,
        xgk: *const f64,
        wg: *const f64,
        wgk: *const f64,
        fv1: *mut f64,
        fv2: *mut f64,
        f: *const gsl_function,
        a: f64,
        b: f64,
        result: *mut f64,
        abserr: *mut f64,
        resabs: *mut f64,
        resasc: *mut f64,
    );
}
extern "C" {
    pub fn gsl_integration_qng(
        f: *const gsl_function,
        a: f64,
        b: f64,
        epsabs: f64,
        epsrel: f64,
        result: *mut f64,
        abserr: *mut f64,
        neval: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qag(
        f: *const gsl_function,
        a: f64,
        b: f64,
        epsabs: f64,
        epsrel: f64,
        limit: usize,
        key: ::std::os::raw::c_int,
        workspace: *mut gsl_integration_workspace,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qagi(
        f: *mut gsl_function,
        epsabs: f64,
        epsrel: f64,
        limit: usize,
        workspace: *mut gsl_integration_workspace,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qagiu(
        f: *mut gsl_function,
        a: f64,
        epsabs: f64,
        epsrel: f64,
        limit: usize,
        workspace: *mut gsl_integration_workspace,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qagil(
        f: *mut gsl_function,
        b: f64,
        epsabs: f64,
        epsrel: f64,
        limit: usize,
        workspace: *mut gsl_integration_workspace,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qags(
        f: *const gsl_function,
        a: f64,
        b: f64,
        epsabs: f64,
        epsrel: f64,
        limit: usize,
        workspace: *mut gsl_integration_workspace,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qagp(
        f: *const gsl_function,
        pts: *mut f64,
        npts: usize,
        epsabs: f64,
        epsrel: f64,
        limit: usize,
        workspace: *mut gsl_integration_workspace,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qawc(
        f: *mut gsl_function,
        a: f64,
        b: f64,
        c: f64,
        epsabs: f64,
        epsrel: f64,
        limit: usize,
        workspace: *mut gsl_integration_workspace,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qaws(
        f: *mut gsl_function,
        a: f64,
        b: f64,
        t: *mut gsl_integration_qaws_table,
        epsabs: f64,
        epsrel: f64,
        limit: usize,
        workspace: *mut gsl_integration_workspace,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qawo(
        f: *mut gsl_function,
        a: f64,
        epsabs: f64,
        epsrel: f64,
        limit: usize,
        workspace: *mut gsl_integration_workspace,
        wf: *mut gsl_integration_qawo_table,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_integration_qawf(
        f: *mut gsl_function,
        a: f64,
        epsabs: f64,
        limit: usize,
        workspace: *mut gsl_integration_workspace,
        cycle_workspace: *mut gsl_integration_workspace,
        wf: *mut gsl_integration_qawo_table,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_integration_glfixed_table;
extern "C" {
    pub fn gsl_integration_glfixed_table_alloc(n: usize) -> *mut gsl_integration_glfixed_table;
}
extern "C" {
    pub fn gsl_integration_glfixed_table_free(t: *mut gsl_integration_glfixed_table);
}
extern "C" {
    pub fn gsl_integration_glfixed(
        f: *const gsl_function,
        a: f64,
        b: f64,
        t: *const gsl_integration_glfixed_table,
    ) -> f64;
}
extern "C" {
    pub fn gsl_integration_glfixed_point(
        a: f64,
        b: f64,
        i: usize,
        xi: *mut f64,
        wi: *mut f64,
        t: *const gsl_integration_glfixed_table,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_integration_cquad_ival;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_integration_cquad_workspace;
extern "C" {
    pub fn gsl_integration_cquad_workspace_alloc(n: usize) -> *mut gsl_integration_cquad_workspace;
}
extern "C" {
    pub fn gsl_integration_cquad_workspace_free(w: *mut gsl_integration_cquad_workspace);
}
extern "C" {
    pub fn gsl_integration_cquad(
        f: *const gsl_function,
        a: f64,
        b: f64,
        epsabs: f64,
        epsrel: f64,
        ws: *mut gsl_integration_cquad_workspace,
        result: *mut f64,
        abserr: *mut f64,
        nevals: *mut usize,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_5")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
pub struct gsl_integration_romberg_workspace;
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_integration_romberg_alloc(n: usize) -> *mut gsl_integration_romberg_workspace;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_integration_romberg_free(w: *mut gsl_integration_romberg_workspace);
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_integration_romberg(
        f: *const gsl_function,
        a: f64,
        b: f64,
        epsabs: f64,
        epsrel: f64,
        result: *mut f64,
        neval: *mut usize,
        w: *mut gsl_integration_romberg_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_integration_fixed_params;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_integration_fixed_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_integration_fixed_workspace;
extern "C" {
    pub static mut gsl_integration_fixed_legendre: *const gsl_integration_fixed_type;
}
extern "C" {
    pub static mut gsl_integration_fixed_chebyshev: *const gsl_integration_fixed_type;
}
extern "C" {
    pub static mut gsl_integration_fixed_gegenbauer: *const gsl_integration_fixed_type;
}
extern "C" {
    pub static mut gsl_integration_fixed_jacobi: *const gsl_integration_fixed_type;
}
extern "C" {
    pub static mut gsl_integration_fixed_laguerre: *const gsl_integration_fixed_type;
}
extern "C" {
    pub static mut gsl_integration_fixed_hermite: *const gsl_integration_fixed_type;
}
extern "C" {
    pub static mut gsl_integration_fixed_exponential: *const gsl_integration_fixed_type;
}
extern "C" {
    pub static mut gsl_integration_fixed_rational: *const gsl_integration_fixed_type;
}
extern "C" {
    pub static mut gsl_integration_fixed_chebyshev2: *const gsl_integration_fixed_type;
}
extern "C" {
    pub fn gsl_integration_fixed_alloc(
        type_: *const gsl_integration_fixed_type,
        n: usize,
        a: f64,
        b: f64,
        alpha: f64,
        beta: f64,
    ) -> *mut gsl_integration_fixed_workspace;
}
extern "C" {
    pub fn gsl_integration_fixed_free(w: *mut gsl_integration_fixed_workspace);
}
extern "C" {
    pub fn gsl_integration_fixed_n(w: *const gsl_integration_fixed_workspace) -> usize;
}
extern "C" {
    pub fn gsl_integration_fixed_nodes(w: *const gsl_integration_fixed_workspace) -> *mut f64;
}
extern "C" {
    pub fn gsl_integration_fixed_weights(w: *const gsl_integration_fixed_workspace) -> *mut f64;
}
extern "C" {
    pub fn gsl_integration_fixed(
        func: *const gsl_function,
        result: *mut f64,
        w: *const gsl_integration_fixed_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_interp_accel {
    pub cache: usize,
    pub miss_count: usize,
    pub hit_count: usize,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_interp_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_interp;
extern "C" {
    pub static mut gsl_interp_linear: *const gsl_interp_type;
}
extern "C" {
    pub static mut gsl_interp_polynomial: *const gsl_interp_type;
}
extern "C" {
    pub static mut gsl_interp_cspline: *const gsl_interp_type;
}
extern "C" {
    pub static mut gsl_interp_cspline_periodic: *const gsl_interp_type;
}
extern "C" {
    pub static mut gsl_interp_akima: *const gsl_interp_type;
}
extern "C" {
    pub static mut gsl_interp_akima_periodic: *const gsl_interp_type;
}
extern "C" {
    pub static mut gsl_interp_steffen: *const gsl_interp_type;
}
extern "C" {
    pub fn gsl_interp_accel_alloc() -> *mut gsl_interp_accel;
}
extern "C" {
    pub fn gsl_interp_accel_reset(a: *mut gsl_interp_accel) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp_accel_free(a: *mut gsl_interp_accel);
}
extern "C" {
    pub fn gsl_interp_alloc(T: *const gsl_interp_type, n: usize) -> *mut gsl_interp;
}
extern "C" {
    pub fn gsl_interp_init(
        obj: *mut gsl_interp,
        xa: *const f64,
        ya: *const f64,
        size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp_name(interp: *const gsl_interp) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_interp_min_size(interp: *const gsl_interp) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_interp_type_min_size(T: *const gsl_interp_type) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_interp_eval_e(
        obj: *const gsl_interp,
        xa: *const f64,
        ya: *const f64,
        x: f64,
        a: *mut gsl_interp_accel,
        y: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp_eval(
        obj: *const gsl_interp,
        xa: *const f64,
        ya: *const f64,
        x: f64,
        a: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_interp_eval_deriv_e(
        obj: *const gsl_interp,
        xa: *const f64,
        ya: *const f64,
        x: f64,
        a: *mut gsl_interp_accel,
        d: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp_eval_deriv(
        obj: *const gsl_interp,
        xa: *const f64,
        ya: *const f64,
        x: f64,
        a: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_interp_eval_deriv2_e(
        obj: *const gsl_interp,
        xa: *const f64,
        ya: *const f64,
        x: f64,
        a: *mut gsl_interp_accel,
        d2: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp_eval_deriv2(
        obj: *const gsl_interp,
        xa: *const f64,
        ya: *const f64,
        x: f64,
        a: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_interp_eval_integ_e(
        obj: *const gsl_interp,
        xa: *const f64,
        ya: *const f64,
        a: f64,
        b: f64,
        acc: *mut gsl_interp_accel,
        result: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp_eval_integ(
        obj: *const gsl_interp,
        xa: *const f64,
        ya: *const f64,
        a: f64,
        b: f64,
        acc: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_interp_free(interp: *mut gsl_interp);
}
extern "C" {
    pub fn gsl_interp_bsearch(
        x_array: *const f64,
        x: f64,
        index_lo: usize,
        index_hi: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_interp_accel_find(
        a: *mut gsl_interp_accel,
        x_array: *const f64,
        size: usize,
        x: f64,
    ) -> usize;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_interp2d_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_interp2d;
extern "C" {
    pub static mut gsl_interp2d_bilinear: *const gsl_interp2d_type;
}
extern "C" {
    pub static mut gsl_interp2d_bicubic: *const gsl_interp2d_type;
}
extern "C" {
    pub fn gsl_interp2d_alloc(
        T: *const gsl_interp2d_type,
        xsize: usize,
        ysize: usize,
    ) -> *mut gsl_interp2d;
}
extern "C" {
    pub fn gsl_interp2d_name(interp: *const gsl_interp2d) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_interp2d_min_size(interp: *const gsl_interp2d) -> usize;
}
extern "C" {
    pub fn gsl_interp2d_type_min_size(T: *const gsl_interp2d_type) -> usize;
}
extern "C" {
    pub fn gsl_interp2d_set(
        interp: *const gsl_interp2d,
        zarr: *mut f64,
        i: usize,
        j: usize,
        z: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp2d_get(
        interp: *const gsl_interp2d,
        zarr: *const f64,
        i: usize,
        j: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_interp2d_idx(interp: *const gsl_interp2d, i: usize, j: usize) -> usize;
}
extern "C" {
    pub fn gsl_interp2d_init(
        interp: *mut gsl_interp2d,
        xa: *const f64,
        ya: *const f64,
        za: *const f64,
        xsize: usize,
        ysize: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp2d_free(interp: *mut gsl_interp2d);
}
extern "C" {
    pub fn gsl_interp2d_eval(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_interp2d_eval_extrap(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_interp2d_eval_e(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp2d_eval_e_extrap(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp2d_eval_extrap_e(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp2d_eval_deriv_x(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_interp2d_eval_deriv_x_e(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp2d_eval_deriv_y(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_interp2d_eval_deriv_y_e(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp2d_eval_deriv_xx(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_interp2d_eval_deriv_xx_e(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp2d_eval_deriv_yy(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_interp2d_eval_deriv_yy_e(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_interp2d_eval_deriv_xy(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_interp2d_eval_deriv_xy_e(
        interp: *const gsl_interp2d,
        xarr: *const f64,
        yarr: *const f64,
        zarr: *const f64,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
pub const gsl_linalg_matrix_mod_t_GSL_LINALG_MOD_NONE: gsl_linalg_matrix_mod_t = 0;
pub const gsl_linalg_matrix_mod_t_GSL_LINALG_MOD_TRANSPOSE: gsl_linalg_matrix_mod_t = 1;
pub const gsl_linalg_matrix_mod_t_GSL_LINALG_MOD_CONJUGATE: gsl_linalg_matrix_mod_t = 2;
pub type gsl_linalg_matrix_mod_t = ::std::os::raw::c_uint;
extern "C" {
    pub fn gsl_linalg_matmult(
        A: *const gsl_matrix,
        B: *const gsl_matrix,
        C: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_matmult_mod(
        A: *const gsl_matrix,
        modA: gsl_linalg_matrix_mod_t,
        B: *const gsl_matrix,
        modB: gsl_linalg_matrix_mod_t,
        C: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_exponential_ss(
        A: *const gsl_matrix,
        eA: *mut gsl_matrix,
        mode: gsl_mode_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_householder_transform(v: *mut gsl_vector) -> f64;
}
extern "C" {
    pub fn gsl_linalg_householder_transform2(alpha: *mut f64, v: *mut gsl_vector) -> f64;
}
extern "C" {
    pub fn gsl_linalg_complex_householder_transform(v: *mut gsl_vector_complex) -> gsl_complex;
}
extern "C" {
    pub fn gsl_linalg_householder_hm(
        tau: f64,
        v: *const gsl_vector,
        A: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_householder_mh(
        tau: f64,
        v: *const gsl_vector,
        A: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_householder_hv(
        tau: f64,
        v: *const gsl_vector,
        w: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_householder_left(
        tau: f64,
        v: *const gsl_vector,
        A: *mut gsl_matrix,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_householder_right(
        tau: f64,
        v: *const gsl_vector,
        A: *mut gsl_matrix,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_householder_hm1(tau: f64, A: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_householder_hm(
        tau: gsl_complex,
        v: *const gsl_vector_complex,
        A: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_householder_mh(
        tau: gsl_complex,
        v: *const gsl_vector_complex,
        A: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_householder_hv(
        tau: gsl_complex,
        v: *const gsl_vector_complex,
        w: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_householder_left(
        tau: gsl_complex,
        v: *const gsl_vector_complex,
        A: *mut gsl_matrix_complex,
        work: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_hessenberg_decomp(
        A: *mut gsl_matrix,
        tau: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_hessenberg_unpack(
        H: *mut gsl_matrix,
        tau: *mut gsl_vector,
        U: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_hessenberg_unpack_accum(
        H: *mut gsl_matrix,
        tau: *mut gsl_vector,
        U: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_hessenberg_set_zero(H: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_hessenberg_submatrix(
        M: *mut gsl_matrix,
        A: *mut gsl_matrix,
        top: usize,
        tau: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_hesstri_decomp(
        A: *mut gsl_matrix,
        B: *mut gsl_matrix,
        U: *mut gsl_matrix,
        V: *mut gsl_matrix,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_SV_decomp(
        A: *mut gsl_matrix,
        V: *mut gsl_matrix,
        S: *mut gsl_vector,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_SV_decomp_mod(
        A: *mut gsl_matrix,
        X: *mut gsl_matrix,
        V: *mut gsl_matrix,
        S: *mut gsl_vector,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_SV_decomp_jacobi(
        A: *mut gsl_matrix,
        Q: *mut gsl_matrix,
        S: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_SV_solve(
        U: *const gsl_matrix,
        Q: *const gsl_matrix,
        S: *const gsl_vector,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_SV_leverage(
        U: *const gsl_matrix,
        h: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LU_decomp(
        A: *mut gsl_matrix,
        p: *mut gsl_permutation,
        signum: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LU_solve(
        LU: *const gsl_matrix,
        p: *const gsl_permutation,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LU_svx(
        LU: *const gsl_matrix,
        p: *const gsl_permutation,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LU_refine(
        A: *const gsl_matrix,
        LU: *const gsl_matrix,
        p: *const gsl_permutation,
        b: *const gsl_vector,
        x: *mut gsl_vector,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LU_invert(
        LU: *const gsl_matrix,
        p: *const gsl_permutation,
        inverse: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LU_invx(
        LU: *mut gsl_matrix,
        p: *const gsl_permutation,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LU_det(LU: *mut gsl_matrix, signum: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_linalg_LU_lndet(LU: *mut gsl_matrix) -> f64;
}
extern "C" {
    pub fn gsl_linalg_LU_sgndet(
        lu: *mut gsl_matrix,
        signum: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_LU_band_decomp(
        M: usize,
        lb: usize,
        ub: usize,
        AB: *mut gsl_matrix,
        piv: *mut gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_LU_band_solve(
        lb: usize,
        ub: usize,
        LUB: *const gsl_matrix,
        piv: *const gsl_vector_uint,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_LU_band_svx(
        lb: usize,
        ub: usize,
        LUB: *const gsl_matrix,
        piv: *const gsl_vector_uint,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_LU_band_unpack(
        M: usize,
        lb: usize,
        ub: usize,
        LUB: *const gsl_matrix,
        piv: *const gsl_vector_uint,
        L: *mut gsl_matrix,
        U: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_LU_decomp(
        A: *mut gsl_matrix_complex,
        p: *mut gsl_permutation,
        signum: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_LU_solve(
        LU: *const gsl_matrix_complex,
        p: *const gsl_permutation,
        b: *const gsl_vector_complex,
        x: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_LU_svx(
        LU: *const gsl_matrix_complex,
        p: *const gsl_permutation,
        x: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_LU_refine(
        A: *const gsl_matrix_complex,
        LU: *const gsl_matrix_complex,
        p: *const gsl_permutation,
        b: *const gsl_vector_complex,
        x: *mut gsl_vector_complex,
        work: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_LU_invert(
        LU: *const gsl_matrix_complex,
        p: *const gsl_permutation,
        inverse: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_LU_invx(
        LU: *mut gsl_matrix_complex,
        p: *const gsl_permutation,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_LU_det(
        LU: *mut gsl_matrix_complex,
        signum: ::std::os::raw::c_int,
    ) -> gsl_complex;
}
extern "C" {
    pub fn gsl_linalg_complex_LU_lndet(LU: *mut gsl_matrix_complex) -> f64;
}
extern "C" {
    pub fn gsl_linalg_complex_LU_sgndet(
        LU: *mut gsl_matrix_complex,
        signum: ::std::os::raw::c_int,
    ) -> gsl_complex;
}
extern "C" {
    pub fn gsl_linalg_QR_decomp(A: *mut gsl_matrix, tau: *mut gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_decomp_old(
        A: *mut gsl_matrix,
        tau: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_decomp_r(A: *mut gsl_matrix, T: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_solve(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_solve_r(
        QR: *const gsl_matrix,
        T: *const gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_svx(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_lssolve(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        b: *const gsl_vector,
        x: *mut gsl_vector,
        residual: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_lssolve_r(
        QR: *const gsl_matrix,
        T: *const gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_QRsolve(
        Q: *mut gsl_matrix,
        R: *mut gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_Rsolve(
        QR: *const gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_Rsvx(QR: *const gsl_matrix, x: *mut gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_update(
        Q: *mut gsl_matrix,
        R: *mut gsl_matrix,
        w: *mut gsl_vector,
        v: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_QTvec(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        v: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_QTvec_r(
        QR: *const gsl_matrix,
        T: *const gsl_matrix,
        b: *mut gsl_vector,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_Qvec(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        v: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_QTmat(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        A: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_QTmat_r(
        QR: *const gsl_matrix,
        T: *const gsl_matrix,
        B: *mut gsl_matrix,
        work: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_matQ(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        A: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_unpack(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        Q: *mut gsl_matrix,
        R: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_unpack_r(
        QR: *const gsl_matrix,
        T: *const gsl_matrix,
        Q: *mut gsl_matrix,
        R: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_R_solve(
        R: *const gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_R_svx(R: *const gsl_matrix, x: *mut gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_rcond(
        QR: *const gsl_matrix,
        rcond: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_complex_QR_decomp(
        A: *mut gsl_matrix_complex,
        tau: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_complex_QR_decomp_r(
        A: *mut gsl_matrix_complex,
        T: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_complex_QR_solve(
        QR: *const gsl_matrix_complex,
        tau: *const gsl_vector_complex,
        b: *const gsl_vector_complex,
        x: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_complex_QR_solve_r(
        QR: *const gsl_matrix_complex,
        T: *const gsl_matrix_complex,
        b: *const gsl_vector_complex,
        x: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_complex_QR_svx(
        QR: *const gsl_matrix_complex,
        tau: *const gsl_vector_complex,
        x: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_complex_QR_lssolve(
        QR: *const gsl_matrix_complex,
        tau: *const gsl_vector_complex,
        b: *const gsl_vector_complex,
        x: *mut gsl_vector_complex,
        residual: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_complex_QR_lssolve_r(
        QR: *const gsl_matrix_complex,
        T: *const gsl_matrix_complex,
        b: *const gsl_vector_complex,
        x: *mut gsl_vector_complex,
        work: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_complex_QR_QHvec(
        QR: *const gsl_matrix_complex,
        tau: *const gsl_vector_complex,
        v: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_complex_QR_QHvec_r(
        QR: *const gsl_matrix_complex,
        T: *const gsl_matrix_complex,
        b: *mut gsl_vector_complex,
        work: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_complex_QR_Qvec(
        QR: *const gsl_matrix_complex,
        tau: *const gsl_vector_complex,
        v: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_complex_QR_unpack(
        QR: *const gsl_matrix_complex,
        tau: *const gsl_vector_complex,
        Q: *mut gsl_matrix_complex,
        R: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_complex_QR_unpack_r(
        QR: *const gsl_matrix_complex,
        T: *const gsl_matrix_complex,
        Q: *mut gsl_matrix_complex,
        R: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_band_decomp_L2(
        M: usize,
        p: usize,
        q: usize,
        AB: *mut gsl_matrix,
        tau: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_band_unpack_L2(
        p: usize,
        q: usize,
        QRB: *const gsl_matrix,
        tau: *const gsl_vector,
        Q: *mut gsl_matrix,
        R: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QRPT_decomp(
        A: *mut gsl_matrix,
        tau: *mut gsl_vector,
        p: *mut gsl_permutation,
        signum: *mut ::std::os::raw::c_int,
        norm: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QRPT_decomp2(
        A: *const gsl_matrix,
        q: *mut gsl_matrix,
        r: *mut gsl_matrix,
        tau: *mut gsl_vector,
        p: *mut gsl_permutation,
        signum: *mut ::std::os::raw::c_int,
        norm: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QRPT_solve(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        p: *const gsl_permutation,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_QRPT_lssolve(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        p: *const gsl_permutation,
        b: *const gsl_vector,
        x: *mut gsl_vector,
        residual: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_QRPT_lssolve2(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        p: *const gsl_permutation,
        b: *const gsl_vector,
        rank: usize,
        x: *mut gsl_vector,
        residual: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QRPT_svx(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        p: *const gsl_permutation,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QRPT_QRsolve(
        Q: *const gsl_matrix,
        R: *const gsl_matrix,
        p: *const gsl_permutation,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QRPT_Rsolve(
        QR: *const gsl_matrix,
        p: *const gsl_permutation,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QRPT_Rsvx(
        QR: *const gsl_matrix,
        p: *const gsl_permutation,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QRPT_update(
        Q: *mut gsl_matrix,
        R: *mut gsl_matrix,
        p: *const gsl_permutation,
        u: *mut gsl_vector,
        v: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QRPT_rank(QR: *const gsl_matrix, tol: f64) -> usize;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_QRPT_rcond(
        QR: *const gsl_matrix,
        rcond: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_UD_decomp(
        U: *mut gsl_matrix,
        D: *const gsl_vector,
        Y: *mut gsl_matrix,
        T: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_UD_lssolve(
        R: *const gsl_matrix,
        Y: *const gsl_matrix,
        T: *const gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_UR_decomp(
        S: *mut gsl_matrix,
        A: *mut gsl_matrix,
        T: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_UU_decomp(
        U: *mut gsl_matrix,
        S: *mut gsl_matrix,
        T: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_UU_lssolve(
        R: *const gsl_matrix,
        Y: *const gsl_matrix,
        T: *const gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_UU_QTvec(
        Y: *const gsl_matrix,
        T: *const gsl_matrix,
        b: *mut gsl_vector,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_QR_UZ_decomp(
        S: *mut gsl_matrix,
        A: *mut gsl_matrix,
        T: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_QL_decomp(A: *mut gsl_matrix, tau: *mut gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_QL_unpack(
        QL: *const gsl_matrix,
        tau: *const gsl_vector,
        Q: *mut gsl_matrix,
        L: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_COD_decomp(
        A: *mut gsl_matrix,
        tau_Q: *mut gsl_vector,
        tau_Z: *mut gsl_vector,
        p: *mut gsl_permutation,
        rank: *mut usize,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_COD_decomp_e(
        A: *mut gsl_matrix,
        tau_Q: *mut gsl_vector,
        tau_Z: *mut gsl_vector,
        p: *mut gsl_permutation,
        tol: f64,
        rank: *mut usize,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_COD_lssolve(
        QRZT: *const gsl_matrix,
        tau_Q: *const gsl_vector,
        tau_Z: *const gsl_vector,
        perm: *const gsl_permutation,
        rank: usize,
        b: *const gsl_vector,
        x: *mut gsl_vector,
        residual: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_COD_lssolve2(
        lambda: f64,
        QRZT: *const gsl_matrix,
        tau_Q: *const gsl_vector,
        tau_Z: *const gsl_vector,
        perm: *const gsl_permutation,
        rank: usize,
        b: *const gsl_vector,
        x: *mut gsl_vector,
        residual: *mut gsl_vector,
        S: *mut gsl_matrix,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_COD_unpack(
        QRZT: *const gsl_matrix,
        tau_Q: *const gsl_vector,
        tau_Z: *const gsl_vector,
        rank: usize,
        Q: *mut gsl_matrix,
        R: *mut gsl_matrix,
        Z: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_COD_matZ(
        QRZT: *const gsl_matrix,
        tau_Z: *const gsl_vector,
        rank: usize,
        A: *mut gsl_matrix,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LQ_decomp(A: *mut gsl_matrix, tau: *mut gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_LQ_lssolve(
        LQ: *const gsl_matrix,
        tau: *const gsl_vector,
        b: *const gsl_vector,
        x: *mut gsl_vector,
        residual: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LQ_QTvec(
        LQ: *const gsl_matrix,
        tau: *const gsl_vector,
        v: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LQ_solve_T(
        LQ: *const gsl_matrix,
        tau: *const gsl_vector,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LQ_svx_T(
        LQ: *const gsl_matrix,
        tau: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LQ_lssolve_T(
        LQ: *const gsl_matrix,
        tau: *const gsl_vector,
        b: *const gsl_vector,
        x: *mut gsl_vector,
        residual: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LQ_Lsolve_T(
        LQ: *const gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LQ_Lsvx_T(LQ: *const gsl_matrix, x: *mut gsl_vector)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_L_solve_T(
        L: *const gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LQ_vecQ(
        LQ: *const gsl_matrix,
        tau: *const gsl_vector,
        v: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LQ_vecQT(
        LQ: *const gsl_matrix,
        tau: *const gsl_vector,
        v: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LQ_unpack(
        LQ: *const gsl_matrix,
        tau: *const gsl_vector,
        Q: *mut gsl_matrix,
        L: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LQ_update(
        Q: *mut gsl_matrix,
        R: *mut gsl_matrix,
        v: *const gsl_vector,
        w: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_LQ_LQsolve(
        Q: *mut gsl_matrix,
        L: *mut gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_PTLQ_decomp(
        A: *mut gsl_matrix,
        tau: *mut gsl_vector,
        p: *mut gsl_permutation,
        signum: *mut ::std::os::raw::c_int,
        norm: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_PTLQ_decomp2(
        A: *const gsl_matrix,
        q: *mut gsl_matrix,
        r: *mut gsl_matrix,
        tau: *mut gsl_vector,
        p: *mut gsl_permutation,
        signum: *mut ::std::os::raw::c_int,
        norm: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_PTLQ_solve_T(
        QR: *const gsl_matrix,
        tau: *const gsl_vector,
        p: *const gsl_permutation,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_PTLQ_svx_T(
        LQ: *const gsl_matrix,
        tau: *const gsl_vector,
        p: *const gsl_permutation,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_PTLQ_LQsolve_T(
        Q: *const gsl_matrix,
        L: *const gsl_matrix,
        p: *const gsl_permutation,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_PTLQ_Lsolve_T(
        LQ: *const gsl_matrix,
        p: *const gsl_permutation,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_PTLQ_Lsvx_T(
        LQ: *const gsl_matrix,
        p: *const gsl_permutation,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_PTLQ_update(
        Q: *mut gsl_matrix,
        L: *mut gsl_matrix,
        p: *const gsl_permutation,
        v: *const gsl_vector,
        w: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_decomp(A: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_decomp1(A: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_solve(
        cholesky: *const gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_solve_mat(
        cholesky: *const gsl_matrix,
        B: *const gsl_matrix,
        X: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_svx(
        cholesky: *const gsl_matrix,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_svx_mat(
        cholesky: *const gsl_matrix,
        X: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_invert(cholesky: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_decomp_unit(
        A: *mut gsl_matrix,
        D: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_scale(
        A: *const gsl_matrix,
        S: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_scale_apply(
        A: *mut gsl_matrix,
        S: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_decomp2(
        A: *mut gsl_matrix,
        S: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_svx2(
        LLT: *const gsl_matrix,
        S: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_cholesky_solve2(
        LLT: *const gsl_matrix,
        S: *const gsl_vector,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_cholesky_rcond(
        LLT: *const gsl_matrix,
        rcond: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_cholesky_decomp(A: *mut gsl_matrix_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_cholesky_solve(
        cholesky: *const gsl_matrix_complex,
        b: *const gsl_vector_complex,
        x: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_cholesky_svx(
        cholesky: *const gsl_matrix_complex,
        x: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_cholesky_invert(
        cholesky: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_pcholesky_decomp(
        A: *mut gsl_matrix,
        p: *mut gsl_permutation,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_pcholesky_solve(
        LDLT: *const gsl_matrix,
        p: *const gsl_permutation,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_pcholesky_svx(
        LDLT: *const gsl_matrix,
        p: *const gsl_permutation,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_pcholesky_decomp2(
        A: *mut gsl_matrix,
        p: *mut gsl_permutation,
        S: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_pcholesky_solve2(
        LDLT: *const gsl_matrix,
        p: *const gsl_permutation,
        S: *const gsl_vector,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_pcholesky_svx2(
        LDLT: *const gsl_matrix,
        p: *const gsl_permutation,
        S: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_pcholesky_invert(
        LDLT: *const gsl_matrix,
        p: *const gsl_permutation,
        Ainv: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_pcholesky_rcond(
        LDLT: *const gsl_matrix,
        p: *const gsl_permutation,
        rcond: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_mcholesky_decomp(
        A: *mut gsl_matrix,
        p: *mut gsl_permutation,
        E: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_mcholesky_solve(
        LDLT: *const gsl_matrix,
        p: *const gsl_permutation,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_mcholesky_svx(
        LDLT: *const gsl_matrix,
        p: *const gsl_permutation,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_mcholesky_rcond(
        LDLT: *const gsl_matrix,
        p: *const gsl_permutation,
        rcond: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_mcholesky_invert(
        LDLT: *const gsl_matrix,
        p: *const gsl_permutation,
        Ainv: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_cholesky_band_decomp(A: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_cholesky_band_solve(
        LLT: *const gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_cholesky_band_svx(
        LLT: *const gsl_matrix,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_cholesky_band_solvem(
        LLT: *const gsl_matrix,
        B: *const gsl_matrix,
        X: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_linalg_cholesky_band_svxm(
        LLT: *const gsl_matrix,
        X: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_cholesky_band_invert(
        LLT: *const gsl_matrix,
        Ainv: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_cholesky_band_unpack(
        LLT: *const gsl_matrix,
        L: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_cholesky_band_scale(
        A: *const gsl_matrix,
        S: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_cholesky_band_scale_apply(
        A: *mut gsl_matrix,
        S: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_cholesky_band_rcond(
        LLT: *const gsl_matrix,
        rcond: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_ldlt_decomp(A: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_ldlt_solve(
        LDLT: *const gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_ldlt_svx(
        LDLT: *const gsl_matrix,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_ldlt_rcond(
        LDLT: *const gsl_matrix,
        rcond: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_ldlt_band_decomp(A: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_ldlt_band_solve(
        LDLT: *const gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_ldlt_band_svx(
        LDLT: *const gsl_matrix,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_ldlt_band_unpack(
        LDLT: *const gsl_matrix,
        L: *mut gsl_matrix,
        D: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_linalg_ldlt_band_rcond(
        LDLT: *const gsl_matrix,
        rcond: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_symmtd_decomp(
        A: *mut gsl_matrix,
        tau: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_symmtd_unpack(
        A: *const gsl_matrix,
        tau: *const gsl_vector,
        Q: *mut gsl_matrix,
        diag: *mut gsl_vector,
        subdiag: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_symmtd_unpack_T(
        A: *const gsl_matrix,
        diag: *mut gsl_vector,
        subdiag: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_hermtd_decomp(
        A: *mut gsl_matrix_complex,
        tau: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_hermtd_unpack(
        A: *const gsl_matrix_complex,
        tau: *const gsl_vector_complex,
        U: *mut gsl_matrix_complex,
        diag: *mut gsl_vector,
        sudiag: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_hermtd_unpack_T(
        A: *const gsl_matrix_complex,
        diag: *mut gsl_vector,
        subdiag: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_HH_solve(
        A: *mut gsl_matrix,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_HH_svx(A: *mut gsl_matrix, x: *mut gsl_vector) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_solve_symm_tridiag(
        diag: *const gsl_vector,
        offdiag: *const gsl_vector,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_solve_tridiag(
        diag: *const gsl_vector,
        abovediag: *const gsl_vector,
        belowdiag: *const gsl_vector,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_solve_symm_cyc_tridiag(
        diag: *const gsl_vector,
        offdiag: *const gsl_vector,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_solve_cyc_tridiag(
        diag: *const gsl_vector,
        abovediag: *const gsl_vector,
        belowdiag: *const gsl_vector,
        b: *const gsl_vector,
        x: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_bidiag_decomp(
        A: *mut gsl_matrix,
        tau_U: *mut gsl_vector,
        tau_V: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_bidiag_unpack(
        A: *const gsl_matrix,
        tau_U: *const gsl_vector,
        U: *mut gsl_matrix,
        tau_V: *const gsl_vector,
        V: *mut gsl_matrix,
        diag: *mut gsl_vector,
        superdiag: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_bidiag_unpack2(
        A: *mut gsl_matrix,
        tau_U: *mut gsl_vector,
        tau_V: *mut gsl_vector,
        V: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_bidiag_unpack_B(
        A: *const gsl_matrix,
        diag: *mut gsl_vector,
        superdiag: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_balance_matrix(
        A: *mut gsl_matrix,
        D: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_balance_accum(
        A: *mut gsl_matrix,
        D: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_balance_columns(
        A: *mut gsl_matrix,
        D: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_tri_rcond(
        Uplo: CBLAS_UPLO_t,
        A: *const gsl_matrix,
        rcond: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_tri_upper_rcond(
        A: *const gsl_matrix,
        rcond: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_tri_lower_rcond(
        A: *const gsl_matrix,
        rcond: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_invnorm1(
        N: usize,
        Ainvx: ::std::option::Option<
            unsafe extern "C" fn(
                TransA: CBLAS_TRANSPOSE_t,
                x: *mut gsl_vector,
                params: *mut ::std::os::raw::c_void,
            ) -> ::std::os::raw::c_int,
        >,
        params: *mut ::std::os::raw::c_void,
        Ainvnorm: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_tri_upper_invert(T: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_tri_lower_invert(T: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_tri_upper_unit_invert(T: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_tri_lower_unit_invert(T: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_tri_invert(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        T: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_tri_invert(
        Uplo: CBLAS_UPLO_t,
        Diag: CBLAS_DIAG_t,
        T: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_tri_LTL(L: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_linalg_tri_UL(LU: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_tri_LHL(L: *mut gsl_matrix_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_complex_tri_UL(LU: *mut gsl_matrix_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_linalg_givens(a: f64, b: f64, c: *mut f64, s: *mut f64);
}
extern "C" {
    pub fn gsl_linalg_givens_gv(v: *mut gsl_vector, i: usize, j: usize, c: f64, s: f64);
}
extern "C" {
    pub fn gsl_message(
        message: *const ::std::os::raw::c_char,
        file: *const ::std::os::raw::c_char,
        line: ::std::os::raw::c_int,
        mask: ::std::os::raw::c_uint,
    );
}
extern "C" {
    pub static mut gsl_message_mask: ::std::os::raw::c_uint;
}
pub const GSL_MESSAGE_MASK_A: ::std::os::raw::c_uint = 1;
pub const GSL_MESSAGE_MASK_B: ::std::os::raw::c_uint = 2;
pub const GSL_MESSAGE_MASK_C: ::std::os::raw::c_uint = 4;
pub const GSL_MESSAGE_MASK_D: ::std::os::raw::c_uint = 8;
pub const GSL_MESSAGE_MASK_E: ::std::os::raw::c_uint = 16;
pub const GSL_MESSAGE_MASK_F: ::std::os::raw::c_uint = 32;
pub const GSL_MESSAGE_MASK_G: ::std::os::raw::c_uint = 64;
pub const GSL_MESSAGE_MASK_H: ::std::os::raw::c_uint = 128;
pub type _bindgen_ty_7 = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_min_fminimizer_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_min_fminimizer;
extern "C" {
    pub fn gsl_min_fminimizer_alloc(T: *const gsl_min_fminimizer_type) -> *mut gsl_min_fminimizer;
}
extern "C" {
    pub fn gsl_min_fminimizer_free(s: *mut gsl_min_fminimizer);
}
extern "C" {
    pub fn gsl_min_fminimizer_set(
        s: *mut gsl_min_fminimizer,
        f: *mut gsl_function,
        x_minimum: f64,
        x_lower: f64,
        x_upper: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_min_fminimizer_set_with_values(
        s: *mut gsl_min_fminimizer,
        f: *mut gsl_function,
        x_minimum: f64,
        f_minimum: f64,
        x_lower: f64,
        f_lower: f64,
        x_upper: f64,
        f_upper: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_min_fminimizer_iterate(s: *mut gsl_min_fminimizer) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_min_fminimizer_name(s: *const gsl_min_fminimizer) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_min_fminimizer_x_minimum(s: *const gsl_min_fminimizer) -> f64;
}
extern "C" {
    pub fn gsl_min_fminimizer_x_lower(s: *const gsl_min_fminimizer) -> f64;
}
extern "C" {
    pub fn gsl_min_fminimizer_x_upper(s: *const gsl_min_fminimizer) -> f64;
}
extern "C" {
    pub fn gsl_min_fminimizer_f_minimum(s: *const gsl_min_fminimizer) -> f64;
}
extern "C" {
    pub fn gsl_min_fminimizer_f_lower(s: *const gsl_min_fminimizer) -> f64;
}
extern "C" {
    pub fn gsl_min_fminimizer_f_upper(s: *const gsl_min_fminimizer) -> f64;
}
extern "C" {
    pub fn gsl_min_fminimizer_minimum(s: *const gsl_min_fminimizer) -> f64;
}
extern "C" {
    pub fn gsl_min_test_interval(
        x_lower: f64,
        x_upper: f64,
        epsabs: f64,
        epsrel: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub static mut gsl_min_fminimizer_goldensection: *const gsl_min_fminimizer_type;
}
extern "C" {
    pub static mut gsl_min_fminimizer_brent: *const gsl_min_fminimizer_type;
}
extern "C" {
    pub static mut gsl_min_fminimizer_quad_golden: *const gsl_min_fminimizer_type;
}
pub type gsl_min_bracketing_function = ::std::option::Option<
    unsafe extern "C" fn(
        f: *mut gsl_function,
        x_minimum: *mut f64,
        f_minimum: *mut f64,
        x_lower: *mut f64,
        f_lower: *mut f64,
        x_upper: *mut f64,
        f_upper: *mut f64,
        eval_max: usize,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn gsl_min_find_bracket(
        f: *mut gsl_function,
        x_minimum: *mut f64,
        f_minimum: *mut f64,
        x_lower: *mut f64,
        f_lower: *mut f64,
        x_upper: *mut f64,
        f_upper: *mut f64,
        eval_max: usize,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_monte_function_struct {
    pub f: ::std::option::Option<
        unsafe extern "C" fn(
            x_array: *mut f64,
            dim: usize,
            params: *mut ::std::os::raw::c_void,
        ) -> f64,
    >,
    pub dim: usize,
    pub params: *mut ::std::os::raw::c_void,
}
pub type gsl_monte_function = gsl_monte_function_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_rng_type {
    pub name: *const ::std::os::raw::c_char,
    pub max: ::std::os::raw::c_ulong,
    pub min: ::std::os::raw::c_ulong,
    pub size: usize,
    pub set: ::std::option::Option<
        unsafe extern "C" fn(state: *mut ::std::os::raw::c_void, seed: ::std::os::raw::c_ulong),
    >,
    pub get: ::std::option::Option<
        unsafe extern "C" fn(state: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_ulong,
    >,
    pub get_double:
        ::std::option::Option<unsafe extern "C" fn(state: *mut ::std::os::raw::c_void) -> f64>,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_rng;
extern "C" {
    pub static mut gsl_rng_borosh13: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_coveyou: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_cmrg: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_fishman18: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_fishman20: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_fishman2x: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_gfsr4: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_knuthran: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_knuthran2: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_knuthran2002: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_lecuyer21: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_minstd: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_mrg: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_mt19937: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_mt19937_1999: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_mt19937_1998: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_r250: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ran0: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ran1: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ran2: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ran3: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_rand: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_rand48: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random128_bsd: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random128_glibc2: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random128_libc5: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random256_bsd: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random256_glibc2: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random256_libc5: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random32_bsd: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random32_glibc2: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random32_libc5: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random64_bsd: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random64_glibc2: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random64_libc5: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random8_bsd: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random8_glibc2: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random8_libc5: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random_bsd: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random_glibc2: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_random_libc5: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_randu: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ranf: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ranlux: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ranlux389: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ranlxd1: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ranlxd2: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ranlxs0: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ranlxs1: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ranlxs2: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_ranmar: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_slatec: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_taus: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_taus2: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_taus113: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_transputer: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_tt800: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_uni: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_uni32: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_vax: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_waterman14: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_zuf: *const gsl_rng_type;
}
extern "C" {
    pub fn gsl_rng_types_setup() -> *mut *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_default: *const gsl_rng_type;
}
extern "C" {
    pub static mut gsl_rng_default_seed: ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_rng_alloc(T: *const gsl_rng_type) -> *mut gsl_rng;
}
extern "C" {
    pub fn gsl_rng_memcpy(dest: *mut gsl_rng, src: *const gsl_rng) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_rng_clone(r: *const gsl_rng) -> *mut gsl_rng;
}
extern "C" {
    pub fn gsl_rng_free(r: *mut gsl_rng);
}
extern "C" {
    pub fn gsl_rng_set(r: *const gsl_rng, seed: ::std::os::raw::c_ulong);
}
extern "C" {
    pub fn gsl_rng_max(r: *const gsl_rng) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_rng_min(r: *const gsl_rng) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_rng_name(r: *const gsl_rng) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_rng_fread(stream: *mut FILE, r: *mut gsl_rng) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_rng_fwrite(stream: *mut FILE, r: *const gsl_rng) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_rng_size(r: *const gsl_rng) -> usize;
}
extern "C" {
    pub fn gsl_rng_state(r: *const gsl_rng) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn gsl_rng_print_state(r: *const gsl_rng);
}
extern "C" {
    pub fn gsl_rng_env_setup() -> *const gsl_rng_type;
}
extern "C" {
    pub fn gsl_rng_get(r: *const gsl_rng) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_rng_uniform(r: *const gsl_rng) -> f64;
}
extern "C" {
    pub fn gsl_rng_uniform_pos(r: *const gsl_rng) -> f64;
}
extern "C" {
    pub fn gsl_rng_uniform_int(
        r: *const gsl_rng,
        n: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_ulong;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_monte_plain_state;
extern "C" {
    pub fn gsl_monte_plain_integrate(
        f: *const gsl_monte_function,
        xl: *const f64,
        xu: *const f64,
        dim: usize,
        calls: usize,
        r: *mut gsl_rng,
        state: *mut gsl_monte_plain_state,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_monte_plain_alloc(dim: usize) -> *mut gsl_monte_plain_state;
}
extern "C" {
    pub fn gsl_monte_plain_init(state: *mut gsl_monte_plain_state) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_monte_plain_free(state: *mut gsl_monte_plain_state);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_monte_miser_state;
extern "C" {
    pub fn gsl_monte_miser_integrate(
        f: *mut gsl_monte_function,
        xl: *const f64,
        xh: *const f64,
        dim: usize,
        calls: usize,
        r: *mut gsl_rng,
        state: *mut gsl_monte_miser_state,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_monte_miser_alloc(dim: usize) -> *mut gsl_monte_miser_state;
}
extern "C" {
    pub fn gsl_monte_miser_init(state: *mut gsl_monte_miser_state) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_monte_miser_free(state: *mut gsl_monte_miser_state);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_monte_miser_params {
    pub estimate_frac: f64,
    pub min_calls: usize,
    pub min_calls_per_bisection: usize,
    pub alpha: f64,
    pub dither: f64,
}
extern "C" {
    pub fn gsl_monte_miser_params_get(
        state: *const gsl_monte_miser_state,
        params: *mut gsl_monte_miser_params,
    );
}
extern "C" {
    pub fn gsl_monte_miser_params_set(
        state: *mut gsl_monte_miser_state,
        params: *const gsl_monte_miser_params,
    );
}
pub const GSL_VEGAS_MODE_IMPORTANCE: ::std::os::raw::c_int = 1;
pub const GSL_VEGAS_MODE_IMPORTANCE_ONLY: ::std::os::raw::c_int = 0;
pub const GSL_VEGAS_MODE_STRATIFIED: ::std::os::raw::c_int = -1;
pub type _bindgen_ty_8 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_monte_vegas_state;
extern "C" {
    pub fn gsl_monte_vegas_integrate(
        f: *mut gsl_monte_function,
        xl: *mut f64,
        xu: *mut f64,
        dim: usize,
        calls: usize,
        r: *mut gsl_rng,
        state: *mut gsl_monte_vegas_state,
        result: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_monte_vegas_alloc(dim: usize) -> *mut gsl_monte_vegas_state;
}
extern "C" {
    pub fn gsl_monte_vegas_init(state: *mut gsl_monte_vegas_state) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_monte_vegas_free(state: *mut gsl_monte_vegas_state);
}
extern "C" {
    pub fn gsl_monte_vegas_chisq(state: *const gsl_monte_vegas_state) -> f64;
}
extern "C" {
    pub fn gsl_monte_vegas_runval(
        state: *const gsl_monte_vegas_state,
        result: *mut f64,
        sigma: *mut f64,
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_monte_vegas_params {
    pub alpha: f64,
    pub iterations: usize,
    pub stage: ::std::os::raw::c_int,
    pub mode: ::std::os::raw::c_int,
    pub verbose: ::std::os::raw::c_int,
    pub ostream: *mut FILE,
}
extern "C" {
    pub fn gsl_monte_vegas_params_get(
        state: *const gsl_monte_vegas_state,
        params: *mut gsl_monte_vegas_params,
    );
}
extern "C" {
    pub fn gsl_monte_vegas_params_set(
        state: *mut gsl_monte_vegas_state,
        params: *const gsl_monte_vegas_params,
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_linear_workspace;
extern "C" {
    pub fn gsl_multifit_linear_alloc(n: usize, p: usize) -> *mut gsl_multifit_linear_workspace;
}
extern "C" {
    pub fn gsl_multifit_linear_free(w: *mut gsl_multifit_linear_workspace);
}
extern "C" {
    pub fn gsl_multifit_linear(
        X: *const gsl_matrix,
        y: *const gsl_vector,
        c: *mut gsl_vector,
        cov: *mut gsl_matrix,
        chisq: *mut f64,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_3")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_3")))]
    pub fn gsl_multifit_linear_tsvd(
        X: *const gsl_matrix,
        y: *const gsl_vector,
        tol: f64,
        c: *mut gsl_vector,
        cov: *mut gsl_matrix,
        chisq: *mut f64,
        rank: *mut usize,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_svd(
        X: *const gsl_matrix,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_bsvd(
        X: *const gsl_matrix,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_3")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_3")))]
    pub fn gsl_multifit_linear_rank(tol: f64, work: *const gsl_multifit_linear_workspace) -> usize;
}
extern "C" {
    pub fn gsl_multifit_linear_solve(
        lambda: f64,
        X: *const gsl_matrix,
        y: *const gsl_vector,
        c: *mut gsl_vector,
        rnorm: *mut f64,
        snorm: *mut f64,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_applyW(
        X: *const gsl_matrix,
        w: *const gsl_vector,
        y: *const gsl_vector,
        WX: *mut gsl_matrix,
        Wy: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_stdform1(
        L: *const gsl_vector,
        X: *const gsl_matrix,
        y: *const gsl_vector,
        Xs: *mut gsl_matrix,
        ys: *mut gsl_vector,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_wstdform1(
        L: *const gsl_vector,
        X: *const gsl_matrix,
        w: *const gsl_vector,
        y: *const gsl_vector,
        Xs: *mut gsl_matrix,
        ys: *mut gsl_vector,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_L_decomp(
        L: *mut gsl_matrix,
        tau: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_stdform2(
        LQR: *const gsl_matrix,
        Ltau: *const gsl_vector,
        X: *const gsl_matrix,
        y: *const gsl_vector,
        Xs: *mut gsl_matrix,
        ys: *mut gsl_vector,
        M: *mut gsl_matrix,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_wstdform2(
        LQR: *const gsl_matrix,
        Ltau: *const gsl_vector,
        X: *const gsl_matrix,
        w: *const gsl_vector,
        y: *const gsl_vector,
        Xs: *mut gsl_matrix,
        ys: *mut gsl_vector,
        M: *mut gsl_matrix,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_genform1(
        L: *const gsl_vector,
        cs: *const gsl_vector,
        c: *mut gsl_vector,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_genform2(
        LQR: *const gsl_matrix,
        Ltau: *const gsl_vector,
        X: *const gsl_matrix,
        y: *const gsl_vector,
        cs: *const gsl_vector,
        M: *const gsl_matrix,
        c: *mut gsl_vector,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_wgenform2(
        LQR: *const gsl_matrix,
        Ltau: *const gsl_vector,
        X: *const gsl_matrix,
        w: *const gsl_vector,
        y: *const gsl_vector,
        cs: *const gsl_vector,
        M: *const gsl_matrix,
        c: *mut gsl_vector,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_lreg(
        smin: f64,
        smax: f64,
        reg_param: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_lcurve(
        y: *const gsl_vector,
        reg_param: *mut gsl_vector,
        rho: *mut gsl_vector,
        eta: *mut gsl_vector,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_lcurvature(
        y: *const gsl_vector,
        reg_param: *const gsl_vector,
        rho: *const gsl_vector,
        eta: *const gsl_vector,
        kappa: *mut gsl_vector,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_lcorner(
        rho: *const gsl_vector,
        eta: *const gsl_vector,
        idx: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_lcorner2(
        reg_param: *const gsl_vector,
        eta: *const gsl_vector,
        idx: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_Lk(p: usize, k: usize, L: *mut gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_Lsobolev(
        p: usize,
        kmax: usize,
        alpha: *const gsl_vector,
        L: *mut gsl_matrix,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_wlinear(
        X: *const gsl_matrix,
        w: *const gsl_vector,
        y: *const gsl_vector,
        c: *mut gsl_vector,
        cov: *mut gsl_matrix,
        chisq: *mut f64,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_3")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_3")))]
    pub fn gsl_multifit_wlinear_tsvd(
        X: *const gsl_matrix,
        w: *const gsl_vector,
        y: *const gsl_vector,
        tol: f64,
        c: *mut gsl_vector,
        cov: *mut gsl_matrix,
        chisq: *mut f64,
        rank: *mut usize,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_wlinear_svd(
        X: *const gsl_matrix,
        w: *const gsl_vector,
        y: *const gsl_vector,
        tol: f64,
        rank: *mut usize,
        c: *mut gsl_vector,
        cov: *mut gsl_matrix,
        chisq: *mut f64,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_wlinear_usvd(
        X: *const gsl_matrix,
        w: *const gsl_vector,
        y: *const gsl_vector,
        tol: f64,
        rank: *mut usize,
        c: *mut gsl_vector,
        cov: *mut gsl_matrix,
        chisq: *mut f64,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_est(
        x: *const gsl_vector,
        c: *const gsl_vector,
        cov: *const gsl_matrix,
        y: *mut f64,
        y_err: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multifit_linear_rcond(w: *const gsl_multifit_linear_workspace) -> f64;
}
extern "C" {
    pub fn gsl_multifit_linear_residuals(
        X: *const gsl_matrix,
        y: *const gsl_vector,
        c: *const gsl_vector,
        r: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_gcv_init(
        y: *const gsl_vector,
        reg_param: *mut gsl_vector,
        UTy: *mut gsl_vector,
        delta0: *mut f64,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_gcv_curve(
        reg_param: *const gsl_vector,
        UTy: *const gsl_vector,
        delta0: f64,
        G: *mut gsl_vector,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_gcv_min(
        reg_param: *const gsl_vector,
        UTy: *const gsl_vector,
        G: *const gsl_vector,
        delta0: f64,
        lambda: *mut f64,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_linear_gcv_calc(
        lambda: f64,
        UTy: *const gsl_vector,
        delta0: f64,
        work: *mut gsl_multifit_linear_workspace,
    ) -> f64;
}
extern "C" {
    pub fn gsl_multifit_linear_gcv(
        y: *const gsl_vector,
        reg_param: *mut gsl_vector,
        G: *mut gsl_vector,
        lambda: *mut f64,
        G_lambda: *mut f64,
        work: *mut gsl_multifit_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_robust_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_robust_stats;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_robust_workspace;
extern "C" {
    pub static mut gsl_multifit_robust_default: *const gsl_multifit_robust_type;
}
extern "C" {
    pub static mut gsl_multifit_robust_bisquare: *const gsl_multifit_robust_type;
}
extern "C" {
    pub static mut gsl_multifit_robust_cauchy: *const gsl_multifit_robust_type;
}
extern "C" {
    pub static mut gsl_multifit_robust_fair: *const gsl_multifit_robust_type;
}
extern "C" {
    pub static mut gsl_multifit_robust_huber: *const gsl_multifit_robust_type;
}
extern "C" {
    pub static mut gsl_multifit_robust_ols: *const gsl_multifit_robust_type;
}
extern "C" {
    pub static mut gsl_multifit_robust_welsch: *const gsl_multifit_robust_type;
}
extern "C" {
    pub fn gsl_multifit_robust_alloc(
        T: *const gsl_multifit_robust_type,
        n: usize,
        p: usize,
    ) -> *mut gsl_multifit_robust_workspace;
}
extern "C" {
    pub fn gsl_multifit_robust_free(w: *mut gsl_multifit_robust_workspace);
}
extern "C" {
    pub fn gsl_multifit_robust_tune(
        tune: f64,
        w: *mut gsl_multifit_robust_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_robust_maxiter(
        maxiter: usize,
        w: *mut gsl_multifit_robust_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_robust_name(
        w: *const gsl_multifit_robust_workspace,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_multifit_robust_statistics(
        w: *const gsl_multifit_robust_workspace,
    ) -> gsl_multifit_robust_stats;
}
extern "C" {
    pub fn gsl_multifit_robust_weights(
        r: *const gsl_vector,
        wts: *mut gsl_vector,
        w: *mut gsl_multifit_robust_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_robust(
        X: *const gsl_matrix,
        y: *const gsl_vector,
        c: *mut gsl_vector,
        cov: *mut gsl_matrix,
        w: *mut gsl_multifit_robust_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_robust_est(
        x: *const gsl_vector,
        c: *const gsl_vector,
        cov: *const gsl_matrix,
        y: *mut f64,
        y_err: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_robust_residuals(
        X: *const gsl_matrix,
        y: *const gsl_vector,
        c: *const gsl_vector,
        r: *mut gsl_vector,
        w: *mut gsl_multifit_robust_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_gradient(
        J: *const gsl_matrix,
        f: *const gsl_vector,
        g: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_covar(
        J: *const gsl_matrix,
        epsrel: f64,
        covar: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_covar_QRPT(
        r: *mut gsl_matrix,
        perm: *mut gsl_permutation,
        epsrel: f64,
        covar: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_function_struct;
pub type gsl_multifit_function = gsl_multifit_function_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_fsolver_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_fsolver;
extern "C" {
    pub fn gsl_multifit_fsolver_alloc(
        T: *const gsl_multifit_fsolver_type,
        n: usize,
        p: usize,
    ) -> *mut gsl_multifit_fsolver;
}
extern "C" {
    pub fn gsl_multifit_fsolver_free(s: *mut gsl_multifit_fsolver);
}
extern "C" {
    pub fn gsl_multifit_fsolver_set(
        s: *mut gsl_multifit_fsolver,
        f: *mut gsl_multifit_function,
        x: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fsolver_iterate(s: *mut gsl_multifit_fsolver) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fsolver_driver(
        s: *mut gsl_multifit_fsolver,
        maxiter: usize,
        epsabs: f64,
        epsrel: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fsolver_name(
        s: *const gsl_multifit_fsolver,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_multifit_fsolver_position(s: *const gsl_multifit_fsolver) -> *mut gsl_vector;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_function_fdf_struct {
    pub f: ::std::option::Option<
        unsafe extern "C" fn(
            x: *const gsl_vector,
            params: *mut ::std::os::raw::c_void,
            f: *mut gsl_vector,
        ) -> ::std::os::raw::c_int,
    >,
    pub df: ::std::option::Option<
        unsafe extern "C" fn(
            x: *const gsl_vector,
            params: *mut ::std::os::raw::c_void,
            df: *mut gsl_matrix,
        ) -> ::std::os::raw::c_int,
    >,
    pub fdf: ::std::option::Option<
        unsafe extern "C" fn(
            x: *const gsl_vector,
            params: *mut ::std::os::raw::c_void,
            f: *mut gsl_vector,
            df: *mut gsl_matrix,
        ) -> ::std::os::raw::c_int,
    >,
    pub n: usize,
    pub p: usize,
    pub params: *mut ::std::os::raw::c_void,
    pub nevalf: usize,
    pub nevaldf: usize,
}
pub type gsl_multifit_function_fdf = gsl_multifit_function_fdf_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_fdfsolver_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_fdfsolver {
    pub type_: *const gsl_multifit_fdfsolver_type,
    pub fdf: *mut gsl_multifit_function_fdf,
    pub x: *mut gsl_vector,
    pub f: *mut gsl_vector,
    pub dx: *mut gsl_vector,
    pub g: *mut gsl_vector,
    pub sqrt_wts: *mut gsl_vector,
    pub niter: usize,
    pub state: *mut ::std::os::raw::c_void,
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_alloc(
        T: *const gsl_multifit_fdfsolver_type,
        n: usize,
        p: usize,
    ) -> *mut gsl_multifit_fdfsolver;
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_set(
        s: *mut gsl_multifit_fdfsolver,
        fdf: *mut gsl_multifit_function_fdf,
        x: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_wset(
        s: *mut gsl_multifit_fdfsolver,
        f: *mut gsl_multifit_function_fdf,
        x: *const gsl_vector,
        wts: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_iterate(s: *mut gsl_multifit_fdfsolver) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_driver(
        s: *mut gsl_multifit_fdfsolver,
        maxiter: usize,
        xtol: f64,
        gtol: f64,
        ftol: f64,
        info: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_jac(
        s: *mut gsl_multifit_fdfsolver,
        J: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_free(s: *mut gsl_multifit_fdfsolver);
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_name(
        s: *const gsl_multifit_fdfsolver,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_position(s: *const gsl_multifit_fdfsolver) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_residual(s: *const gsl_multifit_fdfsolver) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_niter(s: *const gsl_multifit_fdfsolver) -> usize;
}
extern "C" {
    pub fn gsl_multifit_eval_wf(
        fdf: *mut gsl_multifit_function_fdf,
        x: *const gsl_vector,
        wts: *const gsl_vector,
        y: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_eval_wdf(
        fdf: *mut gsl_multifit_function_fdf,
        x: *const gsl_vector,
        wts: *const gsl_vector,
        dy: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_test(
        s: *const gsl_multifit_fdfsolver,
        xtol: f64,
        gtol: f64,
        ftol: f64,
        info: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_test_delta(
        dx: *const gsl_vector,
        x: *const gsl_vector,
        epsabs: f64,
        epsrel: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_test_gradient(g: *const gsl_vector, epsabs: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_dif_df(
        x: *const gsl_vector,
        wts: *const gsl_vector,
        fdf: *mut gsl_multifit_function_fdf,
        f: *const gsl_vector,
        J: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfsolver_dif_fdf(
        x: *const gsl_vector,
        fdf: *mut gsl_multifit_function_fdf,
        f: *mut gsl_vector,
        J: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_fdfridge;
extern "C" {
    pub fn gsl_multifit_fdfridge_alloc(
        T: *const gsl_multifit_fdfsolver_type,
        n: usize,
        p: usize,
    ) -> *mut gsl_multifit_fdfridge;
}
extern "C" {
    pub fn gsl_multifit_fdfridge_free(work: *mut gsl_multifit_fdfridge);
}
extern "C" {
    pub fn gsl_multifit_fdfridge_name(
        w: *const gsl_multifit_fdfridge,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_multifit_fdfridge_position(w: *const gsl_multifit_fdfridge) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multifit_fdfridge_residual(w: *const gsl_multifit_fdfridge) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multifit_fdfridge_niter(w: *const gsl_multifit_fdfridge) -> usize;
}
extern "C" {
    pub fn gsl_multifit_fdfridge_set(
        w: *mut gsl_multifit_fdfridge,
        f: *mut gsl_multifit_function_fdf,
        x: *const gsl_vector,
        lambda: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfridge_wset(
        w: *mut gsl_multifit_fdfridge,
        f: *mut gsl_multifit_function_fdf,
        x: *const gsl_vector,
        lambda: f64,
        wts: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfridge_set2(
        w: *mut gsl_multifit_fdfridge,
        f: *mut gsl_multifit_function_fdf,
        x: *const gsl_vector,
        lambda: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfridge_wset2(
        w: *mut gsl_multifit_fdfridge,
        f: *mut gsl_multifit_function_fdf,
        x: *const gsl_vector,
        lambda: *const gsl_vector,
        wts: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfridge_set3(
        w: *mut gsl_multifit_fdfridge,
        f: *mut gsl_multifit_function_fdf,
        x: *const gsl_vector,
        L: *const gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfridge_wset3(
        w: *mut gsl_multifit_fdfridge,
        f: *mut gsl_multifit_function_fdf,
        x: *const gsl_vector,
        L: *const gsl_matrix,
        wts: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfridge_iterate(w: *mut gsl_multifit_fdfridge) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_fdfridge_driver(
        w: *mut gsl_multifit_fdfridge,
        maxiter: usize,
        xtol: f64,
        gtol: f64,
        ftol: f64,
        info: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub static mut gsl_multifit_fdfsolver_lmsder: *const gsl_multifit_fdfsolver_type;
}
extern "C" {
    pub static mut gsl_multifit_fdfsolver_lmder: *const gsl_multifit_fdfsolver_type;
}
extern "C" {
    pub static mut gsl_multifit_fdfsolver_lmniel: *const gsl_multifit_fdfsolver_type;
}
pub const gsl_multifit_nlinear_fdtype_GSL_MULTIFIT_NLINEAR_FWDIFF: gsl_multifit_nlinear_fdtype = 0;
pub const gsl_multifit_nlinear_fdtype_GSL_MULTIFIT_NLINEAR_CTRDIFF: gsl_multifit_nlinear_fdtype = 1;
pub type gsl_multifit_nlinear_fdtype = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_nlinear_fdf;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_nlinear_trs;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_nlinear_scale;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_nlinear_solver;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_nlinear_parameters;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_nlinear_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_nlinear_trust_state;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multifit_nlinear_workspace;
extern "C" {
    pub fn gsl_multifit_nlinear_alloc(
        T: *const gsl_multifit_nlinear_type,
        params: *const gsl_multifit_nlinear_parameters,
        n: usize,
        p: usize,
    ) -> *mut gsl_multifit_nlinear_workspace;
}
extern "C" {
    pub fn gsl_multifit_nlinear_free(w: *mut gsl_multifit_nlinear_workspace);
}
extern "C" {
    pub fn gsl_multifit_nlinear_default_parameters() -> gsl_multifit_nlinear_parameters;
}
extern "C" {
    pub fn gsl_multifit_nlinear_init(
        x: *const gsl_vector,
        fdf: *mut gsl_multifit_nlinear_fdf,
        w: *mut gsl_multifit_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_nlinear_winit(
        x: *const gsl_vector,
        wts: *const gsl_vector,
        fdf: *mut gsl_multifit_nlinear_fdf,
        w: *mut gsl_multifit_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_nlinear_iterate(
        w: *mut gsl_multifit_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_nlinear_avratio(w: *const gsl_multifit_nlinear_workspace) -> f64;
}
extern "C" {
    pub fn gsl_multifit_nlinear_driver(
        maxiter: usize,
        xtol: f64,
        gtol: f64,
        ftol: f64,
        callback: ::std::option::Option<
            unsafe extern "C" fn(
                iter: usize,
                params: *mut ::std::os::raw::c_void,
                w: *const gsl_multifit_nlinear_workspace,
            ),
        >,
        callback_params: *mut ::std::os::raw::c_void,
        info: *mut ::std::os::raw::c_int,
        w: *mut gsl_multifit_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_nlinear_jac(w: *const gsl_multifit_nlinear_workspace) -> *mut gsl_matrix;
}
extern "C" {
    pub fn gsl_multifit_nlinear_name(
        w: *const gsl_multifit_nlinear_workspace,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_multifit_nlinear_position(
        w: *const gsl_multifit_nlinear_workspace,
    ) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multifit_nlinear_residual(
        w: *const gsl_multifit_nlinear_workspace,
    ) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multifit_nlinear_niter(w: *const gsl_multifit_nlinear_workspace) -> usize;
}
extern "C" {
    pub fn gsl_multifit_nlinear_rcond(
        rcond: *mut f64,
        w: *const gsl_multifit_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_nlinear_trs_name(
        w: *const gsl_multifit_nlinear_workspace,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_multifit_nlinear_eval_f(
        fdf: *mut gsl_multifit_nlinear_fdf,
        x: *const gsl_vector,
        swts: *const gsl_vector,
        y: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_nlinear_eval_df(
        x: *const gsl_vector,
        f: *const gsl_vector,
        swts: *const gsl_vector,
        h: f64,
        fdtype: gsl_multifit_nlinear_fdtype,
        fdf: *mut gsl_multifit_nlinear_fdf,
        df: *mut gsl_matrix,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_nlinear_eval_fvv(
        h: f64,
        x: *const gsl_vector,
        v: *const gsl_vector,
        f: *const gsl_vector,
        J: *const gsl_matrix,
        swts: *const gsl_vector,
        fdf: *mut gsl_multifit_nlinear_fdf,
        yvv: *mut gsl_vector,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_nlinear_covar(
        J: *const gsl_matrix,
        epsrel: f64,
        covar: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_nlinear_test(
        xtol: f64,
        gtol: f64,
        ftol: f64,
        info: *mut ::std::os::raw::c_int,
        w: *const gsl_multifit_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_nlinear_df(
        h: f64,
        fdtype: gsl_multifit_nlinear_fdtype,
        x: *const gsl_vector,
        wts: *const gsl_vector,
        fdf: *mut gsl_multifit_nlinear_fdf,
        f: *const gsl_vector,
        J: *mut gsl_matrix,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multifit_nlinear_fdfvv(
        h: f64,
        x: *const gsl_vector,
        v: *const gsl_vector,
        f: *const gsl_vector,
        J: *const gsl_matrix,
        swts: *const gsl_vector,
        fdf: *mut gsl_multifit_nlinear_fdf,
        fvv: *mut gsl_vector,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_trust: *const gsl_multifit_nlinear_type;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_trs_lm: *const gsl_multifit_nlinear_trs;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_trs_lmaccel: *const gsl_multifit_nlinear_trs;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_trs_dogleg: *const gsl_multifit_nlinear_trs;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_trs_ddogleg: *const gsl_multifit_nlinear_trs;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_trs_subspace2D: *const gsl_multifit_nlinear_trs;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_scale_levenberg: *const gsl_multifit_nlinear_scale;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_scale_marquardt: *const gsl_multifit_nlinear_scale;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_scale_more: *const gsl_multifit_nlinear_scale;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_solver_cholesky: *const gsl_multifit_nlinear_solver;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_solver_mcholesky: *const gsl_multifit_nlinear_solver;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_solver_qr: *const gsl_multifit_nlinear_solver;
}
extern "C" {
    pub static mut gsl_multifit_nlinear_solver_svd: *const gsl_multifit_nlinear_solver;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_1")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
pub struct gsl_multilarge_linear_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_1")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
pub struct gsl_multilarge_linear_workspace;
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_linear_normal: *const gsl_multilarge_linear_type;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_linear_tsqr: *const gsl_multilarge_linear_type;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_alloc(
        T: *const gsl_multilarge_linear_type,
        p: usize,
    ) -> *mut gsl_multilarge_linear_workspace;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_free(w: *mut gsl_multilarge_linear_workspace);
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_name(
        w: *const gsl_multilarge_linear_workspace,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_reset(
        w: *mut gsl_multilarge_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_accumulate(
        X: *mut gsl_matrix,
        y: *mut gsl_vector,
        w: *mut gsl_multilarge_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_solve(
        lambda: f64,
        c: *mut gsl_vector,
        rnorm: *mut f64,
        snorm: *mut f64,
        w: *mut gsl_multilarge_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_rcond(
        rcond: *mut f64,
        w: *mut gsl_multilarge_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_multilarge_linear_lcurve(
        reg_param: *mut gsl_vector,
        rho: *mut gsl_vector,
        eta: *mut gsl_vector,
        w: *mut gsl_multilarge_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_wstdform1(
        L: *const gsl_vector,
        X: *const gsl_matrix,
        w: *const gsl_vector,
        y: *const gsl_vector,
        Xs: *mut gsl_matrix,
        ys: *mut gsl_vector,
        work: *mut gsl_multilarge_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_stdform1(
        L: *const gsl_vector,
        X: *const gsl_matrix,
        y: *const gsl_vector,
        Xs: *mut gsl_matrix,
        ys: *mut gsl_vector,
        work: *mut gsl_multilarge_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_L_decomp(
        L: *mut gsl_matrix,
        tau: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_wstdform2(
        LQR: *const gsl_matrix,
        Ltau: *const gsl_vector,
        X: *const gsl_matrix,
        w: *const gsl_vector,
        y: *const gsl_vector,
        Xs: *mut gsl_matrix,
        ys: *mut gsl_vector,
        work: *mut gsl_multilarge_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_stdform2(
        LQR: *const gsl_matrix,
        Ltau: *const gsl_vector,
        X: *const gsl_matrix,
        y: *const gsl_vector,
        Xs: *mut gsl_matrix,
        ys: *mut gsl_vector,
        work: *mut gsl_multilarge_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_genform1(
        L: *const gsl_vector,
        cs: *const gsl_vector,
        c: *mut gsl_vector,
        work: *mut gsl_multilarge_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_linear_genform2(
        LQR: *const gsl_matrix,
        Ltau: *const gsl_vector,
        cs: *const gsl_vector,
        c: *mut gsl_vector,
        work: *mut gsl_multilarge_linear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_multilarge_linear_matrix_ptr(
        work: *const gsl_multilarge_linear_workspace,
    ) -> *const gsl_matrix;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_multilarge_linear_rhs_ptr(
        work: *const gsl_multilarge_linear_workspace,
    ) -> *const gsl_vector;
}
pub const gsl_multilarge_nlinear_fdtype_GSL_MULTILARGE_NLINEAR_FWDIFF:
    gsl_multilarge_nlinear_fdtype = 0;
pub const gsl_multilarge_nlinear_fdtype_GSL_MULTILARGE_NLINEAR_CTRDIFF:
    gsl_multilarge_nlinear_fdtype = 1;
pub type gsl_multilarge_nlinear_fdtype = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_1")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
pub struct gsl_multilarge_nlinear_fdf;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_1")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
pub struct gsl_multilarge_nlinear_trs;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_1")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
pub struct gsl_multilarge_nlinear_scale;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_1")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
pub struct gsl_multilarge_nlinear_solver;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_1")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
pub struct gsl_multilarge_nlinear_parameters;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_1")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
pub struct gsl_multilarge_nlinear_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_1")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
pub struct gsl_multilarge_nlinear_trust_state;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
#[cfg(feature = "v2_1")]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
pub struct gsl_multilarge_nlinear_workspace;
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_alloc(
        T: *const gsl_multilarge_nlinear_type,
        params: *const gsl_multilarge_nlinear_parameters,
        n: usize,
        p: usize,
    ) -> *mut gsl_multilarge_nlinear_workspace;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_free(w: *mut gsl_multilarge_nlinear_workspace);
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_default_parameters() -> gsl_multilarge_nlinear_parameters;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_init(
        x: *const gsl_vector,
        fdf: *mut gsl_multilarge_nlinear_fdf,
        w: *mut gsl_multilarge_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_winit(
        x: *const gsl_vector,
        wts: *const gsl_vector,
        fdf: *mut gsl_multilarge_nlinear_fdf,
        w: *mut gsl_multilarge_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_iterate(
        w: *mut gsl_multilarge_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_avratio(w: *const gsl_multilarge_nlinear_workspace) -> f64;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_rcond(
        rcond: *mut f64,
        w: *const gsl_multilarge_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_covar(
        covar: *mut gsl_matrix,
        w: *mut gsl_multilarge_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_driver(
        maxiter: usize,
        xtol: f64,
        gtol: f64,
        ftol: f64,
        callback: ::std::option::Option<
            unsafe extern "C" fn(
                iter: usize,
                params: *mut ::std::os::raw::c_void,
                w: *const gsl_multilarge_nlinear_workspace,
            ),
        >,
        callback_params: *mut ::std::os::raw::c_void,
        info: *mut ::std::os::raw::c_int,
        w: *mut gsl_multilarge_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_name(
        w: *const gsl_multilarge_nlinear_workspace,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_position(
        w: *const gsl_multilarge_nlinear_workspace,
    ) -> *mut gsl_vector;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_residual(
        w: *const gsl_multilarge_nlinear_workspace,
    ) -> *mut gsl_vector;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_step(
        w: *const gsl_multilarge_nlinear_workspace,
    ) -> *mut gsl_vector;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_niter(w: *const gsl_multilarge_nlinear_workspace) -> usize;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_trs_name(
        w: *const gsl_multilarge_nlinear_workspace,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_eval_f(
        fdf: *mut gsl_multilarge_nlinear_fdf,
        x: *const gsl_vector,
        swts: *const gsl_vector,
        y: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_eval_df(
        TransJ: CBLAS_TRANSPOSE_t,
        x: *const gsl_vector,
        f: *const gsl_vector,
        u: *const gsl_vector,
        swts: *const gsl_vector,
        h: f64,
        fdtype: gsl_multilarge_nlinear_fdtype,
        fdf: *mut gsl_multilarge_nlinear_fdf,
        v: *mut gsl_vector,
        JTJ: *mut gsl_matrix,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_eval_fvv(
        h: f64,
        x: *const gsl_vector,
        v: *const gsl_vector,
        f: *const gsl_vector,
        swts: *const gsl_vector,
        fdf: *mut gsl_multilarge_nlinear_fdf,
        yvv: *mut gsl_vector,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_test(
        xtol: f64,
        gtol: f64,
        ftol: f64,
        info: *mut ::std::os::raw::c_int,
        w: *const gsl_multilarge_nlinear_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_df(
        h: f64,
        fdtype: gsl_multilarge_nlinear_fdtype,
        x: *const gsl_vector,
        wts: *const gsl_vector,
        fdf: *mut gsl_multilarge_nlinear_fdf,
        f: *const gsl_vector,
        J: *mut gsl_matrix,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub fn gsl_multilarge_nlinear_fdfvv(
        h: f64,
        x: *const gsl_vector,
        v: *const gsl_vector,
        f: *const gsl_vector,
        J: *const gsl_matrix,
        swts: *const gsl_vector,
        fdf: *mut gsl_multilarge_nlinear_fdf,
        fvv: *mut gsl_vector,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_trust: *const gsl_multilarge_nlinear_type;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_trs_lm: *const gsl_multilarge_nlinear_trs;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_trs_lmaccel: *const gsl_multilarge_nlinear_trs;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_trs_dogleg: *const gsl_multilarge_nlinear_trs;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_trs_ddogleg: *const gsl_multilarge_nlinear_trs;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_trs_subspace2D: *const gsl_multilarge_nlinear_trs;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_trs_cgst: *const gsl_multilarge_nlinear_trs;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_scale_levenberg: *const gsl_multilarge_nlinear_scale;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_scale_marquardt: *const gsl_multilarge_nlinear_scale;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_scale_more: *const gsl_multilarge_nlinear_scale;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_solver_cholesky: *const gsl_multilarge_nlinear_solver;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_solver_mcholesky: *const gsl_multilarge_nlinear_solver;
}
extern "C" {
    #[cfg(feature = "v2_1")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
    pub static mut gsl_multilarge_nlinear_solver_none: *const gsl_multilarge_nlinear_solver;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multimin_function_struct;
pub type gsl_multimin_function = gsl_multimin_function_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multimin_function_fdf_struct;
pub type gsl_multimin_function_fdf = gsl_multimin_function_fdf_struct;
extern "C" {
    pub fn gsl_multimin_diff(
        f: *const gsl_multimin_function,
        x: *const gsl_vector,
        g: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multimin_fminimizer_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multimin_fminimizer;
extern "C" {
    pub fn gsl_multimin_fminimizer_alloc(
        T: *const gsl_multimin_fminimizer_type,
        n: usize,
    ) -> *mut gsl_multimin_fminimizer;
}
extern "C" {
    pub fn gsl_multimin_fminimizer_set(
        s: *mut gsl_multimin_fminimizer,
        f: *mut gsl_multimin_function,
        x: *const gsl_vector,
        step_size: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multimin_fminimizer_free(s: *mut gsl_multimin_fminimizer);
}
extern "C" {
    pub fn gsl_multimin_fminimizer_name(
        s: *const gsl_multimin_fminimizer,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_multimin_fminimizer_iterate(
        s: *mut gsl_multimin_fminimizer,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multimin_fminimizer_x(s: *const gsl_multimin_fminimizer) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multimin_fminimizer_minimum(s: *const gsl_multimin_fminimizer) -> f64;
}
extern "C" {
    pub fn gsl_multimin_fminimizer_size(s: *const gsl_multimin_fminimizer) -> f64;
}
extern "C" {
    pub fn gsl_multimin_test_gradient(g: *const gsl_vector, epsabs: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multimin_test_size(size: f64, epsabs: f64) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multimin_fdfminimizer_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multimin_fdfminimizer;
extern "C" {
    pub fn gsl_multimin_fdfminimizer_alloc(
        T: *const gsl_multimin_fdfminimizer_type,
        n: usize,
    ) -> *mut gsl_multimin_fdfminimizer;
}
extern "C" {
    pub fn gsl_multimin_fdfminimizer_set(
        s: *mut gsl_multimin_fdfminimizer,
        fdf: *mut gsl_multimin_function_fdf,
        x: *const gsl_vector,
        step_size: f64,
        tol: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multimin_fdfminimizer_free(s: *mut gsl_multimin_fdfminimizer);
}
extern "C" {
    pub fn gsl_multimin_fdfminimizer_name(
        s: *const gsl_multimin_fdfminimizer,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_multimin_fdfminimizer_iterate(
        s: *mut gsl_multimin_fdfminimizer,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multimin_fdfminimizer_restart(
        s: *mut gsl_multimin_fdfminimizer,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multimin_fdfminimizer_x(s: *const gsl_multimin_fdfminimizer) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multimin_fdfminimizer_dx(s: *const gsl_multimin_fdfminimizer) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multimin_fdfminimizer_gradient(
        s: *const gsl_multimin_fdfminimizer,
    ) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multimin_fdfminimizer_minimum(s: *const gsl_multimin_fdfminimizer) -> f64;
}
extern "C" {
    pub static mut gsl_multimin_fdfminimizer_steepest_descent:
        *const gsl_multimin_fdfminimizer_type;
}
extern "C" {
    pub static mut gsl_multimin_fdfminimizer_conjugate_pr: *const gsl_multimin_fdfminimizer_type;
}
extern "C" {
    pub static mut gsl_multimin_fdfminimizer_conjugate_fr: *const gsl_multimin_fdfminimizer_type;
}
extern "C" {
    pub static mut gsl_multimin_fdfminimizer_vector_bfgs: *const gsl_multimin_fdfminimizer_type;
}
extern "C" {
    pub static mut gsl_multimin_fdfminimizer_vector_bfgs2: *const gsl_multimin_fdfminimizer_type;
}
extern "C" {
    pub static mut gsl_multimin_fminimizer_nmsimplex: *const gsl_multimin_fminimizer_type;
}
extern "C" {
    pub static mut gsl_multimin_fminimizer_nmsimplex2: *const gsl_multimin_fminimizer_type;
}
extern "C" {
    pub static mut gsl_multimin_fminimizer_nmsimplex2rand: *const gsl_multimin_fminimizer_type;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multiroot_function_struct {
    pub f: ::std::option::Option<
        unsafe extern "C" fn(
            x: *const gsl_vector,
            params: *mut ::std::os::raw::c_void,
            f: *mut gsl_vector,
        ) -> ::std::os::raw::c_int,
    >,
    pub n: usize,
    pub params: *mut ::std::os::raw::c_void,
}
pub type gsl_multiroot_function = gsl_multiroot_function_struct;
extern "C" {
    pub fn gsl_multiroot_fdjacobian(
        F: *mut gsl_multiroot_function,
        x: *const gsl_vector,
        f: *const gsl_vector,
        epsrel: f64,
        jacobian: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multiroot_fsolver_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multiroot_fsolver;
extern "C" {
    pub fn gsl_multiroot_fsolver_alloc(
        T: *const gsl_multiroot_fsolver_type,
        n: usize,
    ) -> *mut gsl_multiroot_fsolver;
}
extern "C" {
    pub fn gsl_multiroot_fsolver_free(s: *mut gsl_multiroot_fsolver);
}
extern "C" {
    pub fn gsl_multiroot_fsolver_set(
        s: *mut gsl_multiroot_fsolver,
        f: *mut gsl_multiroot_function,
        x: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiroot_fsolver_iterate(s: *mut gsl_multiroot_fsolver) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiroot_fsolver_name(
        s: *const gsl_multiroot_fsolver,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_multiroot_fsolver_root(s: *const gsl_multiroot_fsolver) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multiroot_fsolver_dx(s: *const gsl_multiroot_fsolver) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multiroot_fsolver_f(s: *const gsl_multiroot_fsolver) -> *mut gsl_vector;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multiroot_function_fdf_struct;
pub type gsl_multiroot_function_fdf = gsl_multiroot_function_fdf_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multiroot_fdfsolver_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multiroot_fdfsolver;
extern "C" {
    pub fn gsl_multiroot_fdfsolver_alloc(
        T: *const gsl_multiroot_fdfsolver_type,
        n: usize,
    ) -> *mut gsl_multiroot_fdfsolver;
}
extern "C" {
    pub fn gsl_multiroot_fdfsolver_set(
        s: *mut gsl_multiroot_fdfsolver,
        fdf: *mut gsl_multiroot_function_fdf,
        x: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiroot_fdfsolver_iterate(
        s: *mut gsl_multiroot_fdfsolver,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiroot_fdfsolver_free(s: *mut gsl_multiroot_fdfsolver);
}
extern "C" {
    pub fn gsl_multiroot_fdfsolver_name(
        s: *const gsl_multiroot_fdfsolver,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_multiroot_fdfsolver_root(s: *const gsl_multiroot_fdfsolver) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multiroot_fdfsolver_dx(s: *const gsl_multiroot_fdfsolver) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multiroot_fdfsolver_f(s: *const gsl_multiroot_fdfsolver) -> *mut gsl_vector;
}
extern "C" {
    pub fn gsl_multiroot_test_delta(
        dx: *const gsl_vector,
        x: *const gsl_vector,
        epsabs: f64,
        epsrel: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiroot_test_residual(f: *const gsl_vector, epsabs: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub static mut gsl_multiroot_fsolver_dnewton: *const gsl_multiroot_fsolver_type;
}
extern "C" {
    pub static mut gsl_multiroot_fsolver_broyden: *const gsl_multiroot_fsolver_type;
}
extern "C" {
    pub static mut gsl_multiroot_fsolver_hybrid: *const gsl_multiroot_fsolver_type;
}
extern "C" {
    pub static mut gsl_multiroot_fsolver_hybrids: *const gsl_multiroot_fsolver_type;
}
extern "C" {
    pub static mut gsl_multiroot_fdfsolver_newton: *const gsl_multiroot_fdfsolver_type;
}
extern "C" {
    pub static mut gsl_multiroot_fdfsolver_gnewton: *const gsl_multiroot_fdfsolver_type;
}
extern "C" {
    pub static mut gsl_multiroot_fdfsolver_hybridj: *const gsl_multiroot_fdfsolver_type;
}
extern "C" {
    pub static mut gsl_multiroot_fdfsolver_hybridsj: *const gsl_multiroot_fdfsolver_type;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_multiset_struct {
    pub n: usize,
    pub k: usize,
    pub data: *mut usize,
}
pub type gsl_multiset = gsl_multiset_struct;
extern "C" {
    pub fn gsl_multiset_alloc(n: usize, k: usize) -> *mut gsl_multiset;
}
extern "C" {
    pub fn gsl_multiset_calloc(n: usize, k: usize) -> *mut gsl_multiset;
}
extern "C" {
    pub fn gsl_multiset_init_first(c: *mut gsl_multiset);
}
extern "C" {
    pub fn gsl_multiset_init_last(c: *mut gsl_multiset);
}
extern "C" {
    pub fn gsl_multiset_free(c: *mut gsl_multiset);
}
extern "C" {
    pub fn gsl_multiset_memcpy(
        dest: *mut gsl_multiset,
        src: *const gsl_multiset,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiset_fread(stream: *mut FILE, c: *mut gsl_multiset) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiset_fwrite(stream: *mut FILE, c: *const gsl_multiset) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiset_fscanf(stream: *mut FILE, c: *mut gsl_multiset) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiset_fprintf(
        stream: *mut FILE,
        c: *const gsl_multiset,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiset_n(c: *const gsl_multiset) -> usize;
}
extern "C" {
    pub fn gsl_multiset_k(c: *const gsl_multiset) -> usize;
}
extern "C" {
    pub fn gsl_multiset_data(c: *const gsl_multiset) -> *mut usize;
}
extern "C" {
    pub fn gsl_multiset_valid(c: *mut gsl_multiset) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiset_next(c: *mut gsl_multiset) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiset_prev(c: *mut gsl_multiset) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_multiset_get(c: *const gsl_multiset, i: usize) -> usize;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_ntuple {
    pub file: *mut FILE,
    pub ntuple_data: *mut ::std::os::raw::c_void,
    pub size: usize,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_ntuple_select_fn {
    pub function: ::std::option::Option<
        unsafe extern "C" fn(
            ntuple_data: *mut ::std::os::raw::c_void,
            params: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub params: *mut ::std::os::raw::c_void,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_ntuple_value_fn {
    pub function: ::std::option::Option<
        unsafe extern "C" fn(
            ntuple_data: *mut ::std::os::raw::c_void,
            params: *mut ::std::os::raw::c_void,
        ) -> f64,
    >,
    pub params: *mut ::std::os::raw::c_void,
}
extern "C" {
    pub fn gsl_ntuple_open(
        filename: *mut ::std::os::raw::c_char,
        ntuple_data: *mut ::std::os::raw::c_void,
        size: usize,
    ) -> *mut gsl_ntuple;
}
extern "C" {
    pub fn gsl_ntuple_create(
        filename: *mut ::std::os::raw::c_char,
        ntuple_data: *mut ::std::os::raw::c_void,
        size: usize,
    ) -> *mut gsl_ntuple;
}
extern "C" {
    pub fn gsl_ntuple_write(ntuple: *mut gsl_ntuple) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_ntuple_read(ntuple: *mut gsl_ntuple) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_ntuple_bookdata(ntuple: *mut gsl_ntuple) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_ntuple_project(
        h: *mut gsl_histogram,
        ntuple: *mut gsl_ntuple,
        value_func: *mut gsl_ntuple_value_fn,
        select_func: *mut gsl_ntuple_select_fn,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_ntuple_close(ntuple: *mut gsl_ntuple) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv_system;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv_step_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv_step;
extern "C" {
    pub static mut gsl_odeiv_step_rk2: *const gsl_odeiv_step_type;
}
extern "C" {
    pub static mut gsl_odeiv_step_rk4: *const gsl_odeiv_step_type;
}
extern "C" {
    pub static mut gsl_odeiv_step_rkf45: *const gsl_odeiv_step_type;
}
extern "C" {
    pub static mut gsl_odeiv_step_rkck: *const gsl_odeiv_step_type;
}
extern "C" {
    pub static mut gsl_odeiv_step_rk8pd: *const gsl_odeiv_step_type;
}
extern "C" {
    pub static mut gsl_odeiv_step_rk2imp: *const gsl_odeiv_step_type;
}
extern "C" {
    pub static mut gsl_odeiv_step_rk2simp: *const gsl_odeiv_step_type;
}
extern "C" {
    pub static mut gsl_odeiv_step_rk4imp: *const gsl_odeiv_step_type;
}
extern "C" {
    pub static mut gsl_odeiv_step_bsimp: *const gsl_odeiv_step_type;
}
extern "C" {
    pub static mut gsl_odeiv_step_gear1: *const gsl_odeiv_step_type;
}
extern "C" {
    pub static mut gsl_odeiv_step_gear2: *const gsl_odeiv_step_type;
}
extern "C" {
    pub fn gsl_odeiv_step_alloc(T: *const gsl_odeiv_step_type, dim: usize) -> *mut gsl_odeiv_step;
}
extern "C" {
    pub fn gsl_odeiv_step_reset(s: *mut gsl_odeiv_step) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv_step_free(s: *mut gsl_odeiv_step);
}
extern "C" {
    pub fn gsl_odeiv_step_name(s: *const gsl_odeiv_step) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_odeiv_step_order(s: *const gsl_odeiv_step) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_odeiv_step_apply(
        s: *mut gsl_odeiv_step,
        t: f64,
        h: f64,
        y: *mut f64,
        yerr: *mut f64,
        dydt_in: *const f64,
        dydt_out: *mut f64,
        dydt: *const gsl_odeiv_system,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv_control_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv_control;
extern "C" {
    pub fn gsl_odeiv_control_alloc(T: *const gsl_odeiv_control_type) -> *mut gsl_odeiv_control;
}
extern "C" {
    pub fn gsl_odeiv_control_init(
        c: *mut gsl_odeiv_control,
        eps_abs: f64,
        eps_rel: f64,
        a_y: f64,
        a_dydt: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv_control_free(c: *mut gsl_odeiv_control);
}
extern "C" {
    pub fn gsl_odeiv_control_hadjust(
        c: *mut gsl_odeiv_control,
        s: *mut gsl_odeiv_step,
        y: *const f64,
        yerr: *const f64,
        dydt: *const f64,
        h: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv_control_name(c: *const gsl_odeiv_control) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_odeiv_control_standard_new(
        eps_abs: f64,
        eps_rel: f64,
        a_y: f64,
        a_dydt: f64,
    ) -> *mut gsl_odeiv_control;
}
extern "C" {
    pub fn gsl_odeiv_control_y_new(eps_abs: f64, eps_rel: f64) -> *mut gsl_odeiv_control;
}
extern "C" {
    pub fn gsl_odeiv_control_yp_new(eps_abs: f64, eps_rel: f64) -> *mut gsl_odeiv_control;
}
extern "C" {
    pub fn gsl_odeiv_control_scaled_new(
        eps_abs: f64,
        eps_rel: f64,
        a_y: f64,
        a_dydt: f64,
        scale_abs: *const f64,
        dim: usize,
    ) -> *mut gsl_odeiv_control;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv_evolve;
extern "C" {
    pub fn gsl_odeiv_evolve_alloc(dim: usize) -> *mut gsl_odeiv_evolve;
}
extern "C" {
    pub fn gsl_odeiv_evolve_apply(
        e: *mut gsl_odeiv_evolve,
        con: *mut gsl_odeiv_control,
        step: *mut gsl_odeiv_step,
        dydt: *const gsl_odeiv_system,
        t: *mut f64,
        t1: f64,
        h: *mut f64,
        y: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv_evolve_reset(e: *mut gsl_odeiv_evolve) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv_evolve_free(e: *mut gsl_odeiv_evolve);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv2_system {
    pub function: ::std::option::Option<
        unsafe extern "C" fn(
            t: f64,
            y: *const f64,
            dydt: *mut f64,
            params: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub jacobian: ::std::option::Option<
        unsafe extern "C" fn(
            t: f64,
            y: *const f64,
            dfdy: *mut f64,
            dfdt: *mut f64,
            params: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub dimension: usize,
    pub params: *mut ::std::os::raw::c_void,
}
pub type gsl_odeiv2_step = gsl_odeiv2_step_struct;
pub type gsl_odeiv2_control = gsl_odeiv2_control_struct;
pub type gsl_odeiv2_evolve = gsl_odeiv2_evolve_struct;
pub type gsl_odeiv2_driver = gsl_odeiv2_driver_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv2_step_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv2_step_struct;
extern "C" {
    pub static mut gsl_odeiv2_step_rk2: *const gsl_odeiv2_step_type;
}
extern "C" {
    pub static mut gsl_odeiv2_step_rk4: *const gsl_odeiv2_step_type;
}
extern "C" {
    pub static mut gsl_odeiv2_step_rkf45: *const gsl_odeiv2_step_type;
}
extern "C" {
    pub static mut gsl_odeiv2_step_rkck: *const gsl_odeiv2_step_type;
}
extern "C" {
    pub static mut gsl_odeiv2_step_rk8pd: *const gsl_odeiv2_step_type;
}
extern "C" {
    pub static mut gsl_odeiv2_step_rk2imp: *const gsl_odeiv2_step_type;
}
extern "C" {
    pub static mut gsl_odeiv2_step_rk4imp: *const gsl_odeiv2_step_type;
}
extern "C" {
    pub static mut gsl_odeiv2_step_bsimp: *const gsl_odeiv2_step_type;
}
extern "C" {
    pub static mut gsl_odeiv2_step_rk1imp: *const gsl_odeiv2_step_type;
}
extern "C" {
    pub static mut gsl_odeiv2_step_msadams: *const gsl_odeiv2_step_type;
}
extern "C" {
    pub static mut gsl_odeiv2_step_msbdf: *const gsl_odeiv2_step_type;
}
extern "C" {
    pub fn gsl_odeiv2_step_alloc(
        T: *const gsl_odeiv2_step_type,
        dim: usize,
    ) -> *mut gsl_odeiv2_step;
}
extern "C" {
    pub fn gsl_odeiv2_step_reset(s: *mut gsl_odeiv2_step) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_step_free(s: *mut gsl_odeiv2_step);
}
extern "C" {
    pub fn gsl_odeiv2_step_name(s: *const gsl_odeiv2_step) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_odeiv2_step_order(s: *const gsl_odeiv2_step) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_odeiv2_step_apply(
        s: *mut gsl_odeiv2_step,
        t: f64,
        h: f64,
        y: *mut f64,
        yerr: *mut f64,
        dydt_in: *const f64,
        dydt_out: *mut f64,
        dydt: *const gsl_odeiv2_system,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_step_set_driver(
        s: *mut gsl_odeiv2_step,
        d: *const gsl_odeiv2_driver,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv2_control_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv2_control_struct;
extern "C" {
    pub fn gsl_odeiv2_control_alloc(T: *const gsl_odeiv2_control_type) -> *mut gsl_odeiv2_control;
}
extern "C" {
    pub fn gsl_odeiv2_control_init(
        c: *mut gsl_odeiv2_control,
        eps_abs: f64,
        eps_rel: f64,
        a_y: f64,
        a_dydt: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_control_free(c: *mut gsl_odeiv2_control);
}
extern "C" {
    pub fn gsl_odeiv2_control_hadjust(
        c: *mut gsl_odeiv2_control,
        s: *mut gsl_odeiv2_step,
        y: *const f64,
        yerr: *const f64,
        dydt: *const f64,
        h: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_control_name(c: *const gsl_odeiv2_control) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_odeiv2_control_errlevel(
        c: *mut gsl_odeiv2_control,
        y: f64,
        dydt: f64,
        h: f64,
        ind: usize,
        errlev: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_control_set_driver(
        c: *mut gsl_odeiv2_control,
        d: *const gsl_odeiv2_driver,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_control_standard_new(
        eps_abs: f64,
        eps_rel: f64,
        a_y: f64,
        a_dydt: f64,
    ) -> *mut gsl_odeiv2_control;
}
extern "C" {
    pub fn gsl_odeiv2_control_y_new(eps_abs: f64, eps_rel: f64) -> *mut gsl_odeiv2_control;
}
extern "C" {
    pub fn gsl_odeiv2_control_yp_new(eps_abs: f64, eps_rel: f64) -> *mut gsl_odeiv2_control;
}
extern "C" {
    pub fn gsl_odeiv2_control_scaled_new(
        eps_abs: f64,
        eps_rel: f64,
        a_y: f64,
        a_dydt: f64,
        scale_abs: *const f64,
        dim: usize,
    ) -> *mut gsl_odeiv2_control;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv2_evolve_struct;
extern "C" {
    pub fn gsl_odeiv2_evolve_alloc(dim: usize) -> *mut gsl_odeiv2_evolve;
}
extern "C" {
    pub fn gsl_odeiv2_evolve_apply(
        e: *mut gsl_odeiv2_evolve,
        con: *mut gsl_odeiv2_control,
        step: *mut gsl_odeiv2_step,
        dydt: *const gsl_odeiv2_system,
        t: *mut f64,
        t1: f64,
        h: *mut f64,
        y: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_evolve_apply_fixed_step(
        e: *mut gsl_odeiv2_evolve,
        con: *mut gsl_odeiv2_control,
        step: *mut gsl_odeiv2_step,
        dydt: *const gsl_odeiv2_system,
        t: *mut f64,
        h0: f64,
        y: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_evolve_reset(e: *mut gsl_odeiv2_evolve) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_evolve_free(e: *mut gsl_odeiv2_evolve);
}
extern "C" {
    pub fn gsl_odeiv2_evolve_set_driver(
        e: *mut gsl_odeiv2_evolve,
        d: *const gsl_odeiv2_driver,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_odeiv2_driver_struct;
extern "C" {
    pub fn gsl_odeiv2_driver_alloc_y_new(
        sys: *const gsl_odeiv2_system,
        T: *const gsl_odeiv2_step_type,
        hstart: f64,
        epsabs: f64,
        epsrel: f64,
    ) -> *mut gsl_odeiv2_driver;
}
extern "C" {
    pub fn gsl_odeiv2_driver_alloc_yp_new(
        sys: *const gsl_odeiv2_system,
        T: *const gsl_odeiv2_step_type,
        hstart: f64,
        epsabs: f64,
        epsrel: f64,
    ) -> *mut gsl_odeiv2_driver;
}
extern "C" {
    pub fn gsl_odeiv2_driver_alloc_scaled_new(
        sys: *const gsl_odeiv2_system,
        T: *const gsl_odeiv2_step_type,
        hstart: f64,
        epsabs: f64,
        epsrel: f64,
        a_y: f64,
        a_dydt: f64,
        scale_abs: *const f64,
    ) -> *mut gsl_odeiv2_driver;
}
extern "C" {
    pub fn gsl_odeiv2_driver_alloc_standard_new(
        sys: *const gsl_odeiv2_system,
        T: *const gsl_odeiv2_step_type,
        hstart: f64,
        epsabs: f64,
        epsrel: f64,
        a_y: f64,
        a_dydt: f64,
    ) -> *mut gsl_odeiv2_driver;
}
extern "C" {
    pub fn gsl_odeiv2_driver_set_hmin(
        d: *mut gsl_odeiv2_driver,
        hmin: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_driver_set_hmax(
        d: *mut gsl_odeiv2_driver,
        hmax: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_driver_set_nmax(
        d: *mut gsl_odeiv2_driver,
        nmax: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_driver_apply(
        d: *mut gsl_odeiv2_driver,
        t: *mut f64,
        t1: f64,
        y: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_driver_apply_fixed_step(
        d: *mut gsl_odeiv2_driver,
        t: *mut f64,
        h: f64,
        n: ::std::os::raw::c_ulong,
        y: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_driver_reset(d: *mut gsl_odeiv2_driver) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_driver_reset_hstart(
        d: *mut gsl_odeiv2_driver,
        hstart: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_odeiv2_driver_free(state: *mut gsl_odeiv2_driver);
}
extern "C" {
    pub fn gsl_permute_complex_long_double(
        p: *const usize,
        data: *mut u128,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_complex_long_double_inverse(
        p: *const usize,
        data: *mut u128,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_complex(
        p: *const usize,
        data: *mut f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_complex_inverse(
        p: *const usize,
        data: *mut f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_complex_float(
        p: *const usize,
        data: *mut f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_complex_float_inverse(
        p: *const usize,
        data: *mut f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_long_double(
        p: *const usize,
        data: *mut u128,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_long_double_inverse(
        p: *const usize,
        data: *mut u128,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute(
        p: *const usize,
        data: *mut f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_inverse(
        p: *const usize,
        data: *mut f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_float(
        p: *const usize,
        data: *mut f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_float_inverse(
        p: *const usize,
        data: *mut f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_ulong(
        p: *const usize,
        data: *mut ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_ulong_inverse(
        p: *const usize,
        data: *mut ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_long(
        p: *const usize,
        data: *mut ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_long_inverse(
        p: *const usize,
        data: *mut ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_uint(
        p: *const usize,
        data: *mut ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_uint_inverse(
        p: *const usize,
        data: *mut ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_int(
        p: *const usize,
        data: *mut ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_int_inverse(
        p: *const usize,
        data: *mut ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_ushort(
        p: *const usize,
        data: *mut ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_ushort_inverse(
        p: *const usize,
        data: *mut ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_short(
        p: *const usize,
        data: *mut ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_short_inverse(
        p: *const usize,
        data: *mut ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_uchar(
        p: *const usize,
        data: *mut ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_uchar_inverse(
        p: *const usize,
        data: *mut ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_char(
        p: *const usize,
        data: *mut ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_char_inverse(
        p: *const usize,
        data: *mut ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_complex_long_double(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_complex(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_complex_float(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_long_double(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_permute_matrix(
        p: *const gsl_permutation,
        A: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_float(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_ulong(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_long(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_uint(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_int(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_ushort(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_short(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_uchar(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_matrix_char(
        p: *const gsl_permutation,
        A: *mut gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_complex_long_double(
        p: *const gsl_permutation,
        v: *mut gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_complex_long_double_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_complex(
        p: *const gsl_permutation,
        v: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_complex_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_complex_float(
        p: *const gsl_permutation,
        v: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_complex_float_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_long_double(
        p: *const gsl_permutation,
        v: *mut gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_long_double_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector(
        p: *const gsl_permutation,
        v: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_float(
        p: *const gsl_permutation,
        v: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_float_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_ulong(
        p: *const gsl_permutation,
        v: *mut gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_ulong_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_long(
        p: *const gsl_permutation,
        v: *mut gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_long_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_uint(
        p: *const gsl_permutation,
        v: *mut gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_uint_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_int(
        p: *const gsl_permutation,
        v: *mut gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_int_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_ushort(
        p: *const gsl_permutation,
        v: *mut gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_ushort_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_short(
        p: *const gsl_permutation,
        v: *mut gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_short_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_uchar(
        p: *const gsl_permutation,
        v: *mut gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_uchar_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_char(
        p: *const gsl_permutation,
        v: *mut gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_permute_vector_char_inverse(
        p: *const gsl_permutation,
        v: *mut gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_poly_eval(c: *const f64, len: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_poly_complex_eval(
        c: *const f64,
        len: ::std::os::raw::c_int,
        z: gsl_complex,
    ) -> gsl_complex;
}
extern "C" {
    pub fn gsl_complex_poly_complex_eval(
        c: *const gsl_complex,
        len: ::std::os::raw::c_int,
        z: gsl_complex,
    ) -> gsl_complex;
}
extern "C" {
    pub fn gsl_poly_eval_derivs(
        c: *const f64,
        lenc: usize,
        x: f64,
        res: *mut f64,
        lenres: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_poly_dd_init(
        dd: *mut f64,
        x: *const f64,
        y: *const f64,
        size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_poly_dd_eval(dd: *const f64, xa: *const f64, size: usize, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_poly_dd_taylor(
        c: *mut f64,
        xp: f64,
        dd: *const f64,
        x: *const f64,
        size: usize,
        w: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_poly_dd_hermite_init(
        dd: *mut f64,
        z: *mut f64,
        xa: *const f64,
        ya: *const f64,
        dya: *const f64,
        size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_poly_solve_quadratic(
        a: f64,
        b: f64,
        c: f64,
        x0: *mut f64,
        x1: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_poly_complex_solve_quadratic(
        a: f64,
        b: f64,
        c: f64,
        z0: *mut gsl_complex,
        z1: *mut gsl_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_poly_solve_cubic(
        a: f64,
        b: f64,
        c: f64,
        x0: *mut f64,
        x1: *mut f64,
        x2: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_poly_complex_solve_cubic(
        a: f64,
        b: f64,
        c: f64,
        z0: *mut gsl_complex,
        z1: *mut gsl_complex,
        z2: *mut gsl_complex,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_poly_complex_workspace;
extern "C" {
    pub fn gsl_poly_complex_workspace_alloc(n: usize) -> *mut gsl_poly_complex_workspace;
}
extern "C" {
    pub fn gsl_poly_complex_workspace_free(w: *mut gsl_poly_complex_workspace);
}
extern "C" {
    pub fn gsl_poly_complex_solve(
        a: *const f64,
        n: usize,
        w: *mut gsl_poly_complex_workspace,
        z: gsl_complex_packed_ptr,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_qrng_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_qrng;
extern "C" {
    pub static mut gsl_qrng_niederreiter_2: *const gsl_qrng_type;
}
extern "C" {
    pub static mut gsl_qrng_sobol: *const gsl_qrng_type;
}
extern "C" {
    pub static mut gsl_qrng_halton: *const gsl_qrng_type;
}
extern "C" {
    pub static mut gsl_qrng_reversehalton: *const gsl_qrng_type;
}
extern "C" {
    pub fn gsl_qrng_alloc(
        T: *const gsl_qrng_type,
        dimension: ::std::os::raw::c_uint,
    ) -> *mut gsl_qrng;
}
extern "C" {
    pub fn gsl_qrng_memcpy(dest: *mut gsl_qrng, src: *const gsl_qrng) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_qrng_clone(q: *const gsl_qrng) -> *mut gsl_qrng;
}
extern "C" {
    pub fn gsl_qrng_free(q: *mut gsl_qrng);
}
extern "C" {
    pub fn gsl_qrng_init(q: *mut gsl_qrng);
}
extern "C" {
    pub fn gsl_qrng_name(q: *const gsl_qrng) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_qrng_size(q: *const gsl_qrng) -> usize;
}
extern "C" {
    pub fn gsl_qrng_state(q: *const gsl_qrng) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn gsl_qrng_get(q: *const gsl_qrng, x: *mut f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_ran_bernoulli(r: *const gsl_rng, p: f64) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_ran_bernoulli_pdf(k: ::std::os::raw::c_uint, p: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_beta(r: *const gsl_rng, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_beta_pdf(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_binomial(
        r: *const gsl_rng,
        p: f64,
        n: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_ran_binomial_knuth(
        r: *const gsl_rng,
        p: f64,
        n: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_ran_binomial_tpe(
        r: *const gsl_rng,
        p: f64,
        n: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_ran_binomial_pdf(
        k: ::std::os::raw::c_uint,
        p: f64,
        n: ::std::os::raw::c_uint,
    ) -> f64;
}
extern "C" {
    pub fn gsl_ran_exponential(r: *const gsl_rng, mu: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_exponential_pdf(x: f64, mu: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_exppow(r: *const gsl_rng, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_exppow_pdf(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_cauchy(r: *const gsl_rng, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_cauchy_pdf(x: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_chisq(r: *const gsl_rng, nu: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_chisq_pdf(x: f64, nu: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_dirichlet(r: *const gsl_rng, K: usize, alpha: *const f64, theta: *mut f64);
}
extern "C" {
    pub fn gsl_ran_dirichlet_pdf(K: usize, alpha: *const f64, theta: *const f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_dirichlet_lnpdf(K: usize, alpha: *const f64, theta: *const f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_erlang(r: *const gsl_rng, a: f64, n: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_erlang_pdf(x: f64, a: f64, n: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_fdist(r: *const gsl_rng, nu1: f64, nu2: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_fdist_pdf(x: f64, nu1: f64, nu2: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_flat(r: *const gsl_rng, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_flat_pdf(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gamma(r: *const gsl_rng, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gamma_int(r: *const gsl_rng, a: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_ran_gamma_pdf(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gamma_mt(r: *const gsl_rng, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gamma_knuth(r: *const gsl_rng, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gaussian(r: *const gsl_rng, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gaussian_ratio_method(r: *const gsl_rng, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gaussian_ziggurat(r: *const gsl_rng, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gaussian_pdf(x: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_ugaussian(r: *const gsl_rng) -> f64;
}
extern "C" {
    pub fn gsl_ran_ugaussian_ratio_method(r: *const gsl_rng) -> f64;
}
extern "C" {
    pub fn gsl_ran_ugaussian_pdf(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gaussian_tail(r: *const gsl_rng, a: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gaussian_tail_pdf(x: f64, a: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_ugaussian_tail(r: *const gsl_rng, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_ugaussian_tail_pdf(x: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_bivariate_gaussian(
        r: *const gsl_rng,
        sigma_x: f64,
        sigma_y: f64,
        rho: f64,
        x: *mut f64,
        y: *mut f64,
    );
}
extern "C" {
    pub fn gsl_ran_bivariate_gaussian_pdf(
        x: f64,
        y: f64,
        sigma_x: f64,
        sigma_y: f64,
        rho: f64,
    ) -> f64;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_ran_multivariate_gaussian(
        r: *const gsl_rng,
        mu: *const gsl_vector,
        L: *const gsl_matrix,
        result: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_ran_multivariate_gaussian_log_pdf(
        x: *const gsl_vector,
        mu: *const gsl_vector,
        L: *const gsl_matrix,
        result: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_ran_multivariate_gaussian_pdf(
        x: *const gsl_vector,
        mu: *const gsl_vector,
        L: *const gsl_matrix,
        result: *mut f64,
        work: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_ran_multivariate_gaussian_mean(
        X: *const gsl_matrix,
        mu_hat: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_ran_multivariate_gaussian_vcov(
        X: *const gsl_matrix,
        sigma_hat: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_ran_wishart(
        r: *const gsl_rng,
        df: f64,
        L: *const gsl_matrix,
        result: *mut gsl_matrix,
        work: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_ran_wishart_log_pdf(
        X: *const gsl_matrix,
        L_X: *const gsl_matrix,
        df: f64,
        L: *const gsl_matrix,
        result: *mut f64,
        work: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_ran_wishart_pdf(
        X: *const gsl_matrix,
        L_X: *const gsl_matrix,
        df: f64,
        L: *const gsl_matrix,
        result: *mut f64,
        work: *mut gsl_matrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_ran_landau(r: *const gsl_rng) -> f64;
}
extern "C" {
    pub fn gsl_ran_landau_pdf(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_geometric(r: *const gsl_rng, p: f64) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_ran_geometric_pdf(k: ::std::os::raw::c_uint, p: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_hypergeometric(
        r: *const gsl_rng,
        n1: ::std::os::raw::c_uint,
        n2: ::std::os::raw::c_uint,
        t: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_ran_hypergeometric_pdf(
        k: ::std::os::raw::c_uint,
        n1: ::std::os::raw::c_uint,
        n2: ::std::os::raw::c_uint,
        t: ::std::os::raw::c_uint,
    ) -> f64;
}
extern "C" {
    pub fn gsl_ran_gumbel1(r: *const gsl_rng, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gumbel1_pdf(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gumbel2(r: *const gsl_rng, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_gumbel2_pdf(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_logistic(r: *const gsl_rng, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_logistic_pdf(x: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_lognormal(r: *const gsl_rng, zeta: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_lognormal_pdf(x: f64, zeta: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_logarithmic(r: *const gsl_rng, p: f64) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_ran_logarithmic_pdf(k: ::std::os::raw::c_uint, p: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_multinomial(
        r: *const gsl_rng,
        K: usize,
        N: ::std::os::raw::c_uint,
        p: *const f64,
        n: *mut ::std::os::raw::c_uint,
    );
}
extern "C" {
    pub fn gsl_ran_multinomial_pdf(
        K: usize,
        p: *const f64,
        n: *const ::std::os::raw::c_uint,
    ) -> f64;
}
extern "C" {
    pub fn gsl_ran_multinomial_lnpdf(
        K: usize,
        p: *const f64,
        n: *const ::std::os::raw::c_uint,
    ) -> f64;
}
extern "C" {
    pub fn gsl_ran_negative_binomial(r: *const gsl_rng, p: f64, n: f64) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_ran_negative_binomial_pdf(k: ::std::os::raw::c_uint, p: f64, n: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_pascal(
        r: *const gsl_rng,
        p: f64,
        n: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_ran_pascal_pdf(k: ::std::os::raw::c_uint, p: f64, n: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_ran_pareto(r: *const gsl_rng, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_pareto_pdf(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_poisson(r: *const gsl_rng, mu: f64) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_ran_poisson_array(
        r: *const gsl_rng,
        n: usize,
        array: *mut ::std::os::raw::c_uint,
        mu: f64,
    );
}
extern "C" {
    pub fn gsl_ran_poisson_pdf(k: ::std::os::raw::c_uint, mu: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_rayleigh(r: *const gsl_rng, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_rayleigh_pdf(x: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_rayleigh_tail(r: *const gsl_rng, a: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_rayleigh_tail_pdf(x: f64, a: f64, sigma: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_tdist(r: *const gsl_rng, nu: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_tdist_pdf(x: f64, nu: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_laplace(r: *const gsl_rng, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_laplace_pdf(x: f64, a: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_levy(r: *const gsl_rng, c: f64, alpha: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_levy_skew(r: *const gsl_rng, c: f64, alpha: f64, beta: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_weibull(r: *const gsl_rng, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_weibull_pdf(x: f64, a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_ran_dir_2d(r: *const gsl_rng, x: *mut f64, y: *mut f64);
}
extern "C" {
    pub fn gsl_ran_dir_2d_trig_method(r: *const gsl_rng, x: *mut f64, y: *mut f64);
}
extern "C" {
    pub fn gsl_ran_dir_3d(r: *const gsl_rng, x: *mut f64, y: *mut f64, z: *mut f64);
}
extern "C" {
    pub fn gsl_ran_dir_nd(r: *const gsl_rng, n: usize, x: *mut f64);
}
extern "C" {
    pub fn gsl_ran_shuffle(
        r: *const gsl_rng,
        base: *mut ::std::os::raw::c_void,
        nmembm: usize,
        size: usize,
    );
}
extern "C" {
    pub fn gsl_ran_choose(
        r: *const gsl_rng,
        dest: *mut ::std::os::raw::c_void,
        k: usize,
        src: *mut ::std::os::raw::c_void,
        n: usize,
        size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_ran_sample(
        r: *const gsl_rng,
        dest: *mut ::std::os::raw::c_void,
        k: usize,
        src: *mut ::std::os::raw::c_void,
        n: usize,
        size: usize,
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_ran_discrete_t;
extern "C" {
    pub fn gsl_ran_discrete_preproc(K: usize, P: *const f64) -> *mut gsl_ran_discrete_t;
}
extern "C" {
    pub fn gsl_ran_discrete_free(g: *mut gsl_ran_discrete_t);
}
extern "C" {
    pub fn gsl_ran_discrete(r: *const gsl_rng, g: *const gsl_ran_discrete_t) -> usize;
}
extern "C" {
    pub fn gsl_ran_discrete_pdf(k: usize, g: *const gsl_ran_discrete_t) -> f64;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_root_fsolver_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_root_fsolver;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_root_fdfsolver_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_root_fdfsolver;
extern "C" {
    pub fn gsl_root_fsolver_alloc(T: *const gsl_root_fsolver_type) -> *mut gsl_root_fsolver;
}
extern "C" {
    pub fn gsl_root_fsolver_free(s: *mut gsl_root_fsolver);
}
extern "C" {
    pub fn gsl_root_fsolver_set(
        s: *mut gsl_root_fsolver,
        f: *mut gsl_function,
        x_lower: f64,
        x_upper: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_root_fsolver_iterate(s: *mut gsl_root_fsolver) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_root_fsolver_name(s: *const gsl_root_fsolver) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_root_fsolver_root(s: *const gsl_root_fsolver) -> f64;
}
extern "C" {
    pub fn gsl_root_fsolver_x_lower(s: *const gsl_root_fsolver) -> f64;
}
extern "C" {
    pub fn gsl_root_fsolver_x_upper(s: *const gsl_root_fsolver) -> f64;
}
extern "C" {
    pub fn gsl_root_fdfsolver_alloc(T: *const gsl_root_fdfsolver_type) -> *mut gsl_root_fdfsolver;
}
extern "C" {
    pub fn gsl_root_fdfsolver_set(
        s: *mut gsl_root_fdfsolver,
        fdf: *mut gsl_function_fdf,
        root: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_root_fdfsolver_iterate(s: *mut gsl_root_fdfsolver) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_root_fdfsolver_free(s: *mut gsl_root_fdfsolver);
}
extern "C" {
    pub fn gsl_root_fdfsolver_name(s: *const gsl_root_fdfsolver) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_root_fdfsolver_root(s: *const gsl_root_fdfsolver) -> f64;
}
extern "C" {
    pub fn gsl_root_test_interval(
        x_lower: f64,
        x_upper: f64,
        epsabs: f64,
        epsrel: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_root_test_residual(f: f64, epsabs: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_root_test_delta(x1: f64, x0: f64, epsabs: f64, epsrel: f64)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub static mut gsl_root_fsolver_bisection: *const gsl_root_fsolver_type;
}
extern "C" {
    pub static mut gsl_root_fsolver_brent: *const gsl_root_fsolver_type;
}
extern "C" {
    pub static mut gsl_root_fsolver_falsepos: *const gsl_root_fsolver_type;
}
extern "C" {
    pub static mut gsl_root_fdfsolver_newton: *const gsl_root_fdfsolver_type;
}
extern "C" {
    pub static mut gsl_root_fdfsolver_secant: *const gsl_root_fdfsolver_type;
}
extern "C" {
    pub static mut gsl_root_fdfsolver_steffenson: *const gsl_root_fdfsolver_type;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_rstat_quantile_workspace;
extern "C" {
    pub fn gsl_rstat_quantile_alloc(p: f64) -> *mut gsl_rstat_quantile_workspace;
}
extern "C" {
    pub fn gsl_rstat_quantile_free(w: *mut gsl_rstat_quantile_workspace);
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_rstat_quantile_reset(w: *mut gsl_rstat_quantile_workspace) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_rstat_quantile_add(
        x: f64,
        w: *mut gsl_rstat_quantile_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_rstat_quantile_get(w: *mut gsl_rstat_quantile_workspace) -> f64;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_rstat_workspace;
extern "C" {
    pub fn gsl_rstat_alloc() -> *mut gsl_rstat_workspace;
}
extern "C" {
    pub fn gsl_rstat_free(w: *mut gsl_rstat_workspace);
}
extern "C" {
    pub fn gsl_rstat_n(w: *const gsl_rstat_workspace) -> usize;
}
extern "C" {
    pub fn gsl_rstat_add(x: f64, w: *mut gsl_rstat_workspace) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_rstat_min(w: *const gsl_rstat_workspace) -> f64;
}
extern "C" {
    pub fn gsl_rstat_max(w: *const gsl_rstat_workspace) -> f64;
}
extern "C" {
    pub fn gsl_rstat_mean(w: *const gsl_rstat_workspace) -> f64;
}
extern "C" {
    pub fn gsl_rstat_variance(w: *const gsl_rstat_workspace) -> f64;
}
extern "C" {
    pub fn gsl_rstat_sd(w: *const gsl_rstat_workspace) -> f64;
}
extern "C" {
    #[cfg(feature = "v2_2")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_2")))]
    pub fn gsl_rstat_rms(w: *const gsl_rstat_workspace) -> f64;
}
extern "C" {
    pub fn gsl_rstat_sd_mean(w: *const gsl_rstat_workspace) -> f64;
}
extern "C" {
    pub fn gsl_rstat_median(w: *mut gsl_rstat_workspace) -> f64;
}
extern "C" {
    pub fn gsl_rstat_skew(w: *const gsl_rstat_workspace) -> f64;
}
extern "C" {
    pub fn gsl_rstat_kurtosis(w: *const gsl_rstat_workspace) -> f64;
}
extern "C" {
    pub fn gsl_rstat_reset(w: *mut gsl_rstat_workspace) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_sf_result_struct {
    pub val: f64,
    pub err: f64,
}
pub type gsl_sf_result = gsl_sf_result_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_sf_result_e10_struct {
    pub val: f64,
    pub err: f64,
    pub e10: ::std::os::raw::c_int,
}
pub type gsl_sf_result_e10 = gsl_sf_result_e10_struct;
extern "C" {
    pub fn gsl_sf_result_smash_e(
        re: *const gsl_sf_result_e10,
        r: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_Ai_e(
        x: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_Ai(x: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_airy_Bi_e(
        x: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_Bi(x: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_airy_Ai_scaled_e(
        x: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_Ai_scaled(x: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_airy_Bi_scaled_e(
        x: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_Bi_scaled(x: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_airy_Ai_deriv_e(
        x: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_Ai_deriv(x: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_airy_Bi_deriv_e(
        x: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_Bi_deriv(x: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_airy_Ai_deriv_scaled_e(
        x: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_Ai_deriv_scaled(x: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_airy_Bi_deriv_scaled_e(
        x: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_Bi_deriv_scaled(x: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_airy_zero_Ai_e(
        s: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_zero_Ai(s: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_airy_zero_Bi_e(
        s: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_zero_Bi(s: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_airy_zero_Ai_deriv_e(
        s: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_zero_Ai_deriv(s: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_airy_zero_Bi_deriv_e(
        s: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_airy_zero_Bi_deriv(s: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_J0_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_J0(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_J1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_J1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Jn_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Jn(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Jn_array(
        nmin: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Y0_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Y0(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Y1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Y1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Yn_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Yn(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Yn_array(
        nmin: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_I0_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_I0(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_I1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_I1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_In_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_In(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_In_array(
        nmin: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_I0_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_I0_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_I1_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_I1_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_In_scaled_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_In_scaled(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_In_scaled_array(
        nmin: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_K0_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_K0(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_K1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_K1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Kn_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Kn(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Kn_array(
        nmin: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_K0_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_K0_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_K1_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_K1_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Kn_scaled_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Kn_scaled(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Kn_scaled_array(
        nmin: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_j0_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_j0(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_j1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_j1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_j2_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_j2(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_jl_e(
        l: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_jl(l: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_jl_array(
        lmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_jl_steed_array(
        lmax: ::std::os::raw::c_int,
        x: f64,
        jl_x_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_y0_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_y0(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_y1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_y1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_y2_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_y2(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_yl_e(
        l: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_yl(l: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_yl_array(
        lmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_i0_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_i0_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_i1_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_i1_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_i2_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_i2_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_il_scaled_e(
        l: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_il_scaled(l: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_il_scaled_array(
        lmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_k0_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_k0_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_k1_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_k1_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_k2_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_k2_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_kl_scaled_e(
        l: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_kl_scaled(l: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_kl_scaled_array(
        lmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Jnu_e(
        nu: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Jnu(nu: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Ynu_e(
        nu: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Ynu(nu: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_sequence_Jnu_e(
        nu: f64,
        mode: gsl_mode_t,
        size: usize,
        v: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Inu_scaled_e(
        nu: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Inu_scaled(nu: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Inu_e(
        nu: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Inu(nu: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Knu_scaled_e(
        nu: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Knu_scaled(nu: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_Knu_scaled_e10_e(
        nu: f64,
        x: f64,
        result: *mut gsl_sf_result_e10,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Knu_e(
        nu: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_Knu(nu: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_lnKnu_e(
        nu: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_lnKnu(nu: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_zero_J0_e(
        s: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_zero_J0(s: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_zero_J1_e(
        s: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_zero_J1(s: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_bessel_zero_Jnu_e(
        nu: f64,
        s: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_bessel_zero_Jnu(nu: f64, s: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_clausen_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_clausen(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_coupling_3j_e(
        two_ja: ::std::os::raw::c_int,
        two_jb: ::std::os::raw::c_int,
        two_jc: ::std::os::raw::c_int,
        two_ma: ::std::os::raw::c_int,
        two_mb: ::std::os::raw::c_int,
        two_mc: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_coupling_3j(
        two_ja: ::std::os::raw::c_int,
        two_jb: ::std::os::raw::c_int,
        two_jc: ::std::os::raw::c_int,
        two_ma: ::std::os::raw::c_int,
        two_mb: ::std::os::raw::c_int,
        two_mc: ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_coupling_6j_e(
        two_ja: ::std::os::raw::c_int,
        two_jb: ::std::os::raw::c_int,
        two_jc: ::std::os::raw::c_int,
        two_jd: ::std::os::raw::c_int,
        two_je: ::std::os::raw::c_int,
        two_jf: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_coupling_6j(
        two_ja: ::std::os::raw::c_int,
        two_jb: ::std::os::raw::c_int,
        two_jc: ::std::os::raw::c_int,
        two_jd: ::std::os::raw::c_int,
        two_je: ::std::os::raw::c_int,
        two_jf: ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_coupling_RacahW_e(
        two_ja: ::std::os::raw::c_int,
        two_jb: ::std::os::raw::c_int,
        two_jc: ::std::os::raw::c_int,
        two_jd: ::std::os::raw::c_int,
        two_je: ::std::os::raw::c_int,
        two_jf: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_coupling_RacahW(
        two_ja: ::std::os::raw::c_int,
        two_jb: ::std::os::raw::c_int,
        two_jc: ::std::os::raw::c_int,
        two_jd: ::std::os::raw::c_int,
        two_je: ::std::os::raw::c_int,
        two_jf: ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_coupling_9j_e(
        two_ja: ::std::os::raw::c_int,
        two_jb: ::std::os::raw::c_int,
        two_jc: ::std::os::raw::c_int,
        two_jd: ::std::os::raw::c_int,
        two_je: ::std::os::raw::c_int,
        two_jf: ::std::os::raw::c_int,
        two_jg: ::std::os::raw::c_int,
        two_jh: ::std::os::raw::c_int,
        two_ji: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_coupling_9j(
        two_ja: ::std::os::raw::c_int,
        two_jb: ::std::os::raw::c_int,
        two_jc: ::std::os::raw::c_int,
        two_jd: ::std::os::raw::c_int,
        two_je: ::std::os::raw::c_int,
        two_jf: ::std::os::raw::c_int,
        two_jg: ::std::os::raw::c_int,
        two_jh: ::std::os::raw::c_int,
        two_ji: ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_coupling_6j_INCORRECT_e(
        two_ja: ::std::os::raw::c_int,
        two_jb: ::std::os::raw::c_int,
        two_jc: ::std::os::raw::c_int,
        two_jd: ::std::os::raw::c_int,
        two_je: ::std::os::raw::c_int,
        two_jf: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_coupling_6j_INCORRECT(
        two_ja: ::std::os::raw::c_int,
        two_jb: ::std::os::raw::c_int,
        two_jc: ::std::os::raw::c_int,
        two_jd: ::std::os::raw::c_int,
        two_je: ::std::os::raw::c_int,
        two_jf: ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_hydrogenicR_1_e(
        Z: f64,
        r: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hydrogenicR_1(Z: f64, r: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hydrogenicR_e(
        n: ::std::os::raw::c_int,
        l: ::std::os::raw::c_int,
        Z: f64,
        r: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hydrogenicR(
        n: ::std::os::raw::c_int,
        l: ::std::os::raw::c_int,
        Z: f64,
        r: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_coulomb_wave_FG_e(
        eta: f64,
        x: f64,
        lam_F: f64,
        k_lam_G: ::std::os::raw::c_int,
        F: *mut gsl_sf_result,
        Fp: *mut gsl_sf_result,
        G: *mut gsl_sf_result,
        Gp: *mut gsl_sf_result,
        exp_F: *mut f64,
        exp_G: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_coulomb_wave_F_array(
        lam_min: f64,
        kmax: ::std::os::raw::c_int,
        eta: f64,
        x: f64,
        fc_array: *mut f64,
        F_exponent: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_coulomb_wave_FG_array(
        lam_min: f64,
        kmax: ::std::os::raw::c_int,
        eta: f64,
        x: f64,
        fc_array: *mut f64,
        gc_array: *mut f64,
        F_exponent: *mut f64,
        G_exponent: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_coulomb_wave_FGp_array(
        lam_min: f64,
        kmax: ::std::os::raw::c_int,
        eta: f64,
        x: f64,
        fc_array: *mut f64,
        fcp_array: *mut f64,
        gc_array: *mut f64,
        gcp_array: *mut f64,
        F_exponent: *mut f64,
        G_exponent: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_coulomb_wave_sphF_array(
        lam_min: f64,
        kmax: ::std::os::raw::c_int,
        eta: f64,
        x: f64,
        fc_array: *mut f64,
        F_exponent: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_coulomb_CL_e(
        L: f64,
        eta: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_coulomb_CL_array(
        Lmin: f64,
        kmax: ::std::os::raw::c_int,
        eta: f64,
        cl: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_dawson_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_dawson(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_debye_1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_debye_1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_debye_2_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_debye_2(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_debye_3_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_debye_3(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_debye_4_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_debye_4(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_debye_5_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_debye_5(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_debye_6_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_debye_6(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_dilog_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_dilog(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_complex_dilog_xy_e(
        x: f64,
        y: f64,
        result_re: *mut gsl_sf_result,
        result_im: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_complex_dilog_e(
        r: f64,
        theta: f64,
        result_re: *mut gsl_sf_result,
        result_im: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_complex_spence_xy_e(
        x: f64,
        y: f64,
        real_sp: *mut gsl_sf_result,
        imag_sp: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_multiply_e(x: f64, y: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_multiply(x: f64, y: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_multiply_err_e(
        x: f64,
        dx: f64,
        y: f64,
        dy: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_Kcomp_e(
        k: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_Kcomp(k: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_ellint_Ecomp_e(
        k: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_Ecomp(k: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_ellint_Pcomp_e(
        k: f64,
        n: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_Pcomp(k: f64, n: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_ellint_Dcomp_e(
        k: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_Dcomp(k: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_ellint_F_e(
        phi: f64,
        k: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_F(phi: f64, k: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_ellint_E_e(
        phi: f64,
        k: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_E(phi: f64, k: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_ellint_P_e(
        phi: f64,
        k: f64,
        n: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_P(phi: f64, k: f64, n: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_ellint_D_e(
        phi: f64,
        k: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_D(phi: f64, k: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_ellint_RC_e(
        x: f64,
        y: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_RC(x: f64, y: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_ellint_RD_e(
        x: f64,
        y: f64,
        z: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_RD(x: f64, y: f64, z: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_ellint_RF_e(
        x: f64,
        y: f64,
        z: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_RF(x: f64, y: f64, z: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_ellint_RJ_e(
        x: f64,
        y: f64,
        z: f64,
        p: f64,
        mode: gsl_mode_t,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_ellint_RJ(x: f64, y: f64, z: f64, p: f64, mode: gsl_mode_t) -> f64;
}
extern "C" {
    pub fn gsl_sf_elljac_e(
        u: f64,
        m: f64,
        sn: *mut f64,
        cn: *mut f64,
        dn: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_erfc_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_erfc(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_log_erfc_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_log_erfc(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_erf_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_erf(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_erf_Z_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_erf_Q_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_erf_Z(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_erf_Q(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hazard_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hazard(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_exp_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_exp(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_exp_e10_e(x: f64, result: *mut gsl_sf_result_e10) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_exp_mult_e(x: f64, y: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_exp_mult(x: f64, y: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_exp_mult_e10_e(
        x: f64,
        y: f64,
        result: *mut gsl_sf_result_e10,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_expm1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_expm1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_exprel_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_exprel(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_exprel_2_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_exprel_2(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_exprel_n_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_exprel_n(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_exprel_n_CF_e(
        n: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_exp_err_e(x: f64, dx: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_exp_err_e10_e(
        x: f64,
        dx: f64,
        result: *mut gsl_sf_result_e10,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_exp_mult_err_e(
        x: f64,
        dx: f64,
        y: f64,
        dy: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_exp_mult_err_e10_e(
        x: f64,
        dx: f64,
        y: f64,
        dy: f64,
        result: *mut gsl_sf_result_e10,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_expint_E1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_expint_E1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_expint_E2_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_expint_E2(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_expint_En_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_expint_En(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_expint_E1_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_expint_E1_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_expint_E2_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_expint_E2_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_expint_En_scaled_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_expint_En_scaled(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_expint_Ei_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_expint_Ei(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_expint_Ei_scaled_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_expint_Ei_scaled(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_Shi_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_Shi(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_Chi_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_Chi(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_expint_3_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_expint_3(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_Si_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_Si(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_Ci_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_Ci(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_atanint_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_atanint(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_m1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_m1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_0_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_0(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_2_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_2(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_int_e(
        j: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_int(j: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_mhalf_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_mhalf(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_half_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_half(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_3half_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_3half(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_inc_0_e(
        x: f64,
        b: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_fermi_dirac_inc_0(x: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_lngamma_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_lngamma(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_lngamma_sgn_e(
        x: f64,
        result_lg: *mut gsl_sf_result,
        sgn: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_gamma_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_gamma(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_gammastar_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_gammastar(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_gammainv_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_gammainv(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_lngamma_complex_e(
        zr: f64,
        zi: f64,
        lnr: *mut gsl_sf_result,
        arg: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_taylorcoeff_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_taylorcoeff(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_fact_e(
        n: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_fact(n: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_doublefact_e(
        n: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_doublefact(n: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_lnfact_e(
        n: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_lnfact(n: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_lndoublefact_e(
        n: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_lndoublefact(n: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_lnchoose_e(
        n: ::std::os::raw::c_uint,
        m: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_lnchoose(n: ::std::os::raw::c_uint, m: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_choose_e(
        n: ::std::os::raw::c_uint,
        m: ::std::os::raw::c_uint,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_choose(n: ::std::os::raw::c_uint, m: ::std::os::raw::c_uint) -> f64;
}
extern "C" {
    pub fn gsl_sf_lnpoch_e(a: f64, x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_lnpoch(a: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_lnpoch_sgn_e(
        a: f64,
        x: f64,
        result: *mut gsl_sf_result,
        sgn: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_poch_e(a: f64, x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_poch(a: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_pochrel_e(a: f64, x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_pochrel(a: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_gamma_inc_Q_e(
        a: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_gamma_inc_Q(a: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_gamma_inc_P_e(
        a: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_gamma_inc_P(a: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_gamma_inc_e(a: f64, x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_gamma_inc(a: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_lnbeta_e(a: f64, b: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_lnbeta(a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_lnbeta_sgn_e(
        x: f64,
        y: f64,
        result: *mut gsl_sf_result,
        sgn: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_beta_e(a: f64, b: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_beta(a: f64, b: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_beta_inc_e(
        a: f64,
        b: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_beta_inc(a: f64, b: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_gegenpoly_1_e(
        lambda: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_gegenpoly_2_e(
        lambda: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_gegenpoly_3_e(
        lambda: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_gegenpoly_1(lambda: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_gegenpoly_2(lambda: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_gegenpoly_3(lambda: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_gegenpoly_n_e(
        n: ::std::os::raw::c_int,
        lambda: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_gegenpoly_n(n: ::std::os::raw::c_int, lambda: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_gegenpoly_array(
        nmax: ::std::os::raw::c_int,
        lambda: f64,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_prob(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_deriv_e(
        m: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_deriv(
        m: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_deriv_e(
        m: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_deriv(m: ::std::os::raw::c_int, n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_func_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_func(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_func_fast_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_func_fast(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_array(
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_array_deriv(
        m: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_deriv_array(
        mmax: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_series_e(
        n: ::std::os::raw::c_int,
        x: f64,
        a: *const f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_series(n: ::std::os::raw::c_int, x: f64, a: *const f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_array(
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_array_deriv(
        m: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_deriv_array(
        mmax: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_series_e(
        n: ::std::os::raw::c_int,
        x: f64,
        a: *const f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_series(n: ::std::os::raw::c_int, x: f64, a: *const f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_func_array(
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_func_series_e(
        n: ::std::os::raw::c_int,
        x: f64,
        a: *const f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_func_series(n: ::std::os::raw::c_int, x: f64, a: *const f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_func_der_e(
        m: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_func_der(
        m: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_zero_e(
        n: ::std::os::raw::c_int,
        s: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_zero(n: ::std::os::raw::c_int, s: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_zero_e(
        n: ::std::os::raw::c_int,
        s: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_zero(n: ::std::os::raw::c_int, s: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_func_zero_e(
        n: ::std::os::raw::c_int,
        s: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_func_zero(n: ::std::os::raw::c_int, s: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_phys_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_phys(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_phys_der_e(
        m: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_phys_der(
        m: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_phys_array(
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_phys_series_e(
        n: ::std::os::raw::c_int,
        x: f64,
        a: *const f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_phys_series(n: ::std::os::raw::c_int, x: f64, a: *const f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_phys_array_der(
        m: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_phys_der_array(
        mmax: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_phys_zero_e(
        n: ::std::os::raw::c_int,
        s: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_phys_zero(n: ::std::os::raw::c_int, s: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_array_der(
        m: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_der_array(
        mmax: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_der_e(
        m: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hermite_prob_der(
        m: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_hyperg_0F1_e(c: f64, x: f64, result: *mut gsl_sf_result)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hyperg_0F1(c: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hyperg_1F1_int_e(
        m: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hyperg_1F1_int(m: ::std::os::raw::c_int, n: ::std::os::raw::c_int, x: f64)
        -> f64;
}
extern "C" {
    pub fn gsl_sf_hyperg_1F1_e(
        a: f64,
        b: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hyperg_1F1(a: f64, b: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hyperg_U_int_e(
        m: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hyperg_U_int(m: ::std::os::raw::c_int, n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hyperg_U_int_e10_e(
        m: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result_e10,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hyperg_U_e(
        a: f64,
        b: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hyperg_U(a: f64, b: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hyperg_U_e10_e(
        a: f64,
        b: f64,
        x: f64,
        result: *mut gsl_sf_result_e10,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hyperg_2F1_e(
        a: f64,
        b: f64,
        c: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hyperg_2F1(a: f64, b: f64, c: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hyperg_2F1_conj_e(
        aR: f64,
        aI: f64,
        c: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hyperg_2F1_conj(aR: f64, aI: f64, c: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hyperg_2F1_renorm_e(
        a: f64,
        b: f64,
        c: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hyperg_2F1_renorm(a: f64, b: f64, c: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hyperg_2F1_conj_renorm_e(
        aR: f64,
        aI: f64,
        c: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hyperg_2F1_conj_renorm(aR: f64, aI: f64, c: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hyperg_2F0_e(
        a: f64,
        b: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hyperg_2F0(a: f64, b: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_laguerre_1_e(a: f64, x: f64, result: *mut gsl_sf_result)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_laguerre_2_e(a: f64, x: f64, result: *mut gsl_sf_result)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_laguerre_3_e(a: f64, x: f64, result: *mut gsl_sf_result)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_laguerre_1(a: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_laguerre_2(a: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_laguerre_3(a: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_laguerre_n_e(
        n: ::std::os::raw::c_int,
        a: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_laguerre_n(n: ::std::os::raw::c_int, a: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_lambert_W0_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_lambert_W0(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_lambert_Wm1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_lambert_Wm1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_Pl_e(
        l: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_Pl(l: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_Pl_array(
        lmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_Pl_deriv_array(
        lmax: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
        result_deriv_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_P1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_P2_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_P3_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_P1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_P2(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_P3(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_Q0_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_Q0(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_Q1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_Q1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_Ql_e(
        l: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_Ql(l: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_Plm_e(
        l: ::std::os::raw::c_int,
        m: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_Plm(l: ::std::os::raw::c_int, m: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_Plm_array(
        lmax: ::std::os::raw::c_int,
        m: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_Plm_deriv_array(
        lmax: ::std::os::raw::c_int,
        m: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
        result_deriv_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_sphPlm_e(
        l: ::std::os::raw::c_int,
        m: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_sphPlm(
        l: ::std::os::raw::c_int,
        m: ::std::os::raw::c_int,
        x: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_sphPlm_array(
        lmax: ::std::os::raw::c_int,
        m: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_sphPlm_deriv_array(
        lmax: ::std::os::raw::c_int,
        m: ::std::os::raw::c_int,
        x: f64,
        result_array: *mut f64,
        result_deriv_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_array_size(
        lmax: ::std::os::raw::c_int,
        m: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_conicalP_half_e(
        lambda: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_conicalP_half(lambda: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_conicalP_mhalf_e(
        lambda: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_conicalP_mhalf(lambda: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_conicalP_0_e(
        lambda: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_conicalP_0(lambda: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_conicalP_1_e(
        lambda: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_conicalP_1(lambda: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_conicalP_sph_reg_e(
        l: ::std::os::raw::c_int,
        lambda: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_conicalP_sph_reg(l: ::std::os::raw::c_int, lambda: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_conicalP_cyl_reg_e(
        m: ::std::os::raw::c_int,
        lambda: f64,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_conicalP_cyl_reg(m: ::std::os::raw::c_int, lambda: f64, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_H3d_0_e(
        lambda: f64,
        eta: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_H3d_0(lambda: f64, eta: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_H3d_1_e(
        lambda: f64,
        eta: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_H3d_1(lambda: f64, eta: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_H3d_e(
        l: ::std::os::raw::c_int,
        lambda: f64,
        eta: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_H3d(l: ::std::os::raw::c_int, lambda: f64, eta: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_legendre_H3d_array(
        lmax: ::std::os::raw::c_int,
        lambda: f64,
        eta: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
pub const gsl_sf_legendre_t_GSL_SF_LEGENDRE_SCHMIDT: gsl_sf_legendre_t = 0;
pub const gsl_sf_legendre_t_GSL_SF_LEGENDRE_SPHARM: gsl_sf_legendre_t = 1;
pub const gsl_sf_legendre_t_GSL_SF_LEGENDRE_FULL: gsl_sf_legendre_t = 2;
pub const gsl_sf_legendre_t_GSL_SF_LEGENDRE_NONE: gsl_sf_legendre_t = 3;
pub type gsl_sf_legendre_t = ::std::os::raw::c_uint;
extern "C" {
    pub fn gsl_sf_legendre_array(
        norm: gsl_sf_legendre_t,
        lmax: usize,
        x: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_array_e(
        norm: gsl_sf_legendre_t,
        lmax: usize,
        x: f64,
        csphase: f64,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_deriv_array(
        norm: gsl_sf_legendre_t,
        lmax: usize,
        x: f64,
        result_array: *mut f64,
        result_deriv_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_deriv_array_e(
        norm: gsl_sf_legendre_t,
        lmax: usize,
        x: f64,
        csphase: f64,
        result_array: *mut f64,
        result_deriv_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_deriv_alt_array(
        norm: gsl_sf_legendre_t,
        lmax: usize,
        x: f64,
        result_array: *mut f64,
        result_deriv_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_deriv_alt_array_e(
        norm: gsl_sf_legendre_t,
        lmax: usize,
        x: f64,
        csphase: f64,
        result_array: *mut f64,
        result_deriv_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_deriv2_array(
        norm: gsl_sf_legendre_t,
        lmax: usize,
        x: f64,
        result_array: *mut f64,
        result_deriv_array: *mut f64,
        result_deriv2_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_deriv2_array_e(
        norm: gsl_sf_legendre_t,
        lmax: usize,
        x: f64,
        csphase: f64,
        result_array: *mut f64,
        result_deriv_array: *mut f64,
        result_deriv2_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_deriv2_alt_array(
        norm: gsl_sf_legendre_t,
        lmax: usize,
        x: f64,
        result_array: *mut f64,
        result_deriv_array: *mut f64,
        result_deriv2_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_deriv2_alt_array_e(
        norm: gsl_sf_legendre_t,
        lmax: usize,
        x: f64,
        csphase: f64,
        result_array: *mut f64,
        result_deriv_array: *mut f64,
        result_deriv2_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_legendre_array_n(lmax: usize) -> usize;
}
extern "C" {
    pub fn gsl_sf_legendre_nlm(lmax: usize) -> usize;
}
extern "C" {
    pub fn gsl_sf_legendre_array_index(l: usize, m: usize) -> usize;
}
extern "C" {
    pub fn gsl_sf_log_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_log(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_log_abs_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_log_abs(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_complex_log_e(
        zr: f64,
        zi: f64,
        lnr: *mut gsl_sf_result,
        theta: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_log_1plusx_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_log_1plusx(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_log_1plusx_mx_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_log_1plusx_mx(x: f64) -> f64;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_sf_mathieu_workspace;
extern "C" {
    pub fn gsl_sf_mathieu_a_array(
        order_min: ::std::os::raw::c_int,
        order_max: ::std::os::raw::c_int,
        qq: f64,
        work: *mut gsl_sf_mathieu_workspace,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_b_array(
        order_min: ::std::os::raw::c_int,
        order_max: ::std::os::raw::c_int,
        qq: f64,
        work: *mut gsl_sf_mathieu_workspace,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_a_e(
        order: ::std::os::raw::c_int,
        qq: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_a(order: ::std::os::raw::c_int, qq: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_mathieu_b_e(
        order: ::std::os::raw::c_int,
        qq: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_b(order: ::std::os::raw::c_int, qq: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_mathieu_a_coeff(
        order: ::std::os::raw::c_int,
        qq: f64,
        aa: f64,
        coeff: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_b_coeff(
        order: ::std::os::raw::c_int,
        qq: f64,
        aa: f64,
        coeff: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_alloc(nn: usize, qq: f64) -> *mut gsl_sf_mathieu_workspace;
}
extern "C" {
    pub fn gsl_sf_mathieu_free(workspace: *mut gsl_sf_mathieu_workspace);
}
extern "C" {
    pub fn gsl_sf_mathieu_ce_e(
        order: ::std::os::raw::c_int,
        qq: f64,
        zz: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_ce(order: ::std::os::raw::c_int, qq: f64, zz: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_mathieu_se_e(
        order: ::std::os::raw::c_int,
        qq: f64,
        zz: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_se(order: ::std::os::raw::c_int, qq: f64, zz: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_mathieu_ce_array(
        nmin: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        qq: f64,
        zz: f64,
        work: *mut gsl_sf_mathieu_workspace,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_se_array(
        nmin: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        qq: f64,
        zz: f64,
        work: *mut gsl_sf_mathieu_workspace,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_Mc_e(
        kind: ::std::os::raw::c_int,
        order: ::std::os::raw::c_int,
        qq: f64,
        zz: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_Mc(
        kind: ::std::os::raw::c_int,
        order: ::std::os::raw::c_int,
        qq: f64,
        zz: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_mathieu_Ms_e(
        kind: ::std::os::raw::c_int,
        order: ::std::os::raw::c_int,
        qq: f64,
        zz: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_Ms(
        kind: ::std::os::raw::c_int,
        order: ::std::os::raw::c_int,
        qq: f64,
        zz: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_sf_mathieu_Mc_array(
        kind: ::std::os::raw::c_int,
        nmin: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        qq: f64,
        zz: f64,
        work: *mut gsl_sf_mathieu_workspace,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_mathieu_Ms_array(
        kind: ::std::os::raw::c_int,
        nmin: ::std::os::raw::c_int,
        nmax: ::std::os::raw::c_int,
        qq: f64,
        zz: f64,
        work: *mut gsl_sf_mathieu_workspace,
        result_array: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_pow_int_e(
        x: f64,
        n: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_pow_int(x: f64, n: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_sf_psi_int_e(
        n: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_psi_int(n: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_sf_psi_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_psi(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_psi_1piy_e(y: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_psi_1piy(y: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_complex_psi_e(
        x: f64,
        y: f64,
        result_re: *mut gsl_sf_result,
        result_im: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_psi_1_int_e(
        n: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_psi_1_int(n: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_sf_psi_1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_psi_1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_psi_n_e(
        n: ::std::os::raw::c_int,
        x: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_psi_n(n: ::std::os::raw::c_int, x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_sin_pi_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_sin_pi(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_cos_pi_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_cos_pi(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_synchrotron_1_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_synchrotron_1(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_synchrotron_2_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_synchrotron_2(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_transport_2_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_transport_2(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_transport_3_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_transport_3(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_transport_4_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_transport_4(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_transport_5_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_transport_5(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_sin_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_sin(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_cos_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_cos(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_hypot_e(x: f64, y: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hypot(x: f64, y: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_complex_sin_e(
        zr: f64,
        zi: f64,
        szr: *mut gsl_sf_result,
        szi: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_complex_cos_e(
        zr: f64,
        zi: f64,
        czr: *mut gsl_sf_result,
        czi: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_complex_logsin_e(
        zr: f64,
        zi: f64,
        lszr: *mut gsl_sf_result,
        lszi: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_sinc_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_sinc(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_lnsinh_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_lnsinh(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_lncosh_e(x: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_lncosh(x: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_polar_to_rect(
        r: f64,
        theta: f64,
        x: *mut gsl_sf_result,
        y: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_rect_to_polar(
        x: f64,
        y: f64,
        r: *mut gsl_sf_result,
        theta: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_sin_err_e(x: f64, dx: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_cos_err_e(x: f64, dx: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_angle_restrict_symm_e(theta: *mut f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_angle_restrict_symm(theta: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_angle_restrict_pos_e(theta: *mut f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_angle_restrict_pos(theta: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_angle_restrict_symm_err_e(
        theta: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_angle_restrict_pos_err_e(
        theta: f64,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_zeta_int_e(
        n: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_zeta_int(n: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_sf_zeta_e(s: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_zeta(s: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_zetam1_e(s: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_zetam1(s: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_zetam1_int_e(
        s: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_zetam1_int(s: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_sf_hzeta_e(s: f64, q: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_hzeta(s: f64, q: f64) -> f64;
}
extern "C" {
    pub fn gsl_sf_eta_int_e(
        n: ::std::os::raw::c_int,
        result: *mut gsl_sf_result,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_eta_int(n: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn gsl_sf_eta_e(s: f64, result: *mut gsl_sf_result) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sf_eta(s: f64) -> f64;
}
pub type gsl_siman_Efunc_t =
    ::std::option::Option<unsafe extern "C" fn(xp: *mut ::std::os::raw::c_void) -> f64>;
pub type gsl_siman_step_t = ::std::option::Option<
    unsafe extern "C" fn(r: *const gsl_rng, xp: *mut ::std::os::raw::c_void, step_size: f64),
>;
pub type gsl_siman_metric_t = ::std::option::Option<
    unsafe extern "C" fn(xp: *mut ::std::os::raw::c_void, yp: *mut ::std::os::raw::c_void) -> f64,
>;
pub type gsl_siman_print_t =
    ::std::option::Option<unsafe extern "C" fn(xp: *mut ::std::os::raw::c_void)>;
pub type gsl_siman_copy_t = ::std::option::Option<
    unsafe extern "C" fn(source: *mut ::std::os::raw::c_void, dest: *mut ::std::os::raw::c_void),
>;
pub type gsl_siman_copy_construct_t = ::std::option::Option<
    unsafe extern "C" fn(xp: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
>;
pub type gsl_siman_destroy_t =
    ::std::option::Option<unsafe extern "C" fn(xp: *mut ::std::os::raw::c_void)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_siman_params_t;
extern "C" {
    pub fn gsl_siman_solve(
        r: *const gsl_rng,
        x0_p: *mut ::std::os::raw::c_void,
        Ef: gsl_siman_Efunc_t,
        take_step: gsl_siman_step_t,
        distance: gsl_siman_metric_t,
        print_position: gsl_siman_print_t,
        copyfunc: gsl_siman_copy_t,
        copy_constructor: gsl_siman_copy_construct_t,
        destructor: gsl_siman_destroy_t,
        element_size: usize,
        params: gsl_siman_params_t,
    );
}
extern "C" {
    pub fn gsl_siman_solve_many(
        r: *const gsl_rng,
        x0_p: *mut ::std::os::raw::c_void,
        Ef: gsl_siman_Efunc_t,
        take_step: gsl_siman_step_t,
        distance: gsl_siman_metric_t,
        print_position: gsl_siman_print_t,
        element_size: usize,
        params: gsl_siman_params_t,
    );
}
extern "C" {
    pub fn gsl_sort_long_double(data: *mut u128, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort2_long_double(
        data1: *mut u128,
        stride1: usize,
        data2: *mut u128,
        stride2: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_long_double_index(p: *mut usize, data: *const u128, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort_long_double_smallest(
        dest: *mut u128,
        k: usize,
        src: *const u128,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_long_double_smallest_index(
        p: *mut usize,
        k: usize,
        src: *const u128,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_long_double_largest(
        dest: *mut u128,
        k: usize,
        src: *const u128,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_long_double_largest_index(
        p: *mut usize,
        k: usize,
        src: *const u128,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort(data: *mut f64, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort2(data1: *mut f64, stride1: usize, data2: *mut f64, stride2: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort_index(p: *mut usize, data: *const f64, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort_smallest(
        dest: *mut f64,
        k: usize,
        src: *const f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_smallest_index(
        p: *mut usize,
        k: usize,
        src: *const f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_largest(
        dest: *mut f64,
        k: usize,
        src: *const f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_largest_index(
        p: *mut usize,
        k: usize,
        src: *const f64,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_float(data: *mut f32, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort2_float(
        data1: *mut f32,
        stride1: usize,
        data2: *mut f32,
        stride2: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_float_index(p: *mut usize, data: *const f32, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort_float_smallest(
        dest: *mut f32,
        k: usize,
        src: *const f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_float_smallest_index(
        p: *mut usize,
        k: usize,
        src: *const f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_float_largest(
        dest: *mut f32,
        k: usize,
        src: *const f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_float_largest_index(
        p: *mut usize,
        k: usize,
        src: *const f32,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_ulong(data: *mut ::std::os::raw::c_ulong, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort2_ulong(
        data1: *mut ::std::os::raw::c_ulong,
        stride1: usize,
        data2: *mut ::std::os::raw::c_ulong,
        stride2: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_ulong_index(
        p: *mut usize,
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_ulong_smallest(
        dest: *mut ::std::os::raw::c_ulong,
        k: usize,
        src: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_ulong_smallest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_ulong_largest(
        dest: *mut ::std::os::raw::c_ulong,
        k: usize,
        src: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_ulong_largest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_long(data: *mut ::std::os::raw::c_long, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort2_long(
        data1: *mut ::std::os::raw::c_long,
        stride1: usize,
        data2: *mut ::std::os::raw::c_long,
        stride2: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_long_index(
        p: *mut usize,
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_long_smallest(
        dest: *mut ::std::os::raw::c_long,
        k: usize,
        src: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_long_smallest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_long_largest(
        dest: *mut ::std::os::raw::c_long,
        k: usize,
        src: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_long_largest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_uint(data: *mut ::std::os::raw::c_uint, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort2_uint(
        data1: *mut ::std::os::raw::c_uint,
        stride1: usize,
        data2: *mut ::std::os::raw::c_uint,
        stride2: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_uint_index(
        p: *mut usize,
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_uint_smallest(
        dest: *mut ::std::os::raw::c_uint,
        k: usize,
        src: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_uint_smallest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_uint_largest(
        dest: *mut ::std::os::raw::c_uint,
        k: usize,
        src: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_uint_largest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_int(data: *mut ::std::os::raw::c_int, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort2_int(
        data1: *mut ::std::os::raw::c_int,
        stride1: usize,
        data2: *mut ::std::os::raw::c_int,
        stride2: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_int_index(
        p: *mut usize,
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_int_smallest(
        dest: *mut ::std::os::raw::c_int,
        k: usize,
        src: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_int_smallest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_int_largest(
        dest: *mut ::std::os::raw::c_int,
        k: usize,
        src: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_int_largest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_ushort(data: *mut ::std::os::raw::c_ushort, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort2_ushort(
        data1: *mut ::std::os::raw::c_ushort,
        stride1: usize,
        data2: *mut ::std::os::raw::c_ushort,
        stride2: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_ushort_index(
        p: *mut usize,
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_ushort_smallest(
        dest: *mut ::std::os::raw::c_ushort,
        k: usize,
        src: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_ushort_smallest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_ushort_largest(
        dest: *mut ::std::os::raw::c_ushort,
        k: usize,
        src: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_ushort_largest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_short(data: *mut ::std::os::raw::c_short, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort2_short(
        data1: *mut ::std::os::raw::c_short,
        stride1: usize,
        data2: *mut ::std::os::raw::c_short,
        stride2: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_short_index(
        p: *mut usize,
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_short_smallest(
        dest: *mut ::std::os::raw::c_short,
        k: usize,
        src: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_short_smallest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_short_largest(
        dest: *mut ::std::os::raw::c_short,
        k: usize,
        src: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_short_largest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_uchar(data: *mut ::std::os::raw::c_uchar, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort2_uchar(
        data1: *mut ::std::os::raw::c_uchar,
        stride1: usize,
        data2: *mut ::std::os::raw::c_uchar,
        stride2: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_uchar_index(
        p: *mut usize,
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_uchar_smallest(
        dest: *mut ::std::os::raw::c_uchar,
        k: usize,
        src: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_uchar_smallest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_uchar_largest(
        dest: *mut ::std::os::raw::c_uchar,
        k: usize,
        src: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_uchar_largest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_char(data: *mut ::std::os::raw::c_char, stride: usize, n: usize);
}
extern "C" {
    pub fn gsl_sort2_char(
        data1: *mut ::std::os::raw::c_char,
        stride1: usize,
        data2: *mut ::std::os::raw::c_char,
        stride2: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_char_index(
        p: *mut usize,
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_sort_char_smallest(
        dest: *mut ::std::os::raw::c_char,
        k: usize,
        src: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_char_smallest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_char_largest(
        dest: *mut ::std::os::raw::c_char,
        k: usize,
        src: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_char_largest_index(
        p: *mut usize,
        k: usize,
        src: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_long_double(v: *mut gsl_vector_long_double);
}
extern "C" {
    pub fn gsl_sort_vector2_long_double(
        v1: *mut gsl_vector_long_double,
        v2: *mut gsl_vector_long_double,
    );
}
extern "C" {
    pub fn gsl_sort_vector_long_double_index(
        p: *mut gsl_permutation,
        v: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_long_double_smallest(
        dest: *mut u128,
        k: usize,
        v: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_long_double_largest(
        dest: *mut u128,
        k: usize,
        v: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_long_double_smallest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_long_double_largest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector(v: *mut gsl_vector);
}
extern "C" {
    pub fn gsl_sort_vector2(v1: *mut gsl_vector, v2: *mut gsl_vector);
}
extern "C" {
    pub fn gsl_sort_vector_index(
        p: *mut gsl_permutation,
        v: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_smallest(
        dest: *mut f64,
        k: usize,
        v: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_largest(
        dest: *mut f64,
        k: usize,
        v: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_smallest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_largest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_float(v: *mut gsl_vector_float);
}
extern "C" {
    pub fn gsl_sort_vector2_float(v1: *mut gsl_vector_float, v2: *mut gsl_vector_float);
}
extern "C" {
    pub fn gsl_sort_vector_float_index(
        p: *mut gsl_permutation,
        v: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_float_smallest(
        dest: *mut f32,
        k: usize,
        v: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_float_largest(
        dest: *mut f32,
        k: usize,
        v: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_float_smallest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_float_largest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_ulong(v: *mut gsl_vector_ulong);
}
extern "C" {
    pub fn gsl_sort_vector2_ulong(v1: *mut gsl_vector_ulong, v2: *mut gsl_vector_ulong);
}
extern "C" {
    pub fn gsl_sort_vector_ulong_index(
        p: *mut gsl_permutation,
        v: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_ulong_smallest(
        dest: *mut ::std::os::raw::c_ulong,
        k: usize,
        v: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_ulong_largest(
        dest: *mut ::std::os::raw::c_ulong,
        k: usize,
        v: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_ulong_smallest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_ulong_largest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_long(v: *mut gsl_vector_long);
}
extern "C" {
    pub fn gsl_sort_vector2_long(v1: *mut gsl_vector_long, v2: *mut gsl_vector_long);
}
extern "C" {
    pub fn gsl_sort_vector_long_index(
        p: *mut gsl_permutation,
        v: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_long_smallest(
        dest: *mut ::std::os::raw::c_long,
        k: usize,
        v: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_long_largest(
        dest: *mut ::std::os::raw::c_long,
        k: usize,
        v: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_long_smallest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_long_largest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_uint(v: *mut gsl_vector_uint);
}
extern "C" {
    pub fn gsl_sort_vector2_uint(v1: *mut gsl_vector_uint, v2: *mut gsl_vector_uint);
}
extern "C" {
    pub fn gsl_sort_vector_uint_index(
        p: *mut gsl_permutation,
        v: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_uint_smallest(
        dest: *mut ::std::os::raw::c_uint,
        k: usize,
        v: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_uint_largest(
        dest: *mut ::std::os::raw::c_uint,
        k: usize,
        v: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_uint_smallest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_uint_largest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_int(v: *mut gsl_vector_int);
}
extern "C" {
    pub fn gsl_sort_vector2_int(v1: *mut gsl_vector_int, v2: *mut gsl_vector_int);
}
extern "C" {
    pub fn gsl_sort_vector_int_index(
        p: *mut gsl_permutation,
        v: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_int_smallest(
        dest: *mut ::std::os::raw::c_int,
        k: usize,
        v: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_int_largest(
        dest: *mut ::std::os::raw::c_int,
        k: usize,
        v: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_int_smallest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_int_largest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_ushort(v: *mut gsl_vector_ushort);
}
extern "C" {
    pub fn gsl_sort_vector2_ushort(v1: *mut gsl_vector_ushort, v2: *mut gsl_vector_ushort);
}
extern "C" {
    pub fn gsl_sort_vector_ushort_index(
        p: *mut gsl_permutation,
        v: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_ushort_smallest(
        dest: *mut ::std::os::raw::c_ushort,
        k: usize,
        v: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_ushort_largest(
        dest: *mut ::std::os::raw::c_ushort,
        k: usize,
        v: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_ushort_smallest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_ushort_largest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_short(v: *mut gsl_vector_short);
}
extern "C" {
    pub fn gsl_sort_vector2_short(v1: *mut gsl_vector_short, v2: *mut gsl_vector_short);
}
extern "C" {
    pub fn gsl_sort_vector_short_index(
        p: *mut gsl_permutation,
        v: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_short_smallest(
        dest: *mut ::std::os::raw::c_short,
        k: usize,
        v: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_short_largest(
        dest: *mut ::std::os::raw::c_short,
        k: usize,
        v: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_short_smallest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_short_largest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_uchar(v: *mut gsl_vector_uchar);
}
extern "C" {
    pub fn gsl_sort_vector2_uchar(v1: *mut gsl_vector_uchar, v2: *mut gsl_vector_uchar);
}
extern "C" {
    pub fn gsl_sort_vector_uchar_index(
        p: *mut gsl_permutation,
        v: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_uchar_smallest(
        dest: *mut ::std::os::raw::c_uchar,
        k: usize,
        v: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_uchar_largest(
        dest: *mut ::std::os::raw::c_uchar,
        k: usize,
        v: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_uchar_smallest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_uchar_largest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_char(v: *mut gsl_vector_char);
}
extern "C" {
    pub fn gsl_sort_vector2_char(v1: *mut gsl_vector_char, v2: *mut gsl_vector_char);
}
extern "C" {
    pub fn gsl_sort_vector_char_index(
        p: *mut gsl_permutation,
        v: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_char_smallest(
        dest: *mut ::std::os::raw::c_char,
        k: usize,
        v: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_char_largest(
        dest: *mut ::std::os::raw::c_char,
        k: usize,
        v: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_char_smallest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sort_vector_char_largest_index(
        p: *mut usize,
        k: usize,
        v: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
pub const GSL_SPMATRIX_COO: ::std::os::raw::c_uint = 0;
pub const GSL_SPMATRIX_CSC: ::std::os::raw::c_uint = 1;
pub const GSL_SPMATRIX_CSR: ::std::os::raw::c_uint = 2;
pub const GSL_SPMATRIX_TRIPLET: ::std::os::raw::c_uint = 0;
pub const GSL_SPMATRIX_CCS: ::std::os::raw::c_uint = 1;
pub const GSL_SPMATRIX_CRS: ::std::os::raw::c_uint = 2;
pub type _bindgen_ty_9 = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_spmatrix_pool_node;
pub type gsl_spmatrix_pool = gsl_spmatrix_pool_node;
extern "C" {
    pub fn gsl_spmatrix_cumsum(n: usize, c: *mut ::std::os::raw::c_int);
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_complex_long_double;
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_alloc(
        n1: usize,
        n2: usize,
    ) -> *mut gsl_spmatrix_complex_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_complex_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_free(m: *mut gsl_spmatrix_complex_long_double);
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_nnz(
        m: *const gsl_spmatrix_complex_long_double,
    ) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_type(
        m: *const gsl_spmatrix_complex_long_double,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_set_zero(
        m: *mut gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_tree_rebuild(
        m: *mut gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_csc(
        dest: *mut gsl_spmatrix_complex_long_double,
        src: *const gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_csr(
        dest: *mut gsl_spmatrix_complex_long_double,
        src: *const gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_compress(
        src: *const gsl_spmatrix_complex_long_double,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_complex_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_compcol(
        src: *const gsl_spmatrix_complex_long_double,
    ) -> *mut gsl_spmatrix_complex_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_ccs(
        src: *const gsl_spmatrix_complex_long_double,
    ) -> *mut gsl_spmatrix_complex_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_crs(
        src: *const gsl_spmatrix_complex_long_double,
    ) -> *mut gsl_spmatrix_complex_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_memcpy(
        dest: *mut gsl_spmatrix_complex_long_double,
        src: *const gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_complex_long_double,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_fscanf(
        stream: *mut FILE,
    ) -> *mut gsl_spmatrix_complex_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_get(
        m: *const gsl_spmatrix_complex_long_double,
        i: usize,
        j: usize,
    ) -> gsl_complex_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_set(
        m: *mut gsl_spmatrix_complex_long_double,
        i: usize,
        j: usize,
        x: gsl_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_ptr(
        m: *const gsl_spmatrix_complex_long_double,
        i: usize,
        j: usize,
    ) -> *mut gsl_complex_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_scale(
        m: *mut gsl_spmatrix_complex_long_double,
        x: gsl_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_scale_columns(
        m: *mut gsl_spmatrix_complex_long_double,
        x: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_scale_rows(
        m: *mut gsl_spmatrix_complex_long_double,
        x: *const gsl_vector_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_add(
        c: *mut gsl_spmatrix_complex_long_double,
        a: *const gsl_spmatrix_complex_long_double,
        b: *const gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_dense_add(
        a: *mut gsl_matrix_complex_long_double,
        b: *const gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_dense_sub(
        a: *mut gsl_matrix_complex_long_double,
        b: *const gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_d2sp(
        T: *mut gsl_spmatrix_complex_long_double,
        A: *const gsl_matrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_sp2d(
        A: *mut gsl_matrix_complex_long_double,
        S: *const gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_add_to_dense(
        a: *mut gsl_matrix_complex_long_double,
        b: *const gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_equal(
        a: *const gsl_spmatrix_complex_long_double,
        b: *const gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_transpose(
        m: *mut gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_transpose2(
        m: *mut gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_long_double_transpose_memcpy(
        dest: *mut gsl_spmatrix_complex_long_double,
        src: *const gsl_spmatrix_complex_long_double,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_complex;
extern "C" {
    pub fn gsl_spmatrix_complex_alloc(n1: usize, n2: usize) -> *mut gsl_spmatrix_complex;
}
extern "C" {
    pub fn gsl_spmatrix_complex_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_complex;
}
extern "C" {
    pub fn gsl_spmatrix_complex_free(m: *mut gsl_spmatrix_complex);
}
extern "C" {
    pub fn gsl_spmatrix_complex_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_nnz(m: *const gsl_spmatrix_complex) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_complex_type(
        m: *const gsl_spmatrix_complex,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_complex_set_zero(m: *mut gsl_spmatrix_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_tree_rebuild(m: *mut gsl_spmatrix_complex)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_csc(
        dest: *mut gsl_spmatrix_complex,
        src: *const gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_csr(
        dest: *mut gsl_spmatrix_complex,
        src: *const gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_compress(
        src: *const gsl_spmatrix_complex,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_complex;
}
extern "C" {
    pub fn gsl_spmatrix_complex_compcol(
        src: *const gsl_spmatrix_complex,
    ) -> *mut gsl_spmatrix_complex;
}
extern "C" {
    pub fn gsl_spmatrix_complex_ccs(src: *const gsl_spmatrix_complex) -> *mut gsl_spmatrix_complex;
}
extern "C" {
    pub fn gsl_spmatrix_complex_crs(src: *const gsl_spmatrix_complex) -> *mut gsl_spmatrix_complex;
}
extern "C" {
    pub fn gsl_spmatrix_complex_memcpy(
        dest: *mut gsl_spmatrix_complex,
        src: *const gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_complex,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix_complex;
}
extern "C" {
    pub fn gsl_spmatrix_complex_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_get(
        m: *const gsl_spmatrix_complex,
        i: usize,
        j: usize,
    ) -> gsl_complex;
}
extern "C" {
    pub fn gsl_spmatrix_complex_set(
        m: *mut gsl_spmatrix_complex,
        i: usize,
        j: usize,
        x: gsl_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_ptr(
        m: *const gsl_spmatrix_complex,
        i: usize,
        j: usize,
    ) -> *mut gsl_complex;
}
extern "C" {
    pub fn gsl_spmatrix_complex_scale(
        m: *mut gsl_spmatrix_complex,
        x: gsl_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_scale_columns(
        m: *mut gsl_spmatrix_complex,
        x: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_scale_rows(
        m: *mut gsl_spmatrix_complex,
        x: *const gsl_vector_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_add(
        c: *mut gsl_spmatrix_complex,
        a: *const gsl_spmatrix_complex,
        b: *const gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_dense_add(
        a: *mut gsl_matrix_complex,
        b: *const gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_dense_sub(
        a: *mut gsl_matrix_complex,
        b: *const gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_d2sp(
        T: *mut gsl_spmatrix_complex,
        A: *const gsl_matrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_sp2d(
        A: *mut gsl_matrix_complex,
        S: *const gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_add_to_dense(
        a: *mut gsl_matrix_complex,
        b: *const gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_equal(
        a: *const gsl_spmatrix_complex,
        b: *const gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_transpose(m: *mut gsl_spmatrix_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_transpose2(m: *mut gsl_spmatrix_complex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_transpose_memcpy(
        dest: *mut gsl_spmatrix_complex,
        src: *const gsl_spmatrix_complex,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_complex_float;
extern "C" {
    pub fn gsl_spmatrix_complex_float_alloc(
        n1: usize,
        n2: usize,
    ) -> *mut gsl_spmatrix_complex_float;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_complex_float;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_free(m: *mut gsl_spmatrix_complex_float);
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_nnz(m: *const gsl_spmatrix_complex_float) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_type(
        m: *const gsl_spmatrix_complex_float,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_set_zero(
        m: *mut gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_tree_rebuild(
        m: *mut gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_csc(
        dest: *mut gsl_spmatrix_complex_float,
        src: *const gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_csr(
        dest: *mut gsl_spmatrix_complex_float,
        src: *const gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_compress(
        src: *const gsl_spmatrix_complex_float,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_complex_float;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_compcol(
        src: *const gsl_spmatrix_complex_float,
    ) -> *mut gsl_spmatrix_complex_float;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_ccs(
        src: *const gsl_spmatrix_complex_float,
    ) -> *mut gsl_spmatrix_complex_float;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_crs(
        src: *const gsl_spmatrix_complex_float,
    ) -> *mut gsl_spmatrix_complex_float;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_memcpy(
        dest: *mut gsl_spmatrix_complex_float,
        src: *const gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_complex_float,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix_complex_float;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_get(
        m: *const gsl_spmatrix_complex_float,
        i: usize,
        j: usize,
    ) -> gsl_complex_float;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_set(
        m: *mut gsl_spmatrix_complex_float,
        i: usize,
        j: usize,
        x: gsl_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_ptr(
        m: *const gsl_spmatrix_complex_float,
        i: usize,
        j: usize,
    ) -> *mut gsl_complex_float;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_scale(
        m: *mut gsl_spmatrix_complex_float,
        x: gsl_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_scale_columns(
        m: *mut gsl_spmatrix_complex_float,
        x: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_scale_rows(
        m: *mut gsl_spmatrix_complex_float,
        x: *const gsl_vector_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_add(
        c: *mut gsl_spmatrix_complex_float,
        a: *const gsl_spmatrix_complex_float,
        b: *const gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_dense_add(
        a: *mut gsl_matrix_complex_float,
        b: *const gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_dense_sub(
        a: *mut gsl_matrix_complex_float,
        b: *const gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_d2sp(
        T: *mut gsl_spmatrix_complex_float,
        A: *const gsl_matrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_sp2d(
        A: *mut gsl_matrix_complex_float,
        S: *const gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_add_to_dense(
        a: *mut gsl_matrix_complex_float,
        b: *const gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_equal(
        a: *const gsl_spmatrix_complex_float,
        b: *const gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_transpose(
        m: *mut gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_transpose2(
        m: *mut gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_complex_float_transpose_memcpy(
        dest: *mut gsl_spmatrix_complex_float,
        src: *const gsl_spmatrix_complex_float,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_long_double;
extern "C" {
    pub fn gsl_spmatrix_long_double_alloc(n1: usize, n2: usize) -> *mut gsl_spmatrix_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_free(m: *mut gsl_spmatrix_long_double);
}
extern "C" {
    pub fn gsl_spmatrix_long_double_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_nnz(m: *const gsl_spmatrix_long_double) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_type(
        m: *const gsl_spmatrix_long_double,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_set_zero(
        m: *mut gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_tree_rebuild(
        m: *mut gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_csc(
        dest: *mut gsl_spmatrix_long_double,
        src: *const gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_csr(
        dest: *mut gsl_spmatrix_long_double,
        src: *const gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_compress(
        src: *const gsl_spmatrix_long_double,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_compcol(
        src: *const gsl_spmatrix_long_double,
    ) -> *mut gsl_spmatrix_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_ccs(
        src: *const gsl_spmatrix_long_double,
    ) -> *mut gsl_spmatrix_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_crs(
        src: *const gsl_spmatrix_long_double,
    ) -> *mut gsl_spmatrix_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_memcpy(
        dest: *mut gsl_spmatrix_long_double,
        src: *const gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_long_double,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix_long_double;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_get(
        m: *const gsl_spmatrix_long_double,
        i: usize,
        j: usize,
    ) -> u128;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_set(
        m: *mut gsl_spmatrix_long_double,
        i: usize,
        j: usize,
        x: u128,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_ptr(
        m: *const gsl_spmatrix_long_double,
        i: usize,
        j: usize,
    ) -> *mut u128;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_minmax(
        m: *const gsl_spmatrix_long_double,
        min_out: *mut u128,
        max_out: *mut u128,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_min_index(
        m: *const gsl_spmatrix_long_double,
        imin_out: *mut usize,
        jmin_out: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_scale(
        m: *mut gsl_spmatrix_long_double,
        x: u128,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_scale_columns(
        m: *mut gsl_spmatrix_long_double,
        x: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_scale_rows(
        m: *mut gsl_spmatrix_long_double,
        x: *const gsl_vector_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_add(
        c: *mut gsl_spmatrix_long_double,
        a: *const gsl_spmatrix_long_double,
        b: *const gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_dense_add(
        a: *mut gsl_matrix_long_double,
        b: *const gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_dense_sub(
        a: *mut gsl_matrix_long_double,
        b: *const gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_d2sp(
        T: *mut gsl_spmatrix_long_double,
        A: *const gsl_matrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_sp2d(
        A: *mut gsl_matrix_long_double,
        S: *const gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_add_to_dense(
        a: *mut gsl_matrix_long_double,
        b: *const gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_equal(
        a: *const gsl_spmatrix_long_double,
        b: *const gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_norm1(a: *const gsl_spmatrix_long_double) -> u128;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_transpose(
        m: *mut gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_transpose2(
        m: *mut gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_double_transpose_memcpy(
        dest: *mut gsl_spmatrix_long_double,
        src: *const gsl_spmatrix_long_double,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix;
extern "C" {
    pub fn gsl_spmatrix_alloc(n1: usize, n2: usize) -> *mut gsl_spmatrix;
}
extern "C" {
    pub fn gsl_spmatrix_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix;
}
extern "C" {
    pub fn gsl_spmatrix_free(m: *mut gsl_spmatrix);
}
extern "C" {
    pub fn gsl_spmatrix_realloc(nzmax: usize, m: *mut gsl_spmatrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_nnz(m: *const gsl_spmatrix) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_type(m: *const gsl_spmatrix) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_set_zero(m: *mut gsl_spmatrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_tree_rebuild(m: *mut gsl_spmatrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_csc(
        dest: *mut gsl_spmatrix,
        src: *const gsl_spmatrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_csr(
        dest: *mut gsl_spmatrix,
        src: *const gsl_spmatrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_compress(
        src: *const gsl_spmatrix,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix;
}
extern "C" {
    pub fn gsl_spmatrix_compcol(src: *const gsl_spmatrix) -> *mut gsl_spmatrix;
}
extern "C" {
    pub fn gsl_spmatrix_ccs(src: *const gsl_spmatrix) -> *mut gsl_spmatrix;
}
extern "C" {
    pub fn gsl_spmatrix_crs(src: *const gsl_spmatrix) -> *mut gsl_spmatrix;
}
extern "C" {
    pub fn gsl_spmatrix_memcpy(
        dest: *mut gsl_spmatrix,
        src: *const gsl_spmatrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix;
}
extern "C" {
    pub fn gsl_spmatrix_fwrite(stream: *mut FILE, m: *const gsl_spmatrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_fread(stream: *mut FILE, m: *mut gsl_spmatrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_get(m: *const gsl_spmatrix, i: usize, j: usize) -> f64;
}
extern "C" {
    pub fn gsl_spmatrix_set(
        m: *mut gsl_spmatrix,
        i: usize,
        j: usize,
        x: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ptr(m: *const gsl_spmatrix, i: usize, j: usize) -> *mut f64;
}
extern "C" {
    pub fn gsl_spmatrix_minmax(
        m: *const gsl_spmatrix,
        min_out: *mut f64,
        max_out: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_spmatrix_min_index(
        m: *const gsl_spmatrix,
        imin_out: *mut usize,
        jmin_out: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_scale(m: *mut gsl_spmatrix, x: f64) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_spmatrix_scale_columns(
        m: *mut gsl_spmatrix,
        x: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_spmatrix_scale_rows(
        m: *mut gsl_spmatrix,
        x: *const gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_add(
        c: *mut gsl_spmatrix,
        a: *const gsl_spmatrix,
        b: *const gsl_spmatrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_dense_add(
        a: *mut gsl_matrix,
        b: *const gsl_spmatrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_spmatrix_dense_sub(
        a: *mut gsl_matrix,
        b: *const gsl_spmatrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_d2sp(T: *mut gsl_spmatrix, A: *const gsl_matrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_sp2d(A: *mut gsl_matrix, S: *const gsl_spmatrix) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_6")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_6")))]
    pub fn gsl_spmatrix_add_to_dense(
        a: *mut gsl_matrix,
        b: *const gsl_spmatrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_equal(
        a: *const gsl_spmatrix,
        b: *const gsl_spmatrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[cfg(feature = "v2_7")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_7")))]
    pub fn gsl_spmatrix_norm1(a: *const gsl_spmatrix) -> f64;
}
extern "C" {
    pub fn gsl_spmatrix_transpose(m: *mut gsl_spmatrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_transpose2(m: *mut gsl_spmatrix) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_transpose_memcpy(
        dest: *mut gsl_spmatrix,
        src: *const gsl_spmatrix,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_float;
extern "C" {
    pub fn gsl_spmatrix_float_alloc(n1: usize, n2: usize) -> *mut gsl_spmatrix_float;
}
extern "C" {
    pub fn gsl_spmatrix_float_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_float;
}
extern "C" {
    pub fn gsl_spmatrix_float_free(m: *mut gsl_spmatrix_float);
}
extern "C" {
    pub fn gsl_spmatrix_float_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_nnz(m: *const gsl_spmatrix_float) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_float_type(m: *const gsl_spmatrix_float) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_float_set_zero(m: *mut gsl_spmatrix_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_tree_rebuild(m: *mut gsl_spmatrix_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_csc(
        dest: *mut gsl_spmatrix_float,
        src: *const gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_csr(
        dest: *mut gsl_spmatrix_float,
        src: *const gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_compress(
        src: *const gsl_spmatrix_float,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_float;
}
extern "C" {
    pub fn gsl_spmatrix_float_compcol(src: *const gsl_spmatrix_float) -> *mut gsl_spmatrix_float;
}
extern "C" {
    pub fn gsl_spmatrix_float_ccs(src: *const gsl_spmatrix_float) -> *mut gsl_spmatrix_float;
}
extern "C" {
    pub fn gsl_spmatrix_float_crs(src: *const gsl_spmatrix_float) -> *mut gsl_spmatrix_float;
}
extern "C" {
    pub fn gsl_spmatrix_float_memcpy(
        dest: *mut gsl_spmatrix_float,
        src: *const gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_float,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix_float;
}
extern "C" {
    pub fn gsl_spmatrix_float_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_get(m: *const gsl_spmatrix_float, i: usize, j: usize) -> f32;
}
extern "C" {
    pub fn gsl_spmatrix_float_set(
        m: *mut gsl_spmatrix_float,
        i: usize,
        j: usize,
        x: f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_ptr(m: *const gsl_spmatrix_float, i: usize, j: usize) -> *mut f32;
}
extern "C" {
    pub fn gsl_spmatrix_float_minmax(
        m: *const gsl_spmatrix_float,
        min_out: *mut f32,
        max_out: *mut f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_min_index(
        m: *const gsl_spmatrix_float,
        imin_out: *mut usize,
        jmin_out: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_scale(m: *mut gsl_spmatrix_float, x: f32) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_scale_columns(
        m: *mut gsl_spmatrix_float,
        x: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_scale_rows(
        m: *mut gsl_spmatrix_float,
        x: *const gsl_vector_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_add(
        c: *mut gsl_spmatrix_float,
        a: *const gsl_spmatrix_float,
        b: *const gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_dense_add(
        a: *mut gsl_matrix_float,
        b: *const gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_dense_sub(
        a: *mut gsl_matrix_float,
        b: *const gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_d2sp(
        T: *mut gsl_spmatrix_float,
        A: *const gsl_matrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_sp2d(
        A: *mut gsl_matrix_float,
        S: *const gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_add_to_dense(
        a: *mut gsl_matrix_float,
        b: *const gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_equal(
        a: *const gsl_spmatrix_float,
        b: *const gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_norm1(a: *const gsl_spmatrix_float) -> f32;
}
extern "C" {
    pub fn gsl_spmatrix_float_transpose(m: *mut gsl_spmatrix_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_transpose2(m: *mut gsl_spmatrix_float) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_float_transpose_memcpy(
        dest: *mut gsl_spmatrix_float,
        src: *const gsl_spmatrix_float,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_ulong;
extern "C" {
    pub fn gsl_spmatrix_ulong_alloc(n1: usize, n2: usize) -> *mut gsl_spmatrix_ulong;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_ulong;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_free(m: *mut gsl_spmatrix_ulong);
}
extern "C" {
    pub fn gsl_spmatrix_ulong_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_nnz(m: *const gsl_spmatrix_ulong) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_type(m: *const gsl_spmatrix_ulong) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_set_zero(m: *mut gsl_spmatrix_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_tree_rebuild(m: *mut gsl_spmatrix_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_csc(
        dest: *mut gsl_spmatrix_ulong,
        src: *const gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_csr(
        dest: *mut gsl_spmatrix_ulong,
        src: *const gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_compress(
        src: *const gsl_spmatrix_ulong,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_ulong;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_compcol(src: *const gsl_spmatrix_ulong) -> *mut gsl_spmatrix_ulong;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_ccs(src: *const gsl_spmatrix_ulong) -> *mut gsl_spmatrix_ulong;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_crs(src: *const gsl_spmatrix_ulong) -> *mut gsl_spmatrix_ulong;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_memcpy(
        dest: *mut gsl_spmatrix_ulong,
        src: *const gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_ulong,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix_ulong;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_get(
        m: *const gsl_spmatrix_ulong,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_set(
        m: *mut gsl_spmatrix_ulong,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_ptr(
        m: *const gsl_spmatrix_ulong,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_minmax(
        m: *const gsl_spmatrix_ulong,
        min_out: *mut ::std::os::raw::c_ulong,
        max_out: *mut ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_min_index(
        m: *const gsl_spmatrix_ulong,
        imin_out: *mut usize,
        jmin_out: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_scale(
        m: *mut gsl_spmatrix_ulong,
        x: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_scale_columns(
        m: *mut gsl_spmatrix_ulong,
        x: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_scale_rows(
        m: *mut gsl_spmatrix_ulong,
        x: *const gsl_vector_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_add(
        c: *mut gsl_spmatrix_ulong,
        a: *const gsl_spmatrix_ulong,
        b: *const gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_dense_add(
        a: *mut gsl_matrix_ulong,
        b: *const gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_dense_sub(
        a: *mut gsl_matrix_ulong,
        b: *const gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_d2sp(
        T: *mut gsl_spmatrix_ulong,
        A: *const gsl_matrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_sp2d(
        A: *mut gsl_matrix_ulong,
        S: *const gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_add_to_dense(
        a: *mut gsl_matrix_ulong,
        b: *const gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_equal(
        a: *const gsl_spmatrix_ulong,
        b: *const gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_norm1(a: *const gsl_spmatrix_ulong) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_transpose(m: *mut gsl_spmatrix_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_transpose2(m: *mut gsl_spmatrix_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ulong_transpose_memcpy(
        dest: *mut gsl_spmatrix_ulong,
        src: *const gsl_spmatrix_ulong,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_long;
extern "C" {
    pub fn gsl_spmatrix_long_alloc(n1: usize, n2: usize) -> *mut gsl_spmatrix_long;
}
extern "C" {
    pub fn gsl_spmatrix_long_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_long;
}
extern "C" {
    pub fn gsl_spmatrix_long_free(m: *mut gsl_spmatrix_long);
}
extern "C" {
    pub fn gsl_spmatrix_long_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_nnz(m: *const gsl_spmatrix_long) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_long_type(m: *const gsl_spmatrix_long) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_long_set_zero(m: *mut gsl_spmatrix_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_tree_rebuild(m: *mut gsl_spmatrix_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_csc(
        dest: *mut gsl_spmatrix_long,
        src: *const gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_csr(
        dest: *mut gsl_spmatrix_long,
        src: *const gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_compress(
        src: *const gsl_spmatrix_long,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_long;
}
extern "C" {
    pub fn gsl_spmatrix_long_compcol(src: *const gsl_spmatrix_long) -> *mut gsl_spmatrix_long;
}
extern "C" {
    pub fn gsl_spmatrix_long_ccs(src: *const gsl_spmatrix_long) -> *mut gsl_spmatrix_long;
}
extern "C" {
    pub fn gsl_spmatrix_long_crs(src: *const gsl_spmatrix_long) -> *mut gsl_spmatrix_long;
}
extern "C" {
    pub fn gsl_spmatrix_long_memcpy(
        dest: *mut gsl_spmatrix_long,
        src: *const gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_long,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix_long;
}
extern "C" {
    pub fn gsl_spmatrix_long_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_get(
        m: *const gsl_spmatrix_long,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_spmatrix_long_set(
        m: *mut gsl_spmatrix_long,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_ptr(
        m: *const gsl_spmatrix_long,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_spmatrix_long_minmax(
        m: *const gsl_spmatrix_long,
        min_out: *mut ::std::os::raw::c_long,
        max_out: *mut ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_min_index(
        m: *const gsl_spmatrix_long,
        imin_out: *mut usize,
        jmin_out: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_scale(
        m: *mut gsl_spmatrix_long,
        x: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_scale_columns(
        m: *mut gsl_spmatrix_long,
        x: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_scale_rows(
        m: *mut gsl_spmatrix_long,
        x: *const gsl_vector_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_add(
        c: *mut gsl_spmatrix_long,
        a: *const gsl_spmatrix_long,
        b: *const gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_dense_add(
        a: *mut gsl_matrix_long,
        b: *const gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_dense_sub(
        a: *mut gsl_matrix_long,
        b: *const gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_d2sp(
        T: *mut gsl_spmatrix_long,
        A: *const gsl_matrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_sp2d(
        A: *mut gsl_matrix_long,
        S: *const gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_add_to_dense(
        a: *mut gsl_matrix_long,
        b: *const gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_equal(
        a: *const gsl_spmatrix_long,
        b: *const gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_norm1(a: *const gsl_spmatrix_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_spmatrix_long_transpose(m: *mut gsl_spmatrix_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_transpose2(m: *mut gsl_spmatrix_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_long_transpose_memcpy(
        dest: *mut gsl_spmatrix_long,
        src: *const gsl_spmatrix_long,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_uint;
extern "C" {
    pub fn gsl_spmatrix_uint_alloc(n1: usize, n2: usize) -> *mut gsl_spmatrix_uint;
}
extern "C" {
    pub fn gsl_spmatrix_uint_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_uint;
}
extern "C" {
    pub fn gsl_spmatrix_uint_free(m: *mut gsl_spmatrix_uint);
}
extern "C" {
    pub fn gsl_spmatrix_uint_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_nnz(m: *const gsl_spmatrix_uint) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_uint_type(m: *const gsl_spmatrix_uint) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_uint_set_zero(m: *mut gsl_spmatrix_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_tree_rebuild(m: *mut gsl_spmatrix_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_csc(
        dest: *mut gsl_spmatrix_uint,
        src: *const gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_csr(
        dest: *mut gsl_spmatrix_uint,
        src: *const gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_compress(
        src: *const gsl_spmatrix_uint,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_uint;
}
extern "C" {
    pub fn gsl_spmatrix_uint_compcol(src: *const gsl_spmatrix_uint) -> *mut gsl_spmatrix_uint;
}
extern "C" {
    pub fn gsl_spmatrix_uint_ccs(src: *const gsl_spmatrix_uint) -> *mut gsl_spmatrix_uint;
}
extern "C" {
    pub fn gsl_spmatrix_uint_crs(src: *const gsl_spmatrix_uint) -> *mut gsl_spmatrix_uint;
}
extern "C" {
    pub fn gsl_spmatrix_uint_memcpy(
        dest: *mut gsl_spmatrix_uint,
        src: *const gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_uint,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix_uint;
}
extern "C" {
    pub fn gsl_spmatrix_uint_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_get(
        m: *const gsl_spmatrix_uint,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_spmatrix_uint_set(
        m: *mut gsl_spmatrix_uint,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_ptr(
        m: *const gsl_spmatrix_uint,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_spmatrix_uint_minmax(
        m: *const gsl_spmatrix_uint,
        min_out: *mut ::std::os::raw::c_uint,
        max_out: *mut ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_min_index(
        m: *const gsl_spmatrix_uint,
        imin_out: *mut usize,
        jmin_out: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_scale(
        m: *mut gsl_spmatrix_uint,
        x: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_scale_columns(
        m: *mut gsl_spmatrix_uint,
        x: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_scale_rows(
        m: *mut gsl_spmatrix_uint,
        x: *const gsl_vector_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_add(
        c: *mut gsl_spmatrix_uint,
        a: *const gsl_spmatrix_uint,
        b: *const gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_dense_add(
        a: *mut gsl_matrix_uint,
        b: *const gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_dense_sub(
        a: *mut gsl_matrix_uint,
        b: *const gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_d2sp(
        T: *mut gsl_spmatrix_uint,
        A: *const gsl_matrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_sp2d(
        A: *mut gsl_matrix_uint,
        S: *const gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_add_to_dense(
        a: *mut gsl_matrix_uint,
        b: *const gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_equal(
        a: *const gsl_spmatrix_uint,
        b: *const gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_norm1(a: *const gsl_spmatrix_uint) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_spmatrix_uint_transpose(m: *mut gsl_spmatrix_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_transpose2(m: *mut gsl_spmatrix_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uint_transpose_memcpy(
        dest: *mut gsl_spmatrix_uint,
        src: *const gsl_spmatrix_uint,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_int;
extern "C" {
    pub fn gsl_spmatrix_int_alloc(n1: usize, n2: usize) -> *mut gsl_spmatrix_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_free(m: *mut gsl_spmatrix_int);
}
extern "C" {
    pub fn gsl_spmatrix_int_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_nnz(m: *const gsl_spmatrix_int) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_int_type(m: *const gsl_spmatrix_int) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_int_set_zero(m: *mut gsl_spmatrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_tree_rebuild(m: *mut gsl_spmatrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_csc(
        dest: *mut gsl_spmatrix_int,
        src: *const gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_csr(
        dest: *mut gsl_spmatrix_int,
        src: *const gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_compress(
        src: *const gsl_spmatrix_int,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_compcol(src: *const gsl_spmatrix_int) -> *mut gsl_spmatrix_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_ccs(src: *const gsl_spmatrix_int) -> *mut gsl_spmatrix_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_crs(src: *const gsl_spmatrix_int) -> *mut gsl_spmatrix_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_memcpy(
        dest: *mut gsl_spmatrix_int,
        src: *const gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_int,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_get(
        m: *const gsl_spmatrix_int,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_set(
        m: *mut gsl_spmatrix_int,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_ptr(
        m: *const gsl_spmatrix_int,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_minmax(
        m: *const gsl_spmatrix_int,
        min_out: *mut ::std::os::raw::c_int,
        max_out: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_min_index(
        m: *const gsl_spmatrix_int,
        imin_out: *mut usize,
        jmin_out: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_scale(
        m: *mut gsl_spmatrix_int,
        x: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_scale_columns(
        m: *mut gsl_spmatrix_int,
        x: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_scale_rows(
        m: *mut gsl_spmatrix_int,
        x: *const gsl_vector_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_add(
        c: *mut gsl_spmatrix_int,
        a: *const gsl_spmatrix_int,
        b: *const gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_dense_add(
        a: *mut gsl_matrix_int,
        b: *const gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_dense_sub(
        a: *mut gsl_matrix_int,
        b: *const gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_d2sp(
        T: *mut gsl_spmatrix_int,
        A: *const gsl_matrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_sp2d(
        A: *mut gsl_matrix_int,
        S: *const gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_add_to_dense(
        a: *mut gsl_matrix_int,
        b: *const gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_equal(
        a: *const gsl_spmatrix_int,
        b: *const gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_norm1(a: *const gsl_spmatrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_transpose(m: *mut gsl_spmatrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_transpose2(m: *mut gsl_spmatrix_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_int_transpose_memcpy(
        dest: *mut gsl_spmatrix_int,
        src: *const gsl_spmatrix_int,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_ushort;
extern "C" {
    pub fn gsl_spmatrix_ushort_alloc(n1: usize, n2: usize) -> *mut gsl_spmatrix_ushort;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_ushort;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_free(m: *mut gsl_spmatrix_ushort);
}
extern "C" {
    pub fn gsl_spmatrix_ushort_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_nnz(m: *const gsl_spmatrix_ushort) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_type(m: *const gsl_spmatrix_ushort)
        -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_set_zero(m: *mut gsl_spmatrix_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_tree_rebuild(m: *mut gsl_spmatrix_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_csc(
        dest: *mut gsl_spmatrix_ushort,
        src: *const gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_csr(
        dest: *mut gsl_spmatrix_ushort,
        src: *const gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_compress(
        src: *const gsl_spmatrix_ushort,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_ushort;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_compcol(src: *const gsl_spmatrix_ushort)
        -> *mut gsl_spmatrix_ushort;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_ccs(src: *const gsl_spmatrix_ushort) -> *mut gsl_spmatrix_ushort;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_crs(src: *const gsl_spmatrix_ushort) -> *mut gsl_spmatrix_ushort;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_memcpy(
        dest: *mut gsl_spmatrix_ushort,
        src: *const gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_ushort,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix_ushort;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_get(
        m: *const gsl_spmatrix_ushort,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_set(
        m: *mut gsl_spmatrix_ushort,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_ptr(
        m: *const gsl_spmatrix_ushort,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_minmax(
        m: *const gsl_spmatrix_ushort,
        min_out: *mut ::std::os::raw::c_ushort,
        max_out: *mut ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_min_index(
        m: *const gsl_spmatrix_ushort,
        imin_out: *mut usize,
        jmin_out: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_scale(
        m: *mut gsl_spmatrix_ushort,
        x: ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_scale_columns(
        m: *mut gsl_spmatrix_ushort,
        x: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_scale_rows(
        m: *mut gsl_spmatrix_ushort,
        x: *const gsl_vector_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_add(
        c: *mut gsl_spmatrix_ushort,
        a: *const gsl_spmatrix_ushort,
        b: *const gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_dense_add(
        a: *mut gsl_matrix_ushort,
        b: *const gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_dense_sub(
        a: *mut gsl_matrix_ushort,
        b: *const gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_d2sp(
        T: *mut gsl_spmatrix_ushort,
        A: *const gsl_matrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_sp2d(
        A: *mut gsl_matrix_ushort,
        S: *const gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_add_to_dense(
        a: *mut gsl_matrix_ushort,
        b: *const gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_equal(
        a: *const gsl_spmatrix_ushort,
        b: *const gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_norm1(a: *const gsl_spmatrix_ushort) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_transpose(m: *mut gsl_spmatrix_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_transpose2(m: *mut gsl_spmatrix_ushort) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_ushort_transpose_memcpy(
        dest: *mut gsl_spmatrix_ushort,
        src: *const gsl_spmatrix_ushort,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_short;
extern "C" {
    pub fn gsl_spmatrix_short_alloc(n1: usize, n2: usize) -> *mut gsl_spmatrix_short;
}
extern "C" {
    pub fn gsl_spmatrix_short_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_short;
}
extern "C" {
    pub fn gsl_spmatrix_short_free(m: *mut gsl_spmatrix_short);
}
extern "C" {
    pub fn gsl_spmatrix_short_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_nnz(m: *const gsl_spmatrix_short) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_short_type(m: *const gsl_spmatrix_short) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_short_set_zero(m: *mut gsl_spmatrix_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_tree_rebuild(m: *mut gsl_spmatrix_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_csc(
        dest: *mut gsl_spmatrix_short,
        src: *const gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_csr(
        dest: *mut gsl_spmatrix_short,
        src: *const gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_compress(
        src: *const gsl_spmatrix_short,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_short;
}
extern "C" {
    pub fn gsl_spmatrix_short_compcol(src: *const gsl_spmatrix_short) -> *mut gsl_spmatrix_short;
}
extern "C" {
    pub fn gsl_spmatrix_short_ccs(src: *const gsl_spmatrix_short) -> *mut gsl_spmatrix_short;
}
extern "C" {
    pub fn gsl_spmatrix_short_crs(src: *const gsl_spmatrix_short) -> *mut gsl_spmatrix_short;
}
extern "C" {
    pub fn gsl_spmatrix_short_memcpy(
        dest: *mut gsl_spmatrix_short,
        src: *const gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_short,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix_short;
}
extern "C" {
    pub fn gsl_spmatrix_short_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_get(
        m: *const gsl_spmatrix_short,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_spmatrix_short_set(
        m: *mut gsl_spmatrix_short,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_ptr(
        m: *const gsl_spmatrix_short,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_spmatrix_short_minmax(
        m: *const gsl_spmatrix_short,
        min_out: *mut ::std::os::raw::c_short,
        max_out: *mut ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_min_index(
        m: *const gsl_spmatrix_short,
        imin_out: *mut usize,
        jmin_out: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_scale(
        m: *mut gsl_spmatrix_short,
        x: ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_scale_columns(
        m: *mut gsl_spmatrix_short,
        x: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_scale_rows(
        m: *mut gsl_spmatrix_short,
        x: *const gsl_vector_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_add(
        c: *mut gsl_spmatrix_short,
        a: *const gsl_spmatrix_short,
        b: *const gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_dense_add(
        a: *mut gsl_matrix_short,
        b: *const gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_dense_sub(
        a: *mut gsl_matrix_short,
        b: *const gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_d2sp(
        T: *mut gsl_spmatrix_short,
        A: *const gsl_matrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_sp2d(
        A: *mut gsl_matrix_short,
        S: *const gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_add_to_dense(
        a: *mut gsl_matrix_short,
        b: *const gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_equal(
        a: *const gsl_spmatrix_short,
        b: *const gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_norm1(a: *const gsl_spmatrix_short) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_spmatrix_short_transpose(m: *mut gsl_spmatrix_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_transpose2(m: *mut gsl_spmatrix_short) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_short_transpose_memcpy(
        dest: *mut gsl_spmatrix_short,
        src: *const gsl_spmatrix_short,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_uchar;
extern "C" {
    pub fn gsl_spmatrix_uchar_alloc(n1: usize, n2: usize) -> *mut gsl_spmatrix_uchar;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_uchar;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_free(m: *mut gsl_spmatrix_uchar);
}
extern "C" {
    pub fn gsl_spmatrix_uchar_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_nnz(m: *const gsl_spmatrix_uchar) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_type(m: *const gsl_spmatrix_uchar) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_set_zero(m: *mut gsl_spmatrix_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_tree_rebuild(m: *mut gsl_spmatrix_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_csc(
        dest: *mut gsl_spmatrix_uchar,
        src: *const gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_csr(
        dest: *mut gsl_spmatrix_uchar,
        src: *const gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_compress(
        src: *const gsl_spmatrix_uchar,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_uchar;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_compcol(src: *const gsl_spmatrix_uchar) -> *mut gsl_spmatrix_uchar;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_ccs(src: *const gsl_spmatrix_uchar) -> *mut gsl_spmatrix_uchar;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_crs(src: *const gsl_spmatrix_uchar) -> *mut gsl_spmatrix_uchar;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_memcpy(
        dest: *mut gsl_spmatrix_uchar,
        src: *const gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_uchar,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix_uchar;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_get(
        m: *const gsl_spmatrix_uchar,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_set(
        m: *mut gsl_spmatrix_uchar,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_ptr(
        m: *const gsl_spmatrix_uchar,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_minmax(
        m: *const gsl_spmatrix_uchar,
        min_out: *mut ::std::os::raw::c_uchar,
        max_out: *mut ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_min_index(
        m: *const gsl_spmatrix_uchar,
        imin_out: *mut usize,
        jmin_out: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_scale(
        m: *mut gsl_spmatrix_uchar,
        x: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_scale_columns(
        m: *mut gsl_spmatrix_uchar,
        x: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_scale_rows(
        m: *mut gsl_spmatrix_uchar,
        x: *const gsl_vector_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_add(
        c: *mut gsl_spmatrix_uchar,
        a: *const gsl_spmatrix_uchar,
        b: *const gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_dense_add(
        a: *mut gsl_matrix_uchar,
        b: *const gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_dense_sub(
        a: *mut gsl_matrix_uchar,
        b: *const gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_d2sp(
        T: *mut gsl_spmatrix_uchar,
        A: *const gsl_matrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_sp2d(
        A: *mut gsl_matrix_uchar,
        S: *const gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_add_to_dense(
        a: *mut gsl_matrix_uchar,
        b: *const gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_equal(
        a: *const gsl_spmatrix_uchar,
        b: *const gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_norm1(a: *const gsl_spmatrix_uchar) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_transpose(m: *mut gsl_spmatrix_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_transpose2(m: *mut gsl_spmatrix_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_uchar_transpose_memcpy(
        dest: *mut gsl_spmatrix_uchar,
        src: *const gsl_spmatrix_uchar,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct gsl_spmatrix_char;
extern "C" {
    pub fn gsl_spmatrix_char_alloc(n1: usize, n2: usize) -> *mut gsl_spmatrix_char;
}
extern "C" {
    pub fn gsl_spmatrix_char_alloc_nzmax(
        n1: usize,
        n2: usize,
        nzmax: usize,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_char;
}
extern "C" {
    pub fn gsl_spmatrix_char_free(m: *mut gsl_spmatrix_char);
}
extern "C" {
    pub fn gsl_spmatrix_char_realloc(
        nzmax: usize,
        m: *mut gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_nnz(m: *const gsl_spmatrix_char) -> usize;
}
extern "C" {
    pub fn gsl_spmatrix_char_type(m: *const gsl_spmatrix_char) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_char_set_zero(m: *mut gsl_spmatrix_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_tree_rebuild(m: *mut gsl_spmatrix_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_csc(
        dest: *mut gsl_spmatrix_char,
        src: *const gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_csr(
        dest: *mut gsl_spmatrix_char,
        src: *const gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_compress(
        src: *const gsl_spmatrix_char,
        sptype: ::std::os::raw::c_int,
    ) -> *mut gsl_spmatrix_char;
}
extern "C" {
    pub fn gsl_spmatrix_char_compcol(src: *const gsl_spmatrix_char) -> *mut gsl_spmatrix_char;
}
extern "C" {
    pub fn gsl_spmatrix_char_ccs(src: *const gsl_spmatrix_char) -> *mut gsl_spmatrix_char;
}
extern "C" {
    pub fn gsl_spmatrix_char_crs(src: *const gsl_spmatrix_char) -> *mut gsl_spmatrix_char;
}
extern "C" {
    pub fn gsl_spmatrix_char_memcpy(
        dest: *mut gsl_spmatrix_char,
        src: *const gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_fprintf(
        stream: *mut FILE,
        m: *const gsl_spmatrix_char,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_fscanf(stream: *mut FILE) -> *mut gsl_spmatrix_char;
}
extern "C" {
    pub fn gsl_spmatrix_char_fwrite(
        stream: *mut FILE,
        m: *const gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_fread(
        stream: *mut FILE,
        m: *mut gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_get(
        m: *const gsl_spmatrix_char,
        i: usize,
        j: usize,
    ) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_char_set(
        m: *mut gsl_spmatrix_char,
        i: usize,
        j: usize,
        x: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_ptr(
        m: *const gsl_spmatrix_char,
        i: usize,
        j: usize,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_char_minmax(
        m: *const gsl_spmatrix_char,
        min_out: *mut ::std::os::raw::c_char,
        max_out: *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_min_index(
        m: *const gsl_spmatrix_char,
        imin_out: *mut usize,
        jmin_out: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_scale(
        m: *mut gsl_spmatrix_char,
        x: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_scale_columns(
        m: *mut gsl_spmatrix_char,
        x: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_scale_rows(
        m: *mut gsl_spmatrix_char,
        x: *const gsl_vector_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_add(
        c: *mut gsl_spmatrix_char,
        a: *const gsl_spmatrix_char,
        b: *const gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_dense_add(
        a: *mut gsl_matrix_char,
        b: *const gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_dense_sub(
        a: *mut gsl_matrix_char,
        b: *const gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_d2sp(
        T: *mut gsl_spmatrix_char,
        A: *const gsl_matrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_sp2d(
        A: *mut gsl_matrix_char,
        S: *const gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_add_to_dense(
        a: *mut gsl_matrix_char,
        b: *const gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_equal(
        a: *const gsl_spmatrix_char,
        b: *const gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_norm1(a: *const gsl_spmatrix_char) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spmatrix_char_transpose(m: *mut gsl_spmatrix_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_transpose2(m: *mut gsl_spmatrix_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spmatrix_char_transpose_memcpy(
        dest: *mut gsl_spmatrix_char,
        src: *const gsl_spmatrix_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spblas_dgemv(
        TransA: CBLAS_TRANSPOSE_t,
        alpha: f64,
        A: *const gsl_spmatrix,
        x: *const gsl_vector,
        beta: f64,
        y: *mut gsl_vector,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spblas_dgemm(
        alpha: f64,
        A: *const gsl_spmatrix,
        B: *const gsl_spmatrix,
        C: *mut gsl_spmatrix,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spblas_scatter(
        A: *const gsl_spmatrix,
        j: usize,
        alpha: f64,
        w: *mut ::std::os::raw::c_int,
        x: *mut f64,
        mark: ::std::os::raw::c_int,
        C: *mut gsl_spmatrix,
        nz: usize,
    ) -> usize;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_splinalg_itersolve_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_splinalg_itersolve;
extern "C" {
    pub static mut gsl_splinalg_itersolve_gmres: *const gsl_splinalg_itersolve_type;
}
extern "C" {
    pub fn gsl_splinalg_itersolve_alloc(
        T: *const gsl_splinalg_itersolve_type,
        n: usize,
        m: usize,
    ) -> *mut gsl_splinalg_itersolve;
}
extern "C" {
    pub fn gsl_splinalg_itersolve_free(w: *mut gsl_splinalg_itersolve);
}
extern "C" {
    pub fn gsl_splinalg_itersolve_name(
        w: *const gsl_splinalg_itersolve,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_splinalg_itersolve_iterate(
        A: *const gsl_spmatrix,
        b: *const gsl_vector,
        tol: f64,
        x: *mut gsl_vector,
        w: *mut gsl_splinalg_itersolve,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_splinalg_itersolve_normr(w: *const gsl_splinalg_itersolve) -> f64;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_spline;
extern "C" {
    pub fn gsl_spline_alloc(T: *const gsl_interp_type, size: usize) -> *mut gsl_spline;
}
extern "C" {
    pub fn gsl_spline_init(
        spline: *mut gsl_spline,
        xa: *const f64,
        ya: *const f64,
        size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline_name(spline: *const gsl_spline) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spline_min_size(spline: *const gsl_spline) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_spline_eval_e(
        spline: *const gsl_spline,
        x: f64,
        a: *mut gsl_interp_accel,
        y: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline_eval(spline: *const gsl_spline, x: f64, a: *mut gsl_interp_accel) -> f64;
}
extern "C" {
    pub fn gsl_spline_eval_deriv_e(
        spline: *const gsl_spline,
        x: f64,
        a: *mut gsl_interp_accel,
        y: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline_eval_deriv(
        spline: *const gsl_spline,
        x: f64,
        a: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_spline_eval_deriv2_e(
        spline: *const gsl_spline,
        x: f64,
        a: *mut gsl_interp_accel,
        y: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline_eval_deriv2(
        spline: *const gsl_spline,
        x: f64,
        a: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_spline_eval_integ_e(
        spline: *const gsl_spline,
        a: f64,
        b: f64,
        acc: *mut gsl_interp_accel,
        y: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline_eval_integ(
        spline: *const gsl_spline,
        a: f64,
        b: f64,
        acc: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_spline_free(spline: *mut gsl_spline);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_spline2d;
extern "C" {
    pub fn gsl_spline2d_alloc(
        T: *const gsl_interp2d_type,
        xsize: usize,
        ysize: usize,
    ) -> *mut gsl_spline2d;
}
extern "C" {
    pub fn gsl_spline2d_init(
        interp: *mut gsl_spline2d,
        xa: *const f64,
        ya: *const f64,
        za: *const f64,
        xsize: usize,
        ysize: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline2d_free(interp: *mut gsl_spline2d);
}
extern "C" {
    pub fn gsl_spline2d_eval(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_spline2d_eval_e(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline2d_eval_extrap(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_spline2d_eval_extrap_e(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline2d_eval_deriv_x(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_spline2d_eval_deriv_x_e(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline2d_eval_deriv_y(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_spline2d_eval_deriv_y_e(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline2d_eval_deriv_xx(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_spline2d_eval_deriv_xx_e(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline2d_eval_deriv_yy(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_spline2d_eval_deriv_yy_e(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline2d_eval_deriv_xy(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
    ) -> f64;
}
extern "C" {
    pub fn gsl_spline2d_eval_deriv_xy_e(
        interp: *const gsl_spline2d,
        x: f64,
        y: f64,
        xa: *mut gsl_interp_accel,
        ya: *mut gsl_interp_accel,
        z: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline2d_min_size(interp: *const gsl_spline2d) -> usize;
}
extern "C" {
    pub fn gsl_spline2d_name(interp: *const gsl_spline2d) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_spline2d_set(
        interp: *const gsl_spline2d,
        zarr: *mut f64,
        i: usize,
        j: usize,
        z: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_spline2d_get(
        interp: *const gsl_spline2d,
        zarr: *const f64,
        i: usize,
        j: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_mean(data: *const u128, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_variance(data: *const u128, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_sd(data: *const u128, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_variance_with_fixed_mean(
        data: *const u128,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_sd_with_fixed_mean(
        data: *const u128,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_tss(data: *const u128, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_tss_m(
        data: *const u128,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_absdev(data: *const u128, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_skew(data: *const u128, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_kurtosis(data: *const u128, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_lag1_autocorrelation(
        data: *const u128,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_covariance(
        data1: *const u128,
        stride1: usize,
        data2: *const u128,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_correlation(
        data1: *const u128,
        stride1: usize,
        data2: *const u128,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_spearman(
        data1: *const u128,
        stride1: usize,
        data2: *const u128,
        stride2: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_variance_m(
        data: *const u128,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_sd_m(data: *const u128, stride: usize, n: usize, mean: f64)
        -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_absdev_m(
        data: *const u128,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_skew_m_sd(
        data: *const u128,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_kurtosis_m_sd(
        data: *const u128,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_lag1_autocorrelation_m(
        data: *const u128,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_covariance_m(
        data1: *const u128,
        stride1: usize,
        data2: *const u128,
        stride2: usize,
        n: usize,
        mean1: f64,
        mean2: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wmean(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wvariance(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wsd(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wvariance_with_fixed_mean(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wsd_with_fixed_mean(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wtss(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wtss_m(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
        wmean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wabsdev(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wskew(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wkurtosis(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wvariance_m(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
        wmean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wsd_m(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
        wmean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wabsdev_m(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
        wmean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wskew_m_sd(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
        wmean: f64,
        wsd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_wkurtosis_m_sd(
        w: *const u128,
        wstride: usize,
        data: *const u128,
        stride: usize,
        n: usize,
        wmean: f64,
        wsd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_pvariance(
        data1: *const u128,
        stride1: usize,
        n1: usize,
        data2: *const u128,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_ttest(
        data1: *const u128,
        stride1: usize,
        n1: usize,
        data2: *const u128,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_max(data: *const u128, stride: usize, n: usize) -> u128;
}
extern "C" {
    pub fn gsl_stats_long_double_min(data: *const u128, stride: usize, n: usize) -> u128;
}
extern "C" {
    pub fn gsl_stats_long_double_minmax(
        min: *mut u128,
        max: *mut u128,
        data: *const u128,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_long_double_max_index(data: *const u128, stride: usize, n: usize) -> usize;
}
extern "C" {
    pub fn gsl_stats_long_double_min_index(data: *const u128, stride: usize, n: usize) -> usize;
}
extern "C" {
    pub fn gsl_stats_long_double_minmax_index(
        min_index: *mut usize,
        max_index: *mut usize,
        data: *const u128,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_long_double_select(data: *mut u128, stride: usize, n: usize, k: usize)
        -> u128;
}
extern "C" {
    pub fn gsl_stats_long_double_median_from_sorted_data(
        sorted_data: *const u128,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_median(sorted_data: *mut u128, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_quantile_from_sorted_data(
        sorted_data: *const u128,
        stride: usize,
        n: usize,
        f: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_trmean_from_sorted_data(
        trim: f64,
        sorted_data: *const u128,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_gastwirth_from_sorted_data(
        sorted_data: *const u128,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_mad0(
        data: *const u128,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_mad(
        data: *const u128,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_Sn0_from_sorted_data(
        sorted_data: *const u128,
        stride: usize,
        n: usize,
        work: *mut u128,
    ) -> u128;
}
extern "C" {
    pub fn gsl_stats_long_double_Sn_from_sorted_data(
        sorted_data: *const u128,
        stride: usize,
        n: usize,
        work: *mut u128,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_double_Qn0_from_sorted_data(
        sorted_data: *const u128,
        stride: usize,
        n: usize,
        work: *mut u128,
        work_int: *mut ::std::os::raw::c_int,
    ) -> u128;
}
extern "C" {
    pub fn gsl_stats_long_double_Qn_from_sorted_data(
        sorted_data: *const u128,
        stride: usize,
        n: usize,
        work: *mut u128,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_mean(data: *const f64, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_variance(data: *const f64, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_sd(data: *const f64, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_variance_with_fixed_mean(
        data: *const f64,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_sd_with_fixed_mean(
        data: *const f64,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_tss(data: *const f64, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_tss_m(data: *const f64, stride: usize, n: usize, mean: f64) -> f64;
}
extern "C" {
    pub fn gsl_stats_absdev(data: *const f64, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_skew(data: *const f64, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_kurtosis(data: *const f64, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_lag1_autocorrelation(data: *const f64, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_covariance(
        data1: *const f64,
        stride1: usize,
        data2: *const f64,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_correlation(
        data1: *const f64,
        stride1: usize,
        data2: *const f64,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_spearman(
        data1: *const f64,
        stride1: usize,
        data2: *const f64,
        stride2: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_variance_m(data: *const f64, stride: usize, n: usize, mean: f64) -> f64;
}
extern "C" {
    pub fn gsl_stats_sd_m(data: *const f64, stride: usize, n: usize, mean: f64) -> f64;
}
extern "C" {
    pub fn gsl_stats_absdev_m(data: *const f64, stride: usize, n: usize, mean: f64) -> f64;
}
extern "C" {
    pub fn gsl_stats_skew_m_sd(
        data: *const f64,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_kurtosis_m_sd(
        data: *const f64,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_lag1_autocorrelation_m(
        data: *const f64,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_covariance_m(
        data1: *const f64,
        stride1: usize,
        data2: *const f64,
        stride2: usize,
        n: usize,
        mean1: f64,
        mean2: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wmean(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wvariance(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wsd(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wvariance_with_fixed_mean(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wsd_with_fixed_mean(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wtss(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wtss_m(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
        wmean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wabsdev(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wskew(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wkurtosis(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wvariance_m(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
        wmean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wsd_m(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
        wmean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wabsdev_m(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
        wmean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wskew_m_sd(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
        wmean: f64,
        wsd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_wkurtosis_m_sd(
        w: *const f64,
        wstride: usize,
        data: *const f64,
        stride: usize,
        n: usize,
        wmean: f64,
        wsd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_pvariance(
        data1: *const f64,
        stride1: usize,
        n1: usize,
        data2: *const f64,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ttest(
        data1: *const f64,
        stride1: usize,
        n1: usize,
        data2: *const f64,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_max(data: *const f64, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_min(data: *const f64, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_minmax(
        min: *mut f64,
        max: *mut f64,
        data: *const f64,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_max_index(data: *const f64, stride: usize, n: usize) -> usize;
}
extern "C" {
    pub fn gsl_stats_min_index(data: *const f64, stride: usize, n: usize) -> usize;
}
extern "C" {
    pub fn gsl_stats_minmax_index(
        min_index: *mut usize,
        max_index: *mut usize,
        data: *const f64,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_stats_select(data: *mut f64, stride: usize, n: usize, k: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_median_from_sorted_data(
        sorted_data: *const f64,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_stats_median(sorted_data: *mut f64, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_quantile_from_sorted_data(
        sorted_data: *const f64,
        stride: usize,
        n: usize,
        f: f64,
    ) -> f64;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_stats_trmean_from_sorted_data(
        trim: f64,
        sorted_data: *const f64,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_stats_gastwirth_from_sorted_data(
        sorted_data: *const f64,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_stats_mad0(data: *const f64, stride: usize, n: usize, work: *mut f64) -> f64;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_stats_mad(data: *const f64, stride: usize, n: usize, work: *mut f64) -> f64;
}
extern "C" {
    pub fn gsl_stats_Sn0_from_sorted_data(
        sorted_data: *const f64,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_stats_Sn_from_sorted_data(
        sorted_data: *const f64,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_Qn0_from_sorted_data(
        sorted_data: *const f64,
        stride: usize,
        n: usize,
        work: *mut f64,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    #[cfg(feature = "v2_5")]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
    pub fn gsl_stats_Qn_from_sorted_data(
        sorted_data: *const f64,
        stride: usize,
        n: usize,
        work: *mut f64,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_mean(data: *const f32, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_variance(data: *const f32, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_sd(data: *const f32, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_variance_with_fixed_mean(
        data: *const f32,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_sd_with_fixed_mean(
        data: *const f32,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_tss(data: *const f32, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_tss_m(data: *const f32, stride: usize, n: usize, mean: f64) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_absdev(data: *const f32, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_skew(data: *const f32, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_kurtosis(data: *const f32, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_lag1_autocorrelation(data: *const f32, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_covariance(
        data1: *const f32,
        stride1: usize,
        data2: *const f32,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_correlation(
        data1: *const f32,
        stride1: usize,
        data2: *const f32,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_spearman(
        data1: *const f32,
        stride1: usize,
        data2: *const f32,
        stride2: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_variance_m(data: *const f32, stride: usize, n: usize, mean: f64) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_sd_m(data: *const f32, stride: usize, n: usize, mean: f64) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_absdev_m(data: *const f32, stride: usize, n: usize, mean: f64) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_skew_m_sd(
        data: *const f32,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_kurtosis_m_sd(
        data: *const f32,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_lag1_autocorrelation_m(
        data: *const f32,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_covariance_m(
        data1: *const f32,
        stride1: usize,
        data2: *const f32,
        stride2: usize,
        n: usize,
        mean1: f64,
        mean2: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wmean(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wvariance(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wsd(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wvariance_with_fixed_mean(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wsd_with_fixed_mean(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wtss(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wtss_m(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
        wmean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wabsdev(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wskew(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wkurtosis(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wvariance_m(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
        wmean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wsd_m(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
        wmean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wabsdev_m(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
        wmean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wskew_m_sd(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
        wmean: f64,
        wsd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_wkurtosis_m_sd(
        w: *const f32,
        wstride: usize,
        data: *const f32,
        stride: usize,
        n: usize,
        wmean: f64,
        wsd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_pvariance(
        data1: *const f32,
        stride1: usize,
        n1: usize,
        data2: *const f32,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_ttest(
        data1: *const f32,
        stride1: usize,
        n1: usize,
        data2: *const f32,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_max(data: *const f32, stride: usize, n: usize) -> f32;
}
extern "C" {
    pub fn gsl_stats_float_min(data: *const f32, stride: usize, n: usize) -> f32;
}
extern "C" {
    pub fn gsl_stats_float_minmax(
        min: *mut f32,
        max: *mut f32,
        data: *const f32,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_float_max_index(data: *const f32, stride: usize, n: usize) -> usize;
}
extern "C" {
    pub fn gsl_stats_float_min_index(data: *const f32, stride: usize, n: usize) -> usize;
}
extern "C" {
    pub fn gsl_stats_float_minmax_index(
        min_index: *mut usize,
        max_index: *mut usize,
        data: *const f32,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_float_select(data: *mut f32, stride: usize, n: usize, k: usize) -> f32;
}
extern "C" {
    pub fn gsl_stats_float_median_from_sorted_data(
        sorted_data: *const f32,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_median(sorted_data: *mut f32, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_quantile_from_sorted_data(
        sorted_data: *const f32,
        stride: usize,
        n: usize,
        f: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_trmean_from_sorted_data(
        trim: f64,
        sorted_data: *const f32,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_gastwirth_from_sorted_data(
        sorted_data: *const f32,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_mad0(data: *const f32, stride: usize, n: usize, work: *mut f64) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_mad(data: *const f32, stride: usize, n: usize, work: *mut f64) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_Sn0_from_sorted_data(
        sorted_data: *const f32,
        stride: usize,
        n: usize,
        work: *mut f32,
    ) -> f32;
}
extern "C" {
    pub fn gsl_stats_float_Sn_from_sorted_data(
        sorted_data: *const f32,
        stride: usize,
        n: usize,
        work: *mut f32,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_float_Qn0_from_sorted_data(
        sorted_data: *const f32,
        stride: usize,
        n: usize,
        work: *mut f32,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f32;
}
extern "C" {
    pub fn gsl_stats_float_Qn_from_sorted_data(
        sorted_data: *const f32,
        stride: usize,
        n: usize,
        work: *mut f32,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_mean(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_variance(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_sd(data: *const ::std::os::raw::c_ulong, stride: usize, n: usize)
        -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_variance_with_fixed_mean(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_sd_with_fixed_mean(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_tss(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_tss_m(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_absdev(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_skew(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_kurtosis(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_lag1_autocorrelation(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_covariance(
        data1: *const ::std::os::raw::c_ulong,
        stride1: usize,
        data2: *const ::std::os::raw::c_ulong,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_correlation(
        data1: *const ::std::os::raw::c_ulong,
        stride1: usize,
        data2: *const ::std::os::raw::c_ulong,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_spearman(
        data1: *const ::std::os::raw::c_ulong,
        stride1: usize,
        data2: *const ::std::os::raw::c_ulong,
        stride2: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_variance_m(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_sd_m(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_absdev_m(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_skew_m_sd(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_kurtosis_m_sd(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_lag1_autocorrelation_m(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_covariance_m(
        data1: *const ::std::os::raw::c_ulong,
        stride1: usize,
        data2: *const ::std::os::raw::c_ulong,
        stride2: usize,
        n: usize,
        mean1: f64,
        mean2: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_pvariance(
        data1: *const ::std::os::raw::c_ulong,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_ulong,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_ttest(
        data1: *const ::std::os::raw::c_ulong,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_ulong,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_max(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_stats_ulong_min(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_stats_ulong_minmax(
        min: *mut ::std::os::raw::c_ulong,
        max: *mut ::std::os::raw::c_ulong,
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_ulong_max_index(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_ulong_min_index(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_ulong_minmax_index(
        min_index: *mut usize,
        max_index: *mut usize,
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_ulong_select(
        data: *mut ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        k: usize,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_stats_ulong_median_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_median(
        sorted_data: *mut ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_quantile_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        f: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_trmean_from_sorted_data(
        trim: f64,
        sorted_data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_gastwirth_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_mad0(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_mad(
        data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_Sn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_stats_ulong_Sn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_ulong,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ulong_Qn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_ulong,
        work_int: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn gsl_stats_ulong_Qn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ulong,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_ulong,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_mean(data: *const ::std::os::raw::c_long, stride: usize, n: usize)
        -> f64;
}
extern "C" {
    pub fn gsl_stats_long_variance(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_sd(data: *const ::std::os::raw::c_long, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_variance_with_fixed_mean(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_sd_with_fixed_mean(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_tss(data: *const ::std::os::raw::c_long, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_tss_m(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_absdev(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_skew(data: *const ::std::os::raw::c_long, stride: usize, n: usize)
        -> f64;
}
extern "C" {
    pub fn gsl_stats_long_kurtosis(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_lag1_autocorrelation(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_covariance(
        data1: *const ::std::os::raw::c_long,
        stride1: usize,
        data2: *const ::std::os::raw::c_long,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_correlation(
        data1: *const ::std::os::raw::c_long,
        stride1: usize,
        data2: *const ::std::os::raw::c_long,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_spearman(
        data1: *const ::std::os::raw::c_long,
        stride1: usize,
        data2: *const ::std::os::raw::c_long,
        stride2: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_variance_m(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_sd_m(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_absdev_m(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_skew_m_sd(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_kurtosis_m_sd(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_lag1_autocorrelation_m(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_covariance_m(
        data1: *const ::std::os::raw::c_long,
        stride1: usize,
        data2: *const ::std::os::raw::c_long,
        stride2: usize,
        n: usize,
        mean1: f64,
        mean2: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_pvariance(
        data1: *const ::std::os::raw::c_long,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_long,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_ttest(
        data1: *const ::std::os::raw::c_long,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_long,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_max(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_stats_long_min(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_stats_long_minmax(
        min: *mut ::std::os::raw::c_long,
        max: *mut ::std::os::raw::c_long,
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_long_max_index(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_long_min_index(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_long_minmax_index(
        min_index: *mut usize,
        max_index: *mut usize,
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_long_select(
        data: *mut ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        k: usize,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_stats_long_median_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_median(
        sorted_data: *mut ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_quantile_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        f: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_trmean_from_sorted_data(
        trim: f64,
        sorted_data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_gastwirth_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_mad0(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_mad(
        data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_Sn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_stats_long_Sn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_long,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_long_Qn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_long,
        work_int: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn gsl_stats_long_Qn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_long,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_long,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_mean(data: *const ::std::os::raw::c_uint, stride: usize, n: usize)
        -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_variance(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_sd(data: *const ::std::os::raw::c_uint, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_variance_with_fixed_mean(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_sd_with_fixed_mean(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_tss(data: *const ::std::os::raw::c_uint, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_tss_m(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_absdev(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_skew(data: *const ::std::os::raw::c_uint, stride: usize, n: usize)
        -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_kurtosis(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_lag1_autocorrelation(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_covariance(
        data1: *const ::std::os::raw::c_uint,
        stride1: usize,
        data2: *const ::std::os::raw::c_uint,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_correlation(
        data1: *const ::std::os::raw::c_uint,
        stride1: usize,
        data2: *const ::std::os::raw::c_uint,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_spearman(
        data1: *const ::std::os::raw::c_uint,
        stride1: usize,
        data2: *const ::std::os::raw::c_uint,
        stride2: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_variance_m(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_sd_m(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_absdev_m(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_skew_m_sd(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_kurtosis_m_sd(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_lag1_autocorrelation_m(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_covariance_m(
        data1: *const ::std::os::raw::c_uint,
        stride1: usize,
        data2: *const ::std::os::raw::c_uint,
        stride2: usize,
        n: usize,
        mean1: f64,
        mean2: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_pvariance(
        data1: *const ::std::os::raw::c_uint,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_uint,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_ttest(
        data1: *const ::std::os::raw::c_uint,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_uint,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_max(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_stats_uint_min(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_stats_uint_minmax(
        min: *mut ::std::os::raw::c_uint,
        max: *mut ::std::os::raw::c_uint,
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_uint_max_index(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_uint_min_index(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_uint_minmax_index(
        min_index: *mut usize,
        max_index: *mut usize,
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_uint_select(
        data: *mut ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        k: usize,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_stats_uint_median_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_median(
        sorted_data: *mut ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_quantile_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        f: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_trmean_from_sorted_data(
        trim: f64,
        sorted_data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_gastwirth_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_mad0(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_mad(
        data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_Sn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_stats_uint_Sn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_uint,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uint_Qn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_uint,
        work_int: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn gsl_stats_uint_Qn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uint,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_uint,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_mean(data: *const ::std::os::raw::c_int, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_variance(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_sd(data: *const ::std::os::raw::c_int, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_variance_with_fixed_mean(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_sd_with_fixed_mean(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_tss(data: *const ::std::os::raw::c_int, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_tss_m(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_absdev(data: *const ::std::os::raw::c_int, stride: usize, n: usize)
        -> f64;
}
extern "C" {
    pub fn gsl_stats_int_skew(data: *const ::std::os::raw::c_int, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_kurtosis(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_lag1_autocorrelation(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_covariance(
        data1: *const ::std::os::raw::c_int,
        stride1: usize,
        data2: *const ::std::os::raw::c_int,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_correlation(
        data1: *const ::std::os::raw::c_int,
        stride1: usize,
        data2: *const ::std::os::raw::c_int,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_spearman(
        data1: *const ::std::os::raw::c_int,
        stride1: usize,
        data2: *const ::std::os::raw::c_int,
        stride2: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_variance_m(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_sd_m(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_absdev_m(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_skew_m_sd(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_kurtosis_m_sd(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_lag1_autocorrelation_m(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_covariance_m(
        data1: *const ::std::os::raw::c_int,
        stride1: usize,
        data2: *const ::std::os::raw::c_int,
        stride2: usize,
        n: usize,
        mean1: f64,
        mean2: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_pvariance(
        data1: *const ::std::os::raw::c_int,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_int,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_ttest(
        data1: *const ::std::os::raw::c_int,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_int,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_max(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_stats_int_min(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_stats_int_minmax(
        min: *mut ::std::os::raw::c_int,
        max: *mut ::std::os::raw::c_int,
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_int_max_index(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_int_min_index(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_int_minmax_index(
        min_index: *mut usize,
        max_index: *mut usize,
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_int_select(
        data: *mut ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        k: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_stats_int_median_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_median(
        sorted_data: *mut ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_quantile_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        f: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_trmean_from_sorted_data(
        trim: f64,
        sorted_data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_gastwirth_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_mad0(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_mad(
        data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_Sn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_stats_int_Sn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_int_Qn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_int,
        work_int: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_stats_int_Qn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_int,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_int,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_mean(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_variance(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_sd(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_variance_with_fixed_mean(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_sd_with_fixed_mean(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_tss(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_tss_m(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_absdev(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_skew(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_kurtosis(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_lag1_autocorrelation(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_covariance(
        data1: *const ::std::os::raw::c_ushort,
        stride1: usize,
        data2: *const ::std::os::raw::c_ushort,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_correlation(
        data1: *const ::std::os::raw::c_ushort,
        stride1: usize,
        data2: *const ::std::os::raw::c_ushort,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_spearman(
        data1: *const ::std::os::raw::c_ushort,
        stride1: usize,
        data2: *const ::std::os::raw::c_ushort,
        stride2: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_variance_m(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_sd_m(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_absdev_m(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_skew_m_sd(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_kurtosis_m_sd(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_lag1_autocorrelation_m(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_covariance_m(
        data1: *const ::std::os::raw::c_ushort,
        stride1: usize,
        data2: *const ::std::os::raw::c_ushort,
        stride2: usize,
        n: usize,
        mean1: f64,
        mean2: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_pvariance(
        data1: *const ::std::os::raw::c_ushort,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_ushort,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_ttest(
        data1: *const ::std::os::raw::c_ushort,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_ushort,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_max(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_stats_ushort_min(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_stats_ushort_minmax(
        min: *mut ::std::os::raw::c_ushort,
        max: *mut ::std::os::raw::c_ushort,
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_ushort_max_index(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_ushort_min_index(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_ushort_minmax_index(
        min_index: *mut usize,
        max_index: *mut usize,
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_ushort_select(
        data: *mut ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        k: usize,
    ) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_stats_ushort_median_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_median(
        sorted_data: *mut ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_quantile_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        f: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_trmean_from_sorted_data(
        trim: f64,
        sorted_data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_gastwirth_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_mad0(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_mad(
        data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_Sn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_stats_ushort_Sn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_ushort,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_ushort_Qn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_ushort,
        work_int: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn gsl_stats_ushort_Qn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_ushort,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_ushort,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_mean(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_variance(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_sd(data: *const ::std::os::raw::c_short, stride: usize, n: usize)
        -> f64;
}
extern "C" {
    pub fn gsl_stats_short_variance_with_fixed_mean(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_sd_with_fixed_mean(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_tss(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_tss_m(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_absdev(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_skew(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_kurtosis(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_lag1_autocorrelation(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_covariance(
        data1: *const ::std::os::raw::c_short,
        stride1: usize,
        data2: *const ::std::os::raw::c_short,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_correlation(
        data1: *const ::std::os::raw::c_short,
        stride1: usize,
        data2: *const ::std::os::raw::c_short,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_spearman(
        data1: *const ::std::os::raw::c_short,
        stride1: usize,
        data2: *const ::std::os::raw::c_short,
        stride2: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_variance_m(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_sd_m(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_absdev_m(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_skew_m_sd(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_kurtosis_m_sd(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_lag1_autocorrelation_m(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_covariance_m(
        data1: *const ::std::os::raw::c_short,
        stride1: usize,
        data2: *const ::std::os::raw::c_short,
        stride2: usize,
        n: usize,
        mean1: f64,
        mean2: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_pvariance(
        data1: *const ::std::os::raw::c_short,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_short,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_ttest(
        data1: *const ::std::os::raw::c_short,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_short,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_max(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_stats_short_min(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_stats_short_minmax(
        min: *mut ::std::os::raw::c_short,
        max: *mut ::std::os::raw::c_short,
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_short_max_index(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_short_min_index(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_short_minmax_index(
        min_index: *mut usize,
        max_index: *mut usize,
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_short_select(
        data: *mut ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        k: usize,
    ) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_stats_short_median_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_median(
        sorted_data: *mut ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_quantile_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        f: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_trmean_from_sorted_data(
        trim: f64,
        sorted_data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_gastwirth_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_mad0(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_mad(
        data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_Sn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_stats_short_Sn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_short,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_short_Qn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_short,
        work_int: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn gsl_stats_short_Qn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_short,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_short,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_mean(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_variance(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_sd(data: *const ::std::os::raw::c_uchar, stride: usize, n: usize)
        -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_variance_with_fixed_mean(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_sd_with_fixed_mean(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_tss(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_tss_m(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_absdev(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_skew(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_kurtosis(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_lag1_autocorrelation(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_covariance(
        data1: *const ::std::os::raw::c_uchar,
        stride1: usize,
        data2: *const ::std::os::raw::c_uchar,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_correlation(
        data1: *const ::std::os::raw::c_uchar,
        stride1: usize,
        data2: *const ::std::os::raw::c_uchar,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_spearman(
        data1: *const ::std::os::raw::c_uchar,
        stride1: usize,
        data2: *const ::std::os::raw::c_uchar,
        stride2: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_variance_m(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_sd_m(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_absdev_m(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_skew_m_sd(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_kurtosis_m_sd(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_lag1_autocorrelation_m(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_covariance_m(
        data1: *const ::std::os::raw::c_uchar,
        stride1: usize,
        data2: *const ::std::os::raw::c_uchar,
        stride2: usize,
        n: usize,
        mean1: f64,
        mean2: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_pvariance(
        data1: *const ::std::os::raw::c_uchar,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_uchar,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_ttest(
        data1: *const ::std::os::raw::c_uchar,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_uchar,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_max(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_stats_uchar_min(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_stats_uchar_minmax(
        min: *mut ::std::os::raw::c_uchar,
        max: *mut ::std::os::raw::c_uchar,
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_uchar_max_index(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_uchar_min_index(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_uchar_minmax_index(
        min_index: *mut usize,
        max_index: *mut usize,
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_uchar_select(
        data: *mut ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        k: usize,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_stats_uchar_median_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_median(
        sorted_data: *mut ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_quantile_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        f: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_trmean_from_sorted_data(
        trim: f64,
        sorted_data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_gastwirth_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_mad0(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_mad(
        data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_Sn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_stats_uchar_Sn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_uchar,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_uchar_Qn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_uchar,
        work_int: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn gsl_stats_uchar_Qn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_uchar,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_uchar,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_mean(data: *const ::std::os::raw::c_char, stride: usize, n: usize)
        -> f64;
}
extern "C" {
    pub fn gsl_stats_char_variance(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_sd(data: *const ::std::os::raw::c_char, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_variance_with_fixed_mean(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_sd_with_fixed_mean(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_tss(data: *const ::std::os::raw::c_char, stride: usize, n: usize) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_tss_m(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_absdev(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_skew(data: *const ::std::os::raw::c_char, stride: usize, n: usize)
        -> f64;
}
extern "C" {
    pub fn gsl_stats_char_kurtosis(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_lag1_autocorrelation(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_covariance(
        data1: *const ::std::os::raw::c_char,
        stride1: usize,
        data2: *const ::std::os::raw::c_char,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_correlation(
        data1: *const ::std::os::raw::c_char,
        stride1: usize,
        data2: *const ::std::os::raw::c_char,
        stride2: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_spearman(
        data1: *const ::std::os::raw::c_char,
        stride1: usize,
        data2: *const ::std::os::raw::c_char,
        stride2: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_variance_m(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_sd_m(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_absdev_m(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_skew_m_sd(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_kurtosis_m_sd(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        mean: f64,
        sd: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_lag1_autocorrelation_m(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        mean: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_covariance_m(
        data1: *const ::std::os::raw::c_char,
        stride1: usize,
        data2: *const ::std::os::raw::c_char,
        stride2: usize,
        n: usize,
        mean1: f64,
        mean2: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_pvariance(
        data1: *const ::std::os::raw::c_char,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_char,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_ttest(
        data1: *const ::std::os::raw::c_char,
        stride1: usize,
        n1: usize,
        data2: *const ::std::os::raw::c_char,
        stride2: usize,
        n2: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_max(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_stats_char_min(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_stats_char_minmax(
        min: *mut ::std::os::raw::c_char,
        max: *mut ::std::os::raw::c_char,
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_char_max_index(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_char_min_index(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> usize;
}
extern "C" {
    pub fn gsl_stats_char_minmax_index(
        min_index: *mut usize,
        max_index: *mut usize,
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    );
}
extern "C" {
    pub fn gsl_stats_char_select(
        data: *mut ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        k: usize,
    ) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_stats_char_median_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_median(
        sorted_data: *mut ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_quantile_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        f: f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_trmean_from_sorted_data(
        trim: f64,
        sorted_data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_gastwirth_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_mad0(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_mad(
        data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        work: *mut f64,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_Sn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_stats_char_Sn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_char,
    ) -> f64;
}
extern "C" {
    pub fn gsl_stats_char_Qn0_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_char,
        work_int: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_stats_char_Qn_from_sorted_data(
        sorted_data: *const ::std::os::raw::c_char,
        stride: usize,
        n: usize,
        work: *mut ::std::os::raw::c_char,
        work_int: *mut ::std::os::raw::c_int,
    ) -> f64;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_sum_levin_u_workspace {
    pub size: usize,
    pub i: usize,
    pub terms_used: usize,
    pub sum_plain: f64,
    pub q_num: *mut f64,
    pub q_den: *mut f64,
    pub dq_num: *mut f64,
    pub dq_den: *mut f64,
    pub dsum: *mut f64,
}
extern "C" {
    pub fn gsl_sum_levin_u_alloc(n: usize) -> *mut gsl_sum_levin_u_workspace;
}
extern "C" {
    pub fn gsl_sum_levin_u_free(w: *mut gsl_sum_levin_u_workspace);
}
extern "C" {
    pub fn gsl_sum_levin_u_accel(
        array: *const f64,
        n: usize,
        w: *mut gsl_sum_levin_u_workspace,
        sum_accel: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sum_levin_u_minmax(
        array: *const f64,
        n: usize,
        min_terms: usize,
        max_terms: usize,
        w: *mut gsl_sum_levin_u_workspace,
        sum_accel: *mut f64,
        abserr: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sum_levin_u_step(
        term: f64,
        n: usize,
        nmax: usize,
        w: *mut gsl_sum_levin_u_workspace,
        sum_accel: *mut f64,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_sum_levin_utrunc_workspace {
    pub size: usize,
    pub i: usize,
    pub terms_used: usize,
    pub sum_plain: f64,
    pub q_num: *mut f64,
    pub q_den: *mut f64,
    pub dsum: *mut f64,
}
extern "C" {
    pub fn gsl_sum_levin_utrunc_alloc(n: usize) -> *mut gsl_sum_levin_utrunc_workspace;
}
extern "C" {
    pub fn gsl_sum_levin_utrunc_free(w: *mut gsl_sum_levin_utrunc_workspace);
}
extern "C" {
    pub fn gsl_sum_levin_utrunc_accel(
        array: *const f64,
        n: usize,
        w: *mut gsl_sum_levin_utrunc_workspace,
        sum_accel: *mut f64,
        abserr_trunc: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sum_levin_utrunc_minmax(
        array: *const f64,
        n: usize,
        min_terms: usize,
        max_terms: usize,
        w: *mut gsl_sum_levin_utrunc_workspace,
        sum_accel: *mut f64,
        abserr_trunc: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_sum_levin_utrunc_step(
        term: f64,
        n: usize,
        w: *mut gsl_sum_levin_utrunc_workspace,
        sum_accel: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_test(
        status: ::std::os::raw::c_int,
        test_description: *const ::std::os::raw::c_char,
        ...
    );
}
extern "C" {
    pub fn gsl_test_rel(
        result: f64,
        expected: f64,
        relative_error: f64,
        test_description: *const ::std::os::raw::c_char,
        ...
    );
}
extern "C" {
    pub fn gsl_test_abs(
        result: f64,
        expected: f64,
        absolute_error: f64,
        test_description: *const ::std::os::raw::c_char,
        ...
    );
}
extern "C" {
    pub fn gsl_test_factor(
        result: f64,
        expected: f64,
        factor: f64,
        test_description: *const ::std::os::raw::c_char,
        ...
    );
}
extern "C" {
    pub fn gsl_test_int(
        result: ::std::os::raw::c_int,
        expected: ::std::os::raw::c_int,
        test_description: *const ::std::os::raw::c_char,
        ...
    );
}
extern "C" {
    pub fn gsl_test_str(
        result: *const ::std::os::raw::c_char,
        expected: *const ::std::os::raw::c_char,
        test_description: *const ::std::os::raw::c_char,
        ...
    );
}
extern "C" {
    pub fn gsl_test_verbose(verbose: ::std::os::raw::c_int);
}
extern "C" {
    pub fn gsl_test_summary() -> ::std::os::raw::c_int;
}
extern "C" {
    pub static mut gsl_version: *const ::std::os::raw::c_char;
}
pub const gsl_wavelet_direction_gsl_wavelet_forward: gsl_wavelet_direction = 1;
pub const gsl_wavelet_direction_gsl_wavelet_backward: gsl_wavelet_direction = -1;
pub type gsl_wavelet_direction = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_wavelet_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_wavelet;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gsl_wavelet_workspace;
extern "C" {
    pub static mut gsl_wavelet_daubechies: *const gsl_wavelet_type;
}
extern "C" {
    pub static mut gsl_wavelet_daubechies_centered: *const gsl_wavelet_type;
}
extern "C" {
    pub static mut gsl_wavelet_haar: *const gsl_wavelet_type;
}
extern "C" {
    pub static mut gsl_wavelet_haar_centered: *const gsl_wavelet_type;
}
extern "C" {
    pub static mut gsl_wavelet_bspline: *const gsl_wavelet_type;
}
extern "C" {
    pub static mut gsl_wavelet_bspline_centered: *const gsl_wavelet_type;
}
extern "C" {
    pub fn gsl_wavelet_alloc(T: *const gsl_wavelet_type, k: usize) -> *mut gsl_wavelet;
}
extern "C" {
    pub fn gsl_wavelet_free(w: *mut gsl_wavelet);
}
extern "C" {
    pub fn gsl_wavelet_name(w: *const gsl_wavelet) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gsl_wavelet_workspace_alloc(n: usize) -> *mut gsl_wavelet_workspace;
}
extern "C" {
    pub fn gsl_wavelet_workspace_free(work: *mut gsl_wavelet_workspace);
}
extern "C" {
    pub fn gsl_wavelet_transform(
        w: *const gsl_wavelet,
        data: *mut f64,
        stride: usize,
        n: usize,
        dir: gsl_wavelet_direction,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet_transform_forward(
        w: *const gsl_wavelet,
        data: *mut f64,
        stride: usize,
        n: usize,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet_transform_inverse(
        w: *const gsl_wavelet,
        data: *mut f64,
        stride: usize,
        n: usize,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet2d_transform(
        w: *const gsl_wavelet,
        data: *mut f64,
        tda: usize,
        size1: usize,
        size2: usize,
        dir: gsl_wavelet_direction,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet2d_transform_forward(
        w: *const gsl_wavelet,
        data: *mut f64,
        tda: usize,
        size1: usize,
        size2: usize,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet2d_transform_inverse(
        w: *const gsl_wavelet,
        data: *mut f64,
        tda: usize,
        size1: usize,
        size2: usize,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet2d_nstransform(
        w: *const gsl_wavelet,
        data: *mut f64,
        tda: usize,
        size1: usize,
        size2: usize,
        dir: gsl_wavelet_direction,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet2d_nstransform_forward(
        w: *const gsl_wavelet,
        data: *mut f64,
        tda: usize,
        size1: usize,
        size2: usize,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet2d_nstransform_inverse(
        w: *const gsl_wavelet,
        data: *mut f64,
        tda: usize,
        size1: usize,
        size2: usize,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet2d_transform_matrix(
        w: *const gsl_wavelet,
        a: *mut gsl_matrix,
        dir: gsl_wavelet_direction,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet2d_transform_matrix_forward(
        w: *const gsl_wavelet,
        a: *mut gsl_matrix,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet2d_transform_matrix_inverse(
        w: *const gsl_wavelet,
        a: *mut gsl_matrix,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet2d_nstransform_matrix(
        w: *const gsl_wavelet,
        a: *mut gsl_matrix,
        dir: gsl_wavelet_direction,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet2d_nstransform_matrix_forward(
        w: *const gsl_wavelet,
        a: *mut gsl_matrix,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gsl_wavelet2d_nstransform_matrix_inverse(
        w: *const gsl_wavelet,
        a: *mut gsl_matrix,
        work: *mut gsl_wavelet_workspace,
    ) -> ::std::os::raw::c_int;
}