// @generated by tools/raw-ffi-gen; do not edit by hand.

/* automatically generated by rust-bindgen 0.71.1 */

pub type vUInt8 = [::core::ffi::c_uchar; 16usize];
pub type vSInt8 = [::core::ffi::c_schar; 16usize];
pub type vUInt16 = [::core::ffi::c_ushort; 8usize];
pub type vSInt16 = [::core::ffi::c_short; 8usize];
pub type vUInt32 = [::core::ffi::c_uint; 4usize];
pub type vSInt32 = [::core::ffi::c_int; 4usize];
pub type vFloat = [f32; 4usize];
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub union vU128 {
    pub v: vUInt32,
    pub vs: vU128__bindgen_ty_1,
    pub s: vU128__bindgen_ty_2,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Default, Copy, Clone)]
pub struct vU128__bindgen_ty_1 {
    pub v1: vUInt32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct vU128__bindgen_ty_2 {
    pub LSW: u32,
    pub d3: u32,
    pub d2: u32,
    pub MSW: u32,
}
impl Default for vU128 {
    fn default() -> Self {
        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub union vS128 {
    pub v: vUInt32,
    pub vs: vS128__bindgen_ty_1,
    pub s: vS128__bindgen_ty_2,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Default, Copy, Clone)]
pub struct vS128__bindgen_ty_1 {
    pub v1: vUInt32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct vS128__bindgen_ty_2 {
    pub LSW: i32,
    pub d3: u32,
    pub d2: u32,
    pub MSW: u32,
}
impl Default for vS128 {
    fn default() -> Self {
        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub union vU256 {
    pub v: [vUInt32; 2usize],
    pub vs: vU256__bindgen_ty_1,
    pub s: vU256__bindgen_ty_2,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Default, Copy, Clone)]
pub struct vU256__bindgen_ty_1 {
    pub v2: vUInt32,
    pub v1: vUInt32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct vU256__bindgen_ty_2 {
    pub LSW: u32,
    pub d7: u32,
    pub d6: u32,
    pub d5: u32,
    pub d4: u32,
    pub d3: u32,
    pub d2: u32,
    pub MSW: u32,
}
impl Default for vU256 {
    fn default() -> Self {
        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub union vS256 {
    pub v: [vUInt32; 2usize],
    pub vs: vS256__bindgen_ty_1,
    pub s: vS256__bindgen_ty_2,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Default, Copy, Clone)]
pub struct vS256__bindgen_ty_1 {
    pub v2: vUInt32,
    pub v1: vUInt32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct vS256__bindgen_ty_2 {
    pub LSW: i32,
    pub d7: u32,
    pub d6: u32,
    pub d5: u32,
    pub d4: u32,
    pub d3: u32,
    pub d2: u32,
    pub MSW: u32,
}
impl Default for vS256 {
    fn default() -> Self {
        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub union vU512 {
    pub v: [vUInt32; 4usize],
    pub vs: vU512__bindgen_ty_1,
    pub s: vU512__bindgen_ty_2,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Default, Copy, Clone)]
pub struct vU512__bindgen_ty_1 {
    pub v4: vUInt32,
    pub v3: vUInt32,
    pub v2: vUInt32,
    pub v1: vUInt32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct vU512__bindgen_ty_2 {
    pub LSW: u32,
    pub d15: u32,
    pub d14: u32,
    pub d13: u32,
    pub d12: u32,
    pub d11: u32,
    pub d10: u32,
    pub d9: u32,
    pub d8: u32,
    pub d7: u32,
    pub d6: u32,
    pub d5: u32,
    pub d4: u32,
    pub d3: u32,
    pub d2: u32,
    pub MSW: u32,
}
impl Default for vU512 {
    fn default() -> Self {
        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub union vS512 {
    pub v: [vUInt32; 4usize],
    pub vs: vS512__bindgen_ty_1,
    pub s: vS512__bindgen_ty_2,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Default, Copy, Clone)]
pub struct vS512__bindgen_ty_1 {
    pub v4: vUInt32,
    pub v3: vUInt32,
    pub v2: vUInt32,
    pub v1: vUInt32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct vS512__bindgen_ty_2 {
    pub LSW: i32,
    pub d15: u32,
    pub d14: u32,
    pub d13: u32,
    pub d12: u32,
    pub d11: u32,
    pub d10: u32,
    pub d9: u32,
    pub d8: u32,
    pub d7: u32,
    pub d6: u32,
    pub d5: u32,
    pub d4: u32,
    pub d3: u32,
    pub d2: u32,
    pub MSW: u32,
}
impl Default for vS512 {
    fn default() -> Self {
        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub union vU1024 {
    pub v: [vUInt32; 8usize],
    pub vs: vU1024__bindgen_ty_1,
    pub s: vU1024__bindgen_ty_2,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Default, Copy, Clone)]
pub struct vU1024__bindgen_ty_1 {
    pub v8: vUInt32,
    pub v7: vUInt32,
    pub v6: vUInt32,
    pub v5: vUInt32,
    pub v4: vUInt32,
    pub v3: vUInt32,
    pub v2: vUInt32,
    pub v1: vUInt32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct vU1024__bindgen_ty_2 {
    pub LSW: u32,
    pub d31: u32,
    pub d30: u32,
    pub d29: u32,
    pub d28: u32,
    pub d27: u32,
    pub d26: u32,
    pub d25: u32,
    pub d24: u32,
    pub d23: u32,
    pub d22: u32,
    pub d21: u32,
    pub d20: u32,
    pub d19: u32,
    pub d18: u32,
    pub d17: u32,
    pub d16: u32,
    pub d15: u32,
    pub d14: u32,
    pub d13: u32,
    pub d12: u32,
    pub d11: u32,
    pub d10: u32,
    pub d9: u32,
    pub d8: u32,
    pub d7: u32,
    pub d6: u32,
    pub d5: u32,
    pub d4: u32,
    pub d3: u32,
    pub d2: u32,
    pub MSW: u32,
}
impl Default for vU1024 {
    fn default() -> Self {
        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub union vS1024 {
    pub v: [vUInt32; 8usize],
    pub vs: vS1024__bindgen_ty_1,
    pub s: vS1024__bindgen_ty_2,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Default, Copy, Clone)]
pub struct vS1024__bindgen_ty_1 {
    pub v8: vUInt32,
    pub v7: vUInt32,
    pub v6: vUInt32,
    pub v5: vUInt32,
    pub v4: vUInt32,
    pub v3: vUInt32,
    pub v2: vUInt32,
    pub v1: vUInt32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct vS1024__bindgen_ty_2 {
    pub LSW: i32,
    pub d31: u32,
    pub d30: u32,
    pub d29: u32,
    pub d28: u32,
    pub d27: u32,
    pub d26: u32,
    pub d25: u32,
    pub d24: u32,
    pub d23: u32,
    pub d22: u32,
    pub d21: u32,
    pub d20: u32,
    pub d19: u32,
    pub d18: u32,
    pub d17: u32,
    pub d16: u32,
    pub d15: u32,
    pub d14: u32,
    pub d13: u32,
    pub d12: u32,
    pub d11: u32,
    pub d10: u32,
    pub d9: u32,
    pub d8: u32,
    pub d7: u32,
    pub d6: u32,
    pub d5: u32,
    pub d4: u32,
    pub d3: u32,
    pub d2: u32,
    pub MSW: u32,
}
impl Default for vS1024 {
    fn default() -> Self {
        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU256Divide(
        numerator: *const vU256,
        divisor: *const vU256,
        result: *mut vU256,
        remainder: *mut vU256,
    );
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS256Divide(
        numerator: *const vS256,
        divisor: *const vS256,
        result: *mut vS256,
        remainder: *mut vS256,
    );
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU512Divide(
        numerator: *const vU512,
        divisor: *const vU512,
        result: *mut vU512,
        remainder: *mut vU512,
    );
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS512Divide(
        numerator: *const vS512,
        divisor: *const vS512,
        result: *mut vS512,
        remainder: *mut vS512,
    );
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU1024Divide(
        numerator: *const vU1024,
        divisor: *const vU1024,
        result: *mut vU1024,
        remainder: *mut vU1024,
    );
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS1024Divide(
        numerator: *const vS1024,
        divisor: *const vS1024,
        result: *mut vS1024,
        remainder: *mut vS1024,
    );
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU128FullMultiply(a: *const vU128, b: *const vU128, result: *mut vU256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS128FullMultiply(a: *const vS128, b: *const vS128, result: *mut vS256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU256FullMultiply(a: *const vU256, b: *const vU256, result: *mut vU512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS256FullMultiply(a: *const vS256, b: *const vS256, result: *mut vS512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU512FullMultiply(a: *const vU512, b: *const vU512, result: *mut vU1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS512FullMultiply(a: *const vS512, b: *const vS512, result: *mut vS1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU256HalfMultiply(a: *const vU256, b: *const vU256, result: *mut vU256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS256HalfMultiply(a: *const vS256, b: *const vS256, result: *mut vS256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU512HalfMultiply(a: *const vU512, b: *const vU512, result: *mut vU512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS512HalfMultiply(a: *const vS512, b: *const vS512, result: *mut vS512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU1024HalfMultiply(a: *const vU1024, b: *const vU1024, result: *mut vU1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS1024HalfMultiply(a: *const vS1024, b: *const vS1024, result: *mut vS1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU256Sub(a: *const vU256, b: *const vU256, result: *mut vU256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS256Sub(a: *const vS256, b: *const vS256, result: *mut vS256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU256SubS(a: *const vU256, b: *const vU256, result: *mut vU256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS256SubS(a: *const vS256, b: *const vS256, result: *mut vS256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU512Sub(a: *const vU512, b: *const vU512, result: *mut vU512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS512Sub(a: *const vS512, b: *const vS512, result: *mut vS512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU512SubS(a: *const vU512, b: *const vU512, result: *mut vU512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS512SubS(a: *const vS512, b: *const vS512, result: *mut vS512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU1024Sub(a: *const vU1024, b: *const vU1024, result: *mut vU1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS1024Sub(a: *const vS1024, b: *const vS1024, result: *mut vS1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU1024SubS(a: *const vU1024, b: *const vU1024, result: *mut vU1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS1024SubS(a: *const vS1024, b: *const vS1024, result: *mut vS1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU256Neg(a: *const vU256, result: *mut vU256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS256Neg(a: *const vS256, result: *mut vS256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU512Neg(a: *const vU512, result: *mut vU512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS512Neg(a: *const vS512, result: *mut vS512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU1024Neg(a: *const vU1024, result: *mut vU1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS1024Neg(a: *const vS1024, result: *mut vS1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU256Add(a: *const vU256, b: *const vU256, result: *mut vU256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS256Add(a: *const vS256, b: *const vS256, result: *mut vS256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU256AddS(a: *const vU256, b: *const vU256, result: *mut vU256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS256AddS(a: *const vS256, b: *const vS256, result: *mut vS256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU512Add(a: *const vU512, b: *const vU512, result: *mut vU512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS512Add(a: *const vS512, b: *const vS512, result: *mut vS512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU512AddS(a: *const vU512, b: *const vU512, result: *mut vU512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS512AddS(a: *const vS512, b: *const vS512, result: *mut vS512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU1024Add(a: *const vU1024, b: *const vU1024, result: *mut vU1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS1024Add(a: *const vS1024, b: *const vS1024, result: *mut vS1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU1024AddS(a: *const vU1024, b: *const vU1024, result: *mut vU1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS1024AddS(a: *const vS1024, b: *const vS1024, result: *mut vS1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU256Mod(numerator: *const vU256, divisor: *const vU256, remainder: *mut vU256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS256Mod(numerator: *const vS256, divisor: *const vS256, remainder: *mut vS256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU512Mod(numerator: *const vU512, divisor: *const vU512, remainder: *mut vU512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS512Mod(numerator: *const vS512, divisor: *const vS512, remainder: *mut vS512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU1024Mod(numerator: *const vU1024, divisor: *const vU1024, remainder: *mut vU1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS1024Mod(numerator: *const vS1024, divisor: *const vS1024, remainder: *mut vS1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vLL256Shift(a: *const vU256, shiftAmount: u32, result: *mut vU256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vLL512Shift(a: *const vU512, shiftAmount: u32, result: *mut vU512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vLL1024Shift(a: *const vU1024, shiftAmount: u32, result: *mut vU1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vLR256Shift(a: *const vU256, shiftAmount: u32, result: *mut vU256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vLR512Shift(a: *const vU512, shiftAmount: u32, result: *mut vU512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vLR1024Shift(a: *const vU1024, shiftAmount: u32, result: *mut vU1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vA256Shift(a: *const vS256, shiftAmount: u32, result: *mut vS256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vA512Shift(a: *const vS512, shiftAmount: u32, result: *mut vS512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vA1024Shift(a: *const vS1024, shiftAmount: u32, result: *mut vS1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vL256Rotate(a: *const vU256, rotateAmount: u32, result: *mut vU256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vL512Rotate(a: *const vU512, rotateAmount: u32, result: *mut vU512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vL1024Rotate(a: *const vU1024, rotateAmount: u32, result: *mut vU1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vR256Rotate(a: *const vU256, rotateAmount: u32, result: *mut vU256);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vR512Rotate(a: *const vU512, rotateAmount: u32, result: *mut vU512);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vR1024Rotate(a: *const vU1024, rotateAmount: u32, result: *mut vU1024);
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU8Divide(vN: vUInt8, vD: vUInt8, vRemainder: *mut vUInt8) -> vUInt8;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS8Divide(vN: vSInt8, vD: vSInt8, vRemainder: *mut vSInt8) -> vSInt8;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU16Divide(vN: vUInt16, vD: vUInt16, vRemainder: *mut vUInt16) -> vUInt16;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS16Divide(vN: vSInt16, vD: vSInt16, vRemainder: *mut vSInt16) -> vSInt16;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU32Divide(vN: vUInt32, vD: vUInt32, vRemainder: *mut vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS32Divide(vN: vSInt32, vD: vSInt32, vRemainder: *mut vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU64Divide(vN: vUInt32, vD: vUInt32, vRemainder: *mut vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS64Divide(vN: vSInt32, vD: vSInt32, vRemainder: *mut vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU128Divide(vN: vUInt32, vD: vUInt32, vRemainder: *mut vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS128Divide(vN: vSInt32, vD: vSInt32, vRemainder: *mut vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU8HalfMultiply(vA: vUInt8, vB: vUInt8) -> vUInt8;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS8HalfMultiply(vA: vSInt8, vB: vSInt8) -> vSInt8;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU16HalfMultiply(vA: vUInt16, vB: vUInt16) -> vUInt16;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS16HalfMultiply(vA: vSInt16, vB: vSInt16) -> vSInt16;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU32HalfMultiply(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS32HalfMultiply(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU32FullMulEven(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU32FullMulOdd(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS32FullMulEven(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS32FullMulOdd(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU64FullMulEven(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU64FullMulOdd(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU64HalfMultiply(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS64HalfMultiply(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS64FullMulEven(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS64FullMulOdd(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU128HalfMultiply(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS128HalfMultiply(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU64Sub(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU64SubS(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU128Sub(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU128SubS(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS64Sub(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS128Sub(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS64SubS(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS128SubS(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU64Add(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU64AddS(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU128Add(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU128AddS(vA: vUInt32, vB: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS64Add(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS64AddS(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS128Add(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS128AddS(vA: vSInt32, vB: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU64Neg(vA: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS64Neg(vA: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vU128Neg(vA: vUInt32) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vS128Neg(vA: vSInt32) -> vSInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vLL64Shift(vA: vUInt32, vShiftFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vA64Shift(vA: vUInt32, vShiftFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vLR64Shift(vA: vUInt32, vShiftFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vLL64Shift2(vA: vUInt32, vShiftFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vA64Shift2(vA: vUInt32, vShiftFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vLR64Shift2(vA: vUInt32, vShiftFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vLL128Shift(vA: vUInt32, vShiftFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vLR128Shift(vA: vUInt32, vShiftFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vA128Shift(vA: vUInt32, vShiftFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vL64Rotate(vA: vUInt32, vRotateFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vR64Rotate(vA: vUInt32, vRotateFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vL64Rotate2(vA: vUInt32, vRotateFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vR64Rotate2(vA: vUInt32, vRotateFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vL128Rotate(vA: vUInt32, vRotateFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vR128Rotate(vA: vUInt32, vRotateFactor: vUInt8) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vceilf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vfloorf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vtruncf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vnintf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vexpf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vexp2f(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vexpm1f(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vlogf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vlog2f(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vlog10f(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vlog1pf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vlogbf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vscalbf(arg1: vFloat, arg2: vSInt32) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vpowf(arg1: vFloat, arg2: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vipowf(arg1: vFloat, arg2: vSInt32) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vsinf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vcosf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vsincosf(arg1: vFloat, arg2: *mut vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vtanf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vsinpif(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vcospif(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vtanpif(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vasinf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vacosf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vatanf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vatan2f(arg1: vFloat, arg2: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vsinhf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vcoshf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vtanhf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vasinhf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vacoshf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vatanhf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vrecf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vsqrtf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vrsqrtf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vdivf(arg1: vFloat, arg2: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vfmodf(arg1: vFloat, arg2: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vremainderf(arg1: vFloat, arg2: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vremquof(arg1: vFloat, arg2: vFloat, arg3: *mut vUInt32) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vfabsf(arg1: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vcopysignf(arg1: vFloat, arg2: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vsignbitf(arg1: vFloat) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vnextafterf(arg1: vFloat, arg2: vFloat) -> vFloat;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vclassifyf(arg1: vFloat) -> vUInt32;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn vtablelookup(arg1: vSInt32, arg2: *mut u32) -> vUInt32;
}
pub const BLAS_THREADING_BLAS_THREADING_MULTI_THREADED: BLAS_THREADING = 0;
pub const BLAS_THREADING_BLAS_THREADING_SINGLE_THREADED: BLAS_THREADING = 1;
pub const BLAS_THREADING_BLAS_THREADING_MAX_OPTIONS: BLAS_THREADING = 2;
pub type BLAS_THREADING = ::core::ffi::c_uint;
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn BLASSetThreading(threading: BLAS_THREADING) -> ::core::ffi::c_int;
}
#[link(name = "Accelerate", kind = "framework")]
unsafe extern "C" {
    pub fn BLASGetThreading() -> BLAS_THREADING;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct la_s {
    _unused: [u8; 0],
}
pub type la_object_t = *mut la_s;
