//! Automatically generated bindings for R's C API. Do not edit.
#![allow(improper_ctypes)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(clippy::all)]

/* automatically generated by rust-bindgen 0.72.1 */

pub const SYMSXP: u32 = 1;
pub const LGLSXP: u32 = 10;
pub const INTSXP: u32 = 13;
pub const REALSXP: u32 = 14;
pub const STRSXP: u32 = 16;
pub const VECSXP: u32 = 19;
pub const EXTPTRSXP: u32 = 22;
pub const RAWSXP: u32 = 24;
unsafe extern "C" {
    pub static mut R_NaN: f64;
}
unsafe extern "C" {
    pub static mut R_PosInf: f64;
}
unsafe extern "C" {
    pub static mut R_NegInf: f64;
}
unsafe extern "C" {
    pub static mut R_NaReal: f64;
}
unsafe extern "C" {
    pub static mut R_NaInt: ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn R_IsNA(arg1: f64) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn R_IsNaN(arg1: f64) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn R_finite(arg1: f64) -> ::std::os::raw::c_int;
}
pub const Rboolean_FALSE: Rboolean = 0;
pub const Rboolean_TRUE: Rboolean = 1;
pub type Rboolean = ::std::os::raw::c_int;
unsafe extern "C" {
    pub fn Rprintf(arg1: *const ::std::os::raw::c_char, ...);
}
unsafe extern "C" {
    pub fn REprintf(arg1: *const ::std::os::raw::c_char, ...);
}
unsafe extern "C" {
    pub fn Rf_error(arg1: *const ::std::os::raw::c_char, ...);
}
unsafe extern "C" {
    pub fn GetRNGstate();
}
unsafe extern "C" {
    pub fn PutRNGstate();
}
unsafe extern "C" {
    pub fn R_unif_index(arg1: f64) -> f64;
}
unsafe extern "C" {
    pub fn R_CheckUserInterrupt();
}
unsafe extern "C" {
    pub fn R_FlushConsole();
}
pub type DL_FUNC = ::std::option::Option<unsafe extern "C" fn() -> *mut ::std::os::raw::c_void>;
pub type R_NativePrimitiveArgType = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct R_CMethodDef {
    pub name: *const ::std::os::raw::c_char,
    pub fun: DL_FUNC,
    pub numArgs: ::std::os::raw::c_int,
    pub types: *mut R_NativePrimitiveArgType,
}
pub type R_FortranMethodDef = R_CMethodDef;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct R_CallMethodDef {
    pub name: *const ::std::os::raw::c_char,
    pub fun: DL_FUNC,
    pub numArgs: ::std::os::raw::c_int,
}
pub type R_ExternalMethodDef = R_CallMethodDef;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DllInfo {
    _unused: [u8; 0],
}
pub type DllInfo = _DllInfo;
unsafe extern "C" {
    pub fn R_registerRoutines(
        info: *mut DllInfo,
        croutines: *const R_CMethodDef,
        callRoutines: *const R_CallMethodDef,
        fortranRoutines: *const R_FortranMethodDef,
        externalRoutines: *const R_ExternalMethodDef,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn R_useDynamicSymbols(info: *mut DllInfo, value: Rboolean) -> Rboolean;
}
unsafe extern "C" {
    pub fn R_forceSymbols(info: *mut DllInfo, value: Rboolean) -> Rboolean;
}
pub type Rbyte = ::std::os::raw::c_uchar;
pub type R_len_t = ::std::os::raw::c_int;
pub type R_xlen_t = isize;
pub type SEXPTYPE = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SEXPREC {
    _unused: [u8; 0],
}
pub type SEXP = *mut SEXPREC;
unsafe extern "C" {
    pub fn R_CHAR(x: SEXP) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
    pub fn Rf_isNull(s: SEXP) -> Rboolean;
}
unsafe extern "C" {
    pub fn Rf_isLogical(s: SEXP) -> Rboolean;
}
unsafe extern "C" {
    pub fn Rf_isReal(s: SEXP) -> Rboolean;
}
unsafe extern "C" {
    pub fn Rf_isString(s: SEXP) -> Rboolean;
}
unsafe extern "C" {
    pub fn TYPEOF(x: SEXP) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn LOGICAL(x: SEXP) -> *mut ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn INTEGER(x: SEXP) -> *mut ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn RAW(x: SEXP) -> *mut Rbyte;
}
unsafe extern "C" {
    pub fn REAL(x: SEXP) -> *mut f64;
}
unsafe extern "C" {
    pub fn VECTOR_ELT(x: SEXP, i: R_xlen_t) -> SEXP;
}
unsafe extern "C" {
    pub fn SET_STRING_ELT(x: SEXP, i: R_xlen_t, v: SEXP);
}
unsafe extern "C" {
    pub fn SET_VECTOR_ELT(x: SEXP, i: R_xlen_t, v: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub static mut R_NilValue: SEXP;
}
unsafe extern "C" {
    pub static mut R_AtsignSymbol: SEXP;
}
unsafe extern "C" {
    pub static mut R_ClassSymbol: SEXP;
}
unsafe extern "C" {
    pub static mut R_DimNamesSymbol: SEXP;
}
unsafe extern "C" {
    pub static mut R_DimSymbol: SEXP;
}
unsafe extern "C" {
    pub static mut R_NamesSymbol: SEXP;
}
unsafe extern "C" {
    pub static mut R_RowNamesSymbol: SEXP;
}
unsafe extern "C" {
    pub static mut R_NaString: SEXP;
}
unsafe extern "C" {
    pub fn Rf_asChar(arg1: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_coerceVector(arg1: SEXP, arg2: SEXPTYPE) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_asLogical(x: SEXP) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn Rf_asInteger(x: SEXP) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn Rf_asReal(x: SEXP) -> f64;
}
unsafe extern "C" {
    pub fn Rf_allocArray(arg1: SEXPTYPE, arg2: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_allocMatrix(
        arg1: SEXPTYPE,
        arg2: ::std::os::raw::c_int,
        arg3: ::std::os::raw::c_int,
    ) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_classgets(arg1: SEXP, arg2: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_copyMatrix(arg1: SEXP, arg2: SEXP, arg3: Rboolean);
}
unsafe extern "C" {
    pub fn Rf_dimnamesgets(arg1: SEXP, arg2: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_duplicate(arg1: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_getAttrib(arg1: SEXP, arg2: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_install(arg1: *const ::std::os::raw::c_char) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_namesgets(arg1: SEXP, arg2: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_ncols(arg1: SEXP) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn Rf_nrows(arg1: SEXP) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn Rf_setAttrib(arg1: SEXP, arg2: SEXP, arg3: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn R_tryEval(arg1: SEXP, arg2: SEXP, arg3: *mut ::std::os::raw::c_int) -> SEXP;
}
unsafe extern "C" {
    pub fn R_GetCurrentEnv() -> SEXP;
}
pub const cetype_t_CE_NATIVE: cetype_t = 0;
pub const cetype_t_CE_UTF8: cetype_t = 1;
pub const cetype_t_CE_LATIN1: cetype_t = 2;
pub const cetype_t_CE_BYTES: cetype_t = 3;
pub const cetype_t_CE_SYMBOL: cetype_t = 5;
pub const cetype_t_CE_ANY: cetype_t = 99;
pub type cetype_t = ::std::os::raw::c_uint;
unsafe extern "C" {
    pub fn Rf_mkCharLenCE(
        arg1: *const ::std::os::raw::c_char,
        arg2: ::std::os::raw::c_int,
        arg3: cetype_t,
    ) -> SEXP;
}
unsafe extern "C" {
    pub fn R_MakeExternalPtr(p: *mut ::std::os::raw::c_void, tag: SEXP, prot: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn R_ExternalPtrAddr(s: SEXP) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
    pub fn R_ExternalPtrTag(s: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn R_ClearExternalPtr(s: SEXP);
}
unsafe extern "C" {
    pub fn R_SetExternalPtrAddr(s: SEXP, p: *mut ::std::os::raw::c_void);
}
pub type R_CFinalizer_t = ::std::option::Option<unsafe extern "C" fn(arg1: SEXP)>;
unsafe extern "C" {
    pub fn R_RegisterCFinalizerEx(s: SEXP, fun: R_CFinalizer_t, onexit: Rboolean);
}
unsafe extern "C" {
    pub fn R_ToplevelExec(
        fun: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
        data: *mut ::std::os::raw::c_void,
    ) -> Rboolean;
}
unsafe extern "C" {
    pub fn Rf_allocVector(arg1: SEXPTYPE, arg2: R_xlen_t) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_inherits(arg1: SEXP, arg2: *const ::std::os::raw::c_char) -> Rboolean;
}
unsafe extern "C" {
    pub fn Rf_isArray(arg1: SEXP) -> Rboolean;
}
unsafe extern "C" {
    pub fn Rf_isFunction(arg1: SEXP) -> Rboolean;
}
unsafe extern "C" {
    pub fn Rf_isInteger(arg1: SEXP) -> Rboolean;
}
unsafe extern "C" {
    pub fn Rf_isMatrix(arg1: SEXP) -> Rboolean;
}
unsafe extern "C" {
    pub fn Rf_isVectorAtomic(arg1: SEXP) -> Rboolean;
}
unsafe extern "C" {
    pub fn Rf_isVectorList(arg1: SEXP) -> Rboolean;
}
unsafe extern "C" {
    pub fn Rf_lang1(arg1: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_lang2(arg1: SEXP, arg2: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_lang3(arg1: SEXP, arg2: SEXP, arg3: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_lang4(arg1: SEXP, arg2: SEXP, arg3: SEXP, arg4: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_lang5(arg1: SEXP, arg2: SEXP, arg3: SEXP, arg4: SEXP, arg5: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_lang6(arg1: SEXP, arg2: SEXP, arg3: SEXP, arg4: SEXP, arg5: SEXP, arg6: SEXP)
    -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_length(arg1: SEXP) -> R_len_t;
}
unsafe extern "C" {
    pub fn Rf_ScalarInteger(arg1: ::std::os::raw::c_int) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_ScalarLogical(arg1: ::std::os::raw::c_int) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_ScalarRaw(arg1: Rbyte) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_ScalarReal(arg1: f64) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_ScalarString(arg1: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_xlength(arg1: SEXP) -> R_xlen_t;
}
unsafe extern "C" {
    pub fn Rf_protect(arg1: SEXP) -> SEXP;
}
unsafe extern "C" {
    pub fn Rf_unprotect(arg1: ::std::os::raw::c_int);
}
unsafe extern "C" {
    pub fn INTEGER_ELT(x: SEXP, i: R_xlen_t) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn REAL_ELT(x: SEXP, i: R_xlen_t) -> f64;
}
unsafe extern "C" {
    pub fn LOGICAL_ELT(x: SEXP, i: R_xlen_t) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn RAW_ELT(x: SEXP, i: R_xlen_t) -> Rbyte;
}
unsafe extern "C" {
    pub fn STRING_ELT(x: SEXP, i: R_xlen_t) -> SEXP;
}
unsafe extern "C" {
    pub fn SET_LOGICAL_ELT(x: SEXP, i: R_xlen_t, v: ::std::os::raw::c_int);
}
unsafe extern "C" {
    pub fn SET_INTEGER_ELT(x: SEXP, i: R_xlen_t, v: ::std::os::raw::c_int);
}
unsafe extern "C" {
    pub fn SET_REAL_ELT(x: SEXP, i: R_xlen_t, v: f64);
}
unsafe extern "C" {
    pub fn SET_RAW_ELT(x: SEXP, i: R_xlen_t, v: Rbyte);
}
unsafe extern "C" {
    pub fn Rf_rnorm(arg1: f64, arg2: f64) -> f64;
}

