#[repr(C)]
pub struct _generic_N_Vector_Ops {
pub nvgetvectorid: Option<unsafe extern "C" fn(arg1: N_Vector) -> N_Vector_ID>,
pub nvclone: Option<unsafe extern "C" fn(arg1: N_Vector) -> N_Vector>,
pub nvcloneempty: Option<unsafe extern "C" fn(arg1: N_Vector) -> N_Vector>,
pub nvdestroy: Option<unsafe extern "C" fn(arg1: N_Vector)>,
pub nvspace: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: *mut sunindextype, arg3: *mut sunindextype)>,
pub nvgetarraypointer: Option<unsafe extern "C" fn(arg1: N_Vector) -> *mut realtype>,
pub nvsetarraypointer: Option<unsafe extern "C" fn(arg1: *mut realtype, arg2: N_Vector)>,
pub nvlinearsum: Option<unsafe extern "C" fn(arg1: realtype, arg2: N_Vector, arg3: realtype, arg4: N_Vector, arg5: N_Vector)>,
pub nvconst: Option<unsafe extern "C" fn(arg1: realtype, arg2: N_Vector)>,
pub nvprod: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: N_Vector, arg3: N_Vector)>,
pub nvdiv: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: N_Vector, arg3: N_Vector)>,
pub nvscale: Option<unsafe extern "C" fn(arg1: realtype, arg2: N_Vector, arg3: N_Vector)>,
pub nvabs: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: N_Vector)>,
pub nvinv: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: N_Vector)>,
pub nvaddconst: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: realtype, arg3: N_Vector)>,
pub nvdotprod: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: N_Vector) -> realtype>,
pub nvmaxnorm: Option<unsafe extern "C" fn(arg1: N_Vector) -> realtype>,
pub nvwrmsnorm: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: N_Vector) -> realtype>,
pub nvwrmsnormmask: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: N_Vector, arg3: N_Vector) -> realtype>,
pub nvmin: Option<unsafe extern "C" fn(arg1: N_Vector) -> realtype>,
pub nvwl2norm: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: N_Vector) -> realtype>,
pub nvl1norm: Option<unsafe extern "C" fn(arg1: N_Vector) -> realtype>,
pub nvcompare: Option<unsafe extern "C" fn(arg1: realtype, arg2: N_Vector, arg3: N_Vector)>,
pub nvinvtest: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: N_Vector) -> c_int>,
pub nvconstrmask: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: N_Vector, arg3: N_Vector) -> c_int>,
pub nvminquotient: Option<unsafe extern "C" fn(arg1: N_Vector, arg2: N_Vector) -> realtype>,
pub nvlinearcombination: Option<unsafe extern "C" fn(arg1: c_int, arg2: *mut realtype, arg3: *mut N_Vector, arg4: N_Vector) -> c_int>,
pub nvscaleaddmulti: Option<unsafe extern "C" fn(arg1: c_int, arg2: *mut realtype, arg3: N_Vector, arg4: *mut N_Vector, arg5: *mut N_Vector) -> c_int>,
pub nvdotprodmulti: Option<unsafe extern "C" fn(arg1: c_int, arg2: N_Vector, arg3: *mut N_Vector, arg4: *mut realtype) -> c_int>,
pub nvlinearsumvectorarray: Option<unsafe extern "C" fn(arg1: c_int, arg2: realtype, arg3: *mut N_Vector, arg4: realtype, arg5: *mut N_Vector, arg6: *mut N_Vector) -> c_int>,
pub nvscalevectorarray: Option<unsafe extern "C" fn(arg1: c_int, arg2: *mut realtype, arg3: *mut N_Vector, arg4: *mut N_Vector) -> c_int>,
pub nvconstvectorarray: Option<unsafe extern "C" fn(arg1: c_int, arg2: realtype, arg3: *mut N_Vector) -> c_int>,
pub nvwrmsnormvectorarray: Option<unsafe extern "C" fn(arg1: c_int, arg2: *mut N_Vector, arg3: *mut N_Vector, arg4: *mut realtype) -> c_int>,
pub nvwrmsnormmaskvectorarray: Option<unsafe extern "C" fn(arg1: c_int, arg2: *mut N_Vector, arg3: *mut N_Vector, arg4: N_Vector, arg5: *mut realtype) -> c_int>,
pub nvscaleaddmultivectorarray: Option<unsafe extern "C" fn(arg1: c_int, arg2: c_int, arg3: *mut realtype, arg4: *mut N_Vector, arg5: *mut *mut N_Vector, arg6: *mut *mut N_Vector) -> c_int>,
pub nvlinearcombinationvectorarray: Option<unsafe extern "C" fn(arg1: c_int, arg2: c_int, arg3: *mut realtype, arg4: *mut *mut N_Vector, arg5: *mut N_Vector) -> c_int>,
}