pub type optimgr = unsafe extern "C" fn(arg1: c_int, arg2: *mut c_double, arg3: *mut c_double, arg4: *mut c_void);