/* automatically generated by rust-bindgen 0.55.1 */

pub const ERFA_DPI: f64 = 3.141592653589793;
pub const ERFA_D2PI: f64 = 6.283185307179586;
pub const ERFA_DR2D: f64 = 57.29577951308232;
pub const ERFA_DR2AS: f64 = 206264.80624709636;
pub const ERFA_TURNAS: f64 = 1296000.0;
pub const ERFA_DTY: f64 = 365.242198781;
pub const ERFA_DAYSEC: f64 = 86400.0;
pub const ERFA_DJY: f64 = 365.25;
pub const ERFA_DJC: f64 = 36525.0;
pub const ERFA_DJM: f64 = 365250.0;
pub const ERFA_DJ00: f64 = 2451545.0;
pub const ERFA_DJM0: f64 = 2400000.5;
pub const ERFA_DJM00: f64 = 51544.5;
pub const ERFA_DJM77: f64 = 43144.0;
pub const ERFA_TTMTAI: f64 = 32.184;
pub const ERFA_CMPS: f64 = 299792458.0;
pub const ERFA_WGS84: u32 = 1;
pub const ERFA_GRS80: u32 = 2;
pub const ERFA_WGS72: u32 = 3;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct eraASTROM {
    pub pmt: f64,
    pub eb: [f64; 3usize],
    pub eh: [f64; 3usize],
    pub em: f64,
    pub v: [f64; 3usize],
    pub bm1: f64,
    pub bpn: [[f64; 3usize]; 3usize],
    pub along: f64,
    pub phi: f64,
    pub xpl: f64,
    pub ypl: f64,
    pub sphi: f64,
    pub cphi: f64,
    pub diurab: f64,
    pub eral: f64,
    pub refa: f64,
    pub refb: f64,
}
#[test]
fn bindgen_test_layout_eraASTROM() {
    assert_eq!(
        ::std::mem::size_of::<eraASTROM>(),
        248usize,
        concat!("Size of: ", stringify!(eraASTROM))
    );
    assert_eq!(
        ::std::mem::align_of::<eraASTROM>(),
        8usize,
        concat!("Alignment of ", stringify!(eraASTROM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).pmt as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(pmt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).eb as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(eb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).eh as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(eh)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).em as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(em)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).v as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(v)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).bm1 as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(bm1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).bpn as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(bpn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).along as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(along)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).phi as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(phi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).xpl as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(xpl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).ypl as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(ypl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).sphi as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(sphi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).cphi as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(cphi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).diurab as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(diurab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).eral as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(eral)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).refa as *const _ as usize },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(refa)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraASTROM>())).refb as *const _ as usize },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(eraASTROM),
            "::",
            stringify!(refb)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct eraLDBODY {
    pub bm: f64,
    pub dl: f64,
    pub pv: [[f64; 3usize]; 2usize],
}
#[test]
fn bindgen_test_layout_eraLDBODY() {
    assert_eq!(
        ::std::mem::size_of::<eraLDBODY>(),
        64usize,
        concat!("Size of: ", stringify!(eraLDBODY))
    );
    assert_eq!(
        ::std::mem::align_of::<eraLDBODY>(),
        8usize,
        concat!("Alignment of ", stringify!(eraLDBODY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraLDBODY>())).bm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(eraLDBODY),
            "::",
            stringify!(bm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraLDBODY>())).dl as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(eraLDBODY),
            "::",
            stringify!(dl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<eraLDBODY>())).pv as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(eraLDBODY),
            "::",
            stringify!(pv)
        )
    );
}
extern "C" {
    pub fn eraCal2jd(
        iy: ::std::os::raw::c_int,
        im: ::std::os::raw::c_int,
        id: ::std::os::raw::c_int,
        djm0: *mut f64,
        djm: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraEpb(dj1: f64, dj2: f64) -> f64;
}
extern "C" {
    pub fn eraEpb2jd(epb: f64, djm0: *mut f64, djm: *mut f64);
}
extern "C" {
    pub fn eraEpj(dj1: f64, dj2: f64) -> f64;
}
extern "C" {
    pub fn eraEpj2jd(epj: f64, djm0: *mut f64, djm: *mut f64);
}
extern "C" {
    pub fn eraJd2cal(
        dj1: f64,
        dj2: f64,
        iy: *mut ::std::os::raw::c_int,
        im: *mut ::std::os::raw::c_int,
        id: *mut ::std::os::raw::c_int,
        fd: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraJdcalf(
        ndp: ::std::os::raw::c_int,
        dj1: f64,
        dj2: f64,
        iymdf: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraAb(pnat: *mut f64, v: *mut f64, s: f64, bm1: f64, ppr: *mut f64);
}
extern "C" {
    pub fn eraApcg(
        date1: f64,
        date2: f64,
        ebpv: *mut [f64; 3usize],
        ehp: *mut f64,
        astrom: *mut eraASTROM,
    );
}
extern "C" {
    pub fn eraApcg13(date1: f64, date2: f64, astrom: *mut eraASTROM);
}
extern "C" {
    pub fn eraApci(
        date1: f64,
        date2: f64,
        ebpv: *mut [f64; 3usize],
        ehp: *mut f64,
        x: f64,
        y: f64,
        s: f64,
        astrom: *mut eraASTROM,
    );
}
extern "C" {
    pub fn eraApci13(date1: f64, date2: f64, astrom: *mut eraASTROM, eo: *mut f64);
}
extern "C" {
    pub fn eraApco(
        date1: f64,
        date2: f64,
        ebpv: *mut [f64; 3usize],
        ehp: *mut f64,
        x: f64,
        y: f64,
        s: f64,
        theta: f64,
        elong: f64,
        phi: f64,
        hm: f64,
        xp: f64,
        yp: f64,
        sp: f64,
        refa: f64,
        refb: f64,
        astrom: *mut eraASTROM,
    );
}
extern "C" {
    pub fn eraApco13(
        utc1: f64,
        utc2: f64,
        dut1: f64,
        elong: f64,
        phi: f64,
        hm: f64,
        xp: f64,
        yp: f64,
        phpa: f64,
        tc: f64,
        rh: f64,
        wl: f64,
        astrom: *mut eraASTROM,
        eo: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraApcs(
        date1: f64,
        date2: f64,
        pv: *mut [f64; 3usize],
        ebpv: *mut [f64; 3usize],
        ehp: *mut f64,
        astrom: *mut eraASTROM,
    );
}
extern "C" {
    pub fn eraApcs13(date1: f64, date2: f64, pv: *mut [f64; 3usize], astrom: *mut eraASTROM);
}
extern "C" {
    pub fn eraAper(theta: f64, astrom: *mut eraASTROM);
}
extern "C" {
    pub fn eraAper13(ut11: f64, ut12: f64, astrom: *mut eraASTROM);
}
extern "C" {
    pub fn eraApio(
        sp: f64,
        theta: f64,
        elong: f64,
        phi: f64,
        hm: f64,
        xp: f64,
        yp: f64,
        refa: f64,
        refb: f64,
        astrom: *mut eraASTROM,
    );
}
extern "C" {
    pub fn eraApio13(
        utc1: f64,
        utc2: f64,
        dut1: f64,
        elong: f64,
        phi: f64,
        hm: f64,
        xp: f64,
        yp: f64,
        phpa: f64,
        tc: f64,
        rh: f64,
        wl: f64,
        astrom: *mut eraASTROM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraAtci13(
        rc: f64,
        dc: f64,
        pr: f64,
        pd: f64,
        px: f64,
        rv: f64,
        date1: f64,
        date2: f64,
        ri: *mut f64,
        di: *mut f64,
        eo: *mut f64,
    );
}
extern "C" {
    pub fn eraAtciq(
        rc: f64,
        dc: f64,
        pr: f64,
        pd: f64,
        px: f64,
        rv: f64,
        astrom: *mut eraASTROM,
        ri: *mut f64,
        di: *mut f64,
    );
}
extern "C" {
    pub fn eraAtciqn(
        rc: f64,
        dc: f64,
        pr: f64,
        pd: f64,
        px: f64,
        rv: f64,
        astrom: *mut eraASTROM,
        n: ::std::os::raw::c_int,
        b: *mut eraLDBODY,
        ri: *mut f64,
        di: *mut f64,
    );
}
extern "C" {
    pub fn eraAtciqz(rc: f64, dc: f64, astrom: *mut eraASTROM, ri: *mut f64, di: *mut f64);
}
extern "C" {
    pub fn eraAtco13(
        rc: f64,
        dc: f64,
        pr: f64,
        pd: f64,
        px: f64,
        rv: f64,
        utc1: f64,
        utc2: f64,
        dut1: f64,
        elong: f64,
        phi: f64,
        hm: f64,
        xp: f64,
        yp: f64,
        phpa: f64,
        tc: f64,
        rh: f64,
        wl: f64,
        aob: *mut f64,
        zob: *mut f64,
        hob: *mut f64,
        dob: *mut f64,
        rob: *mut f64,
        eo: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraAtic13(
        ri: f64,
        di: f64,
        date1: f64,
        date2: f64,
        rc: *mut f64,
        dc: *mut f64,
        eo: *mut f64,
    );
}
extern "C" {
    pub fn eraAticq(ri: f64, di: f64, astrom: *mut eraASTROM, rc: *mut f64, dc: *mut f64);
}
extern "C" {
    pub fn eraAticqn(
        ri: f64,
        di: f64,
        astrom: *mut eraASTROM,
        n: ::std::os::raw::c_int,
        b: *mut eraLDBODY,
        rc: *mut f64,
        dc: *mut f64,
    );
}
extern "C" {
    pub fn eraAtio13(
        ri: f64,
        di: f64,
        utc1: f64,
        utc2: f64,
        dut1: f64,
        elong: f64,
        phi: f64,
        hm: f64,
        xp: f64,
        yp: f64,
        phpa: f64,
        tc: f64,
        rh: f64,
        wl: f64,
        aob: *mut f64,
        zob: *mut f64,
        hob: *mut f64,
        dob: *mut f64,
        rob: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraAtioq(
        ri: f64,
        di: f64,
        astrom: *mut eraASTROM,
        aob: *mut f64,
        zob: *mut f64,
        hob: *mut f64,
        dob: *mut f64,
        rob: *mut f64,
    );
}
extern "C" {
    pub fn eraAtoc13(
        type_: *const ::std::os::raw::c_char,
        ob1: f64,
        ob2: f64,
        utc1: f64,
        utc2: f64,
        dut1: f64,
        elong: f64,
        phi: f64,
        hm: f64,
        xp: f64,
        yp: f64,
        phpa: f64,
        tc: f64,
        rh: f64,
        wl: f64,
        rc: *mut f64,
        dc: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraAtoi13(
        type_: *const ::std::os::raw::c_char,
        ob1: f64,
        ob2: f64,
        utc1: f64,
        utc2: f64,
        dut1: f64,
        elong: f64,
        phi: f64,
        hm: f64,
        xp: f64,
        yp: f64,
        phpa: f64,
        tc: f64,
        rh: f64,
        wl: f64,
        ri: *mut f64,
        di: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraAtoiq(
        type_: *const ::std::os::raw::c_char,
        ob1: f64,
        ob2: f64,
        astrom: *mut eraASTROM,
        ri: *mut f64,
        di: *mut f64,
    );
}
extern "C" {
    pub fn eraLd(bm: f64, p: *mut f64, q: *mut f64, e: *mut f64, em: f64, dlim: f64, p1: *mut f64);
}
extern "C" {
    pub fn eraLdn(
        n: ::std::os::raw::c_int,
        b: *mut eraLDBODY,
        ob: *mut f64,
        sc: *mut f64,
        sn: *mut f64,
    );
}
extern "C" {
    pub fn eraLdsun(p: *mut f64, e: *mut f64, em: f64, p1: *mut f64);
}
extern "C" {
    pub fn eraPmpx(
        rc: f64,
        dc: f64,
        pr: f64,
        pd: f64,
        px: f64,
        rv: f64,
        pmt: f64,
        pob: *mut f64,
        pco: *mut f64,
    );
}
extern "C" {
    pub fn eraPmsafe(
        ra1: f64,
        dec1: f64,
        pmr1: f64,
        pmd1: f64,
        px1: f64,
        rv1: f64,
        ep1a: f64,
        ep1b: f64,
        ep2a: f64,
        ep2b: f64,
        ra2: *mut f64,
        dec2: *mut f64,
        pmr2: *mut f64,
        pmd2: *mut f64,
        px2: *mut f64,
        rv2: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraPvtob(
        elong: f64,
        phi: f64,
        height: f64,
        xp: f64,
        yp: f64,
        sp: f64,
        theta: f64,
        pv: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraRefco(phpa: f64, tc: f64, rh: f64, wl: f64, refa: *mut f64, refb: *mut f64);
}
extern "C" {
    pub fn eraEpv00(
        date1: f64,
        date2: f64,
        pvh: *mut [f64; 3usize],
        pvb: *mut [f64; 3usize],
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraPlan94(
        date1: f64,
        date2: f64,
        np: ::std::os::raw::c_int,
        pv: *mut [f64; 3usize],
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraFad03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFae03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFaf03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFaju03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFal03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFalp03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFama03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFame03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFane03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFaom03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFapa03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFasa03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFaur03(t: f64) -> f64;
}
extern "C" {
    pub fn eraFave03(t: f64) -> f64;
}
extern "C" {
    pub fn eraBi00(dpsibi: *mut f64, depsbi: *mut f64, dra: *mut f64);
}
extern "C" {
    pub fn eraBp00(
        date1: f64,
        date2: f64,
        rb: *mut [f64; 3usize],
        rp: *mut [f64; 3usize],
        rbp: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraBp06(
        date1: f64,
        date2: f64,
        rb: *mut [f64; 3usize],
        rp: *mut [f64; 3usize],
        rbp: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraBpn2xy(rbpn: *mut [f64; 3usize], x: *mut f64, y: *mut f64);
}
extern "C" {
    pub fn eraC2i00a(date1: f64, date2: f64, rc2i: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraC2i00b(date1: f64, date2: f64, rc2i: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraC2i06a(date1: f64, date2: f64, rc2i: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraC2ibpn(date1: f64, date2: f64, rbpn: *mut [f64; 3usize], rc2i: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraC2ixy(date1: f64, date2: f64, x: f64, y: f64, rc2i: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraC2ixys(x: f64, y: f64, s: f64, rc2i: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraC2t00a(
        tta: f64,
        ttb: f64,
        uta: f64,
        utb: f64,
        xp: f64,
        yp: f64,
        rc2t: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraC2t00b(
        tta: f64,
        ttb: f64,
        uta: f64,
        utb: f64,
        xp: f64,
        yp: f64,
        rc2t: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraC2t06a(
        tta: f64,
        ttb: f64,
        uta: f64,
        utb: f64,
        xp: f64,
        yp: f64,
        rc2t: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraC2tcio(
        rc2i: *mut [f64; 3usize],
        era: f64,
        rpom: *mut [f64; 3usize],
        rc2t: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraC2teqx(
        rbpn: *mut [f64; 3usize],
        gst: f64,
        rpom: *mut [f64; 3usize],
        rc2t: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraC2tpe(
        tta: f64,
        ttb: f64,
        uta: f64,
        utb: f64,
        dpsi: f64,
        deps: f64,
        xp: f64,
        yp: f64,
        rc2t: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraC2txy(
        tta: f64,
        ttb: f64,
        uta: f64,
        utb: f64,
        x: f64,
        y: f64,
        xp: f64,
        yp: f64,
        rc2t: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraEo06a(date1: f64, date2: f64) -> f64;
}
extern "C" {
    pub fn eraEors(rnpb: *mut [f64; 3usize], s: f64) -> f64;
}
extern "C" {
    pub fn eraFw2m(gamb: f64, phib: f64, psi: f64, eps: f64, r: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraFw2xy(gamb: f64, phib: f64, psi: f64, eps: f64, x: *mut f64, y: *mut f64);
}
extern "C" {
    pub fn eraLtp(epj: f64, rp: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraLtpb(epj: f64, rpb: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraLtpecl(epj: f64, vec: *mut f64);
}
extern "C" {
    pub fn eraLtpequ(epj: f64, veq: *mut f64);
}
extern "C" {
    pub fn eraNum00a(date1: f64, date2: f64, rmatn: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraNum00b(date1: f64, date2: f64, rmatn: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraNum06a(date1: f64, date2: f64, rmatn: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraNumat(epsa: f64, dpsi: f64, deps: f64, rmatn: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraNut00a(date1: f64, date2: f64, dpsi: *mut f64, deps: *mut f64);
}
extern "C" {
    pub fn eraNut00b(date1: f64, date2: f64, dpsi: *mut f64, deps: *mut f64);
}
extern "C" {
    pub fn eraNut06a(date1: f64, date2: f64, dpsi: *mut f64, deps: *mut f64);
}
extern "C" {
    pub fn eraNut80(date1: f64, date2: f64, dpsi: *mut f64, deps: *mut f64);
}
extern "C" {
    pub fn eraNutm80(date1: f64, date2: f64, rmatn: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraObl06(date1: f64, date2: f64) -> f64;
}
extern "C" {
    pub fn eraObl80(date1: f64, date2: f64) -> f64;
}
extern "C" {
    pub fn eraP06e(
        date1: f64,
        date2: f64,
        eps0: *mut f64,
        psia: *mut f64,
        oma: *mut f64,
        bpa: *mut f64,
        bqa: *mut f64,
        pia: *mut f64,
        bpia: *mut f64,
        epsa: *mut f64,
        chia: *mut f64,
        za: *mut f64,
        zetaa: *mut f64,
        thetaa: *mut f64,
        pa: *mut f64,
        gam: *mut f64,
        phi: *mut f64,
        psi: *mut f64,
    );
}
extern "C" {
    pub fn eraPb06(date1: f64, date2: f64, bzeta: *mut f64, bz: *mut f64, btheta: *mut f64);
}
extern "C" {
    pub fn eraPfw06(
        date1: f64,
        date2: f64,
        gamb: *mut f64,
        phib: *mut f64,
        psib: *mut f64,
        epsa: *mut f64,
    );
}
extern "C" {
    pub fn eraPmat00(date1: f64, date2: f64, rbp: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPmat06(date1: f64, date2: f64, rbp: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPmat76(date1: f64, date2: f64, rmatp: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPn00(
        date1: f64,
        date2: f64,
        dpsi: f64,
        deps: f64,
        epsa: *mut f64,
        rb: *mut [f64; 3usize],
        rp: *mut [f64; 3usize],
        rbp: *mut [f64; 3usize],
        rn: *mut [f64; 3usize],
        rbpn: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraPn00a(
        date1: f64,
        date2: f64,
        dpsi: *mut f64,
        deps: *mut f64,
        epsa: *mut f64,
        rb: *mut [f64; 3usize],
        rp: *mut [f64; 3usize],
        rbp: *mut [f64; 3usize],
        rn: *mut [f64; 3usize],
        rbpn: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraPn00b(
        date1: f64,
        date2: f64,
        dpsi: *mut f64,
        deps: *mut f64,
        epsa: *mut f64,
        rb: *mut [f64; 3usize],
        rp: *mut [f64; 3usize],
        rbp: *mut [f64; 3usize],
        rn: *mut [f64; 3usize],
        rbpn: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraPn06(
        date1: f64,
        date2: f64,
        dpsi: f64,
        deps: f64,
        epsa: *mut f64,
        rb: *mut [f64; 3usize],
        rp: *mut [f64; 3usize],
        rbp: *mut [f64; 3usize],
        rn: *mut [f64; 3usize],
        rbpn: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraPn06a(
        date1: f64,
        date2: f64,
        dpsi: *mut f64,
        deps: *mut f64,
        epsa: *mut f64,
        rb: *mut [f64; 3usize],
        rp: *mut [f64; 3usize],
        rbp: *mut [f64; 3usize],
        rn: *mut [f64; 3usize],
        rbpn: *mut [f64; 3usize],
    );
}
extern "C" {
    pub fn eraPnm00a(date1: f64, date2: f64, rbpn: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPnm00b(date1: f64, date2: f64, rbpn: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPnm06a(date1: f64, date2: f64, rnpb: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPnm80(date1: f64, date2: f64, rmatpn: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPom00(xp: f64, yp: f64, sp: f64, rpom: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPr00(date1: f64, date2: f64, dpsipr: *mut f64, depspr: *mut f64);
}
extern "C" {
    pub fn eraPrec76(
        date01: f64,
        date02: f64,
        date11: f64,
        date12: f64,
        zeta: *mut f64,
        z: *mut f64,
        theta: *mut f64,
    );
}
extern "C" {
    pub fn eraS00(date1: f64, date2: f64, x: f64, y: f64) -> f64;
}
extern "C" {
    pub fn eraS00a(date1: f64, date2: f64) -> f64;
}
extern "C" {
    pub fn eraS00b(date1: f64, date2: f64) -> f64;
}
extern "C" {
    pub fn eraS06(date1: f64, date2: f64, x: f64, y: f64) -> f64;
}
extern "C" {
    pub fn eraS06a(date1: f64, date2: f64) -> f64;
}
extern "C" {
    pub fn eraSp00(date1: f64, date2: f64) -> f64;
}
extern "C" {
    pub fn eraXy06(date1: f64, date2: f64, x: *mut f64, y: *mut f64);
}
extern "C" {
    pub fn eraXys00a(date1: f64, date2: f64, x: *mut f64, y: *mut f64, s: *mut f64);
}
extern "C" {
    pub fn eraXys00b(date1: f64, date2: f64, x: *mut f64, y: *mut f64, s: *mut f64);
}
extern "C" {
    pub fn eraXys06a(date1: f64, date2: f64, x: *mut f64, y: *mut f64, s: *mut f64);
}
extern "C" {
    pub fn eraEe00(date1: f64, date2: f64, epsa: f64, dpsi: f64) -> f64;
}
extern "C" {
    pub fn eraEe00a(date1: f64, date2: f64) -> f64;
}
extern "C" {
    pub fn eraEe00b(date1: f64, date2: f64) -> f64;
}
extern "C" {
    pub fn eraEe06a(date1: f64, date2: f64) -> f64;
}
extern "C" {
    pub fn eraEect00(date1: f64, date2: f64) -> f64;
}
extern "C" {
    pub fn eraEqeq94(date1: f64, date2: f64) -> f64;
}
extern "C" {
    pub fn eraEra00(dj1: f64, dj2: f64) -> f64;
}
extern "C" {
    pub fn eraGmst00(uta: f64, utb: f64, tta: f64, ttb: f64) -> f64;
}
extern "C" {
    pub fn eraGmst06(uta: f64, utb: f64, tta: f64, ttb: f64) -> f64;
}
extern "C" {
    pub fn eraGmst82(dj1: f64, dj2: f64) -> f64;
}
extern "C" {
    pub fn eraGst00a(uta: f64, utb: f64, tta: f64, ttb: f64) -> f64;
}
extern "C" {
    pub fn eraGst00b(uta: f64, utb: f64) -> f64;
}
extern "C" {
    pub fn eraGst06(uta: f64, utb: f64, tta: f64, ttb: f64, rnpb: *mut [f64; 3usize]) -> f64;
}
extern "C" {
    pub fn eraGst06a(uta: f64, utb: f64, tta: f64, ttb: f64) -> f64;
}
extern "C" {
    pub fn eraGst94(uta: f64, utb: f64) -> f64;
}
extern "C" {
    pub fn eraPvstar(
        pv: *mut [f64; 3usize],
        ra: *mut f64,
        dec: *mut f64,
        pmr: *mut f64,
        pmd: *mut f64,
        px: *mut f64,
        rv: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraStarpv(
        ra: f64,
        dec: f64,
        pmr: f64,
        pmd: f64,
        px: f64,
        rv: f64,
        pv: *mut [f64; 3usize],
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraFk425(
        r1950: f64,
        d1950: f64,
        dr1950: f64,
        dd1950: f64,
        p1950: f64,
        v1950: f64,
        r2000: *mut f64,
        d2000: *mut f64,
        dr2000: *mut f64,
        dd2000: *mut f64,
        p2000: *mut f64,
        v2000: *mut f64,
    );
}
extern "C" {
    pub fn eraFk45z(r1950: f64, d1950: f64, bepoch: f64, r2000: *mut f64, d2000: *mut f64);
}
extern "C" {
    pub fn eraFk524(
        r2000: f64,
        d2000: f64,
        dr2000: f64,
        dd2000: f64,
        p2000: f64,
        v2000: f64,
        r1950: *mut f64,
        d1950: *mut f64,
        dr1950: *mut f64,
        dd1950: *mut f64,
        p1950: *mut f64,
        v1950: *mut f64,
    );
}
extern "C" {
    pub fn eraFk52h(
        r5: f64,
        d5: f64,
        dr5: f64,
        dd5: f64,
        px5: f64,
        rv5: f64,
        rh: *mut f64,
        dh: *mut f64,
        drh: *mut f64,
        ddh: *mut f64,
        pxh: *mut f64,
        rvh: *mut f64,
    );
}
extern "C" {
    pub fn eraFk54z(
        r2000: f64,
        d2000: f64,
        bepoch: f64,
        r1950: *mut f64,
        d1950: *mut f64,
        dr1950: *mut f64,
        dd1950: *mut f64,
    );
}
extern "C" {
    pub fn eraFk5hip(r5h: *mut [f64; 3usize], s5h: *mut f64);
}
extern "C" {
    pub fn eraFk5hz(r5: f64, d5: f64, date1: f64, date2: f64, rh: *mut f64, dh: *mut f64);
}
extern "C" {
    pub fn eraH2fk5(
        rh: f64,
        dh: f64,
        drh: f64,
        ddh: f64,
        pxh: f64,
        rvh: f64,
        r5: *mut f64,
        d5: *mut f64,
        dr5: *mut f64,
        dd5: *mut f64,
        px5: *mut f64,
        rv5: *mut f64,
    );
}
extern "C" {
    pub fn eraHfk5z(
        rh: f64,
        dh: f64,
        date1: f64,
        date2: f64,
        r5: *mut f64,
        d5: *mut f64,
        dr5: *mut f64,
        dd5: *mut f64,
    );
}
extern "C" {
    pub fn eraStarpm(
        ra1: f64,
        dec1: f64,
        pmr1: f64,
        pmd1: f64,
        px1: f64,
        rv1: f64,
        ep1a: f64,
        ep1b: f64,
        ep2a: f64,
        ep2b: f64,
        ra2: *mut f64,
        dec2: *mut f64,
        pmr2: *mut f64,
        pmd2: *mut f64,
        px2: *mut f64,
        rv2: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraEceq06(date1: f64, date2: f64, dl: f64, db: f64, dr: *mut f64, dd: *mut f64);
}
extern "C" {
    pub fn eraEcm06(date1: f64, date2: f64, rm: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraEqec06(date1: f64, date2: f64, dr: f64, dd: f64, dl: *mut f64, db: *mut f64);
}
extern "C" {
    pub fn eraLteceq(epj: f64, dl: f64, db: f64, dr: *mut f64, dd: *mut f64);
}
extern "C" {
    pub fn eraLtecm(epj: f64, rm: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraLteqec(epj: f64, dr: f64, dd: f64, dl: *mut f64, db: *mut f64);
}
extern "C" {
    pub fn eraG2icrs(dl: f64, db: f64, dr: *mut f64, dd: *mut f64);
}
extern "C" {
    pub fn eraIcrs2g(dr: f64, dd: f64, dl: *mut f64, db: *mut f64);
}
extern "C" {
    pub fn eraEform(n: ::std::os::raw::c_int, a: *mut f64, f: *mut f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraGc2gd(
        n: ::std::os::raw::c_int,
        xyz: *mut f64,
        elong: *mut f64,
        phi: *mut f64,
        height: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraGc2gde(
        a: f64,
        f: f64,
        xyz: *mut f64,
        elong: *mut f64,
        phi: *mut f64,
        height: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraGd2gc(
        n: ::std::os::raw::c_int,
        elong: f64,
        phi: f64,
        height: f64,
        xyz: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraGd2gce(
        a: f64,
        f: f64,
        elong: f64,
        phi: f64,
        height: f64,
        xyz: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraD2dtf(
        scale: *const ::std::os::raw::c_char,
        ndp: ::std::os::raw::c_int,
        d1: f64,
        d2: f64,
        iy: *mut ::std::os::raw::c_int,
        im: *mut ::std::os::raw::c_int,
        id: *mut ::std::os::raw::c_int,
        ihmsf: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraDat(
        iy: ::std::os::raw::c_int,
        im: ::std::os::raw::c_int,
        id: ::std::os::raw::c_int,
        fd: f64,
        deltat: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraDtdb(date1: f64, date2: f64, ut: f64, elong: f64, u: f64, v: f64) -> f64;
}
extern "C" {
    pub fn eraDtf2d(
        scale: *const ::std::os::raw::c_char,
        iy: ::std::os::raw::c_int,
        im: ::std::os::raw::c_int,
        id: ::std::os::raw::c_int,
        ihr: ::std::os::raw::c_int,
        imn: ::std::os::raw::c_int,
        sec: f64,
        d1: *mut f64,
        d2: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTaitt(tai1: f64, tai2: f64, tt1: *mut f64, tt2: *mut f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTaiut1(
        tai1: f64,
        tai2: f64,
        dta: f64,
        ut11: *mut f64,
        ut12: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTaiutc(tai1: f64, tai2: f64, utc1: *mut f64, utc2: *mut f64)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTcbtdb(tcb1: f64, tcb2: f64, tdb1: *mut f64, tdb2: *mut f64)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTcgtt(tcg1: f64, tcg2: f64, tt1: *mut f64, tt2: *mut f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTdbtcb(tdb1: f64, tdb2: f64, tcb1: *mut f64, tcb2: *mut f64)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTdbtt(
        tdb1: f64,
        tdb2: f64,
        dtr: f64,
        tt1: *mut f64,
        tt2: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTttai(tt1: f64, tt2: f64, tai1: *mut f64, tai2: *mut f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTttcg(tt1: f64, tt2: f64, tcg1: *mut f64, tcg2: *mut f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTttdb(
        tt1: f64,
        tt2: f64,
        dtr: f64,
        tdb1: *mut f64,
        tdb2: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTtut1(
        tt1: f64,
        tt2: f64,
        dt: f64,
        ut11: *mut f64,
        ut12: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraUt1tai(
        ut11: f64,
        ut12: f64,
        dta: f64,
        tai1: *mut f64,
        tai2: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraUt1tt(
        ut11: f64,
        ut12: f64,
        dt: f64,
        tt1: *mut f64,
        tt2: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraUt1utc(
        ut11: f64,
        ut12: f64,
        dut1: f64,
        utc1: *mut f64,
        utc2: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraUtctai(utc1: f64, utc2: f64, tai1: *mut f64, tai2: *mut f64)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraUtcut1(
        utc1: f64,
        utc2: f64,
        dut1: f64,
        ut11: *mut f64,
        ut12: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraAe2hd(az: f64, el: f64, phi: f64, ha: *mut f64, dec: *mut f64);
}
extern "C" {
    pub fn eraHd2ae(ha: f64, dec: f64, phi: f64, az: *mut f64, el: *mut f64);
}
extern "C" {
    pub fn eraHd2pa(ha: f64, dec: f64, phi: f64) -> f64;
}
extern "C" {
    pub fn eraTpors(
        xi: f64,
        eta: f64,
        a: f64,
        b: f64,
        a01: *mut f64,
        b01: *mut f64,
        a02: *mut f64,
        b02: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTporv(
        xi: f64,
        eta: f64,
        v: *mut f64,
        v01: *mut f64,
        v02: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTpsts(xi: f64, eta: f64, a0: f64, b0: f64, a: *mut f64, b: *mut f64);
}
extern "C" {
    pub fn eraTpstv(xi: f64, eta: f64, v0: *mut f64, v: *mut f64);
}
extern "C" {
    pub fn eraTpxes(
        a: f64,
        b: f64,
        a0: f64,
        b0: f64,
        xi: *mut f64,
        eta: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTpxev(
        v: *mut f64,
        v0: *mut f64,
        xi: *mut f64,
        eta: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraA2af(
        ndp: ::std::os::raw::c_int,
        angle: f64,
        sign: *mut ::std::os::raw::c_char,
        idmsf: *mut ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn eraA2tf(
        ndp: ::std::os::raw::c_int,
        angle: f64,
        sign: *mut ::std::os::raw::c_char,
        ihmsf: *mut ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn eraAf2a(
        s: ::std::os::raw::c_char,
        ideg: ::std::os::raw::c_int,
        iamin: ::std::os::raw::c_int,
        asec: f64,
        rad: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraAnp(a: f64) -> f64;
}
extern "C" {
    pub fn eraAnpm(a: f64) -> f64;
}
extern "C" {
    pub fn eraD2tf(
        ndp: ::std::os::raw::c_int,
        days: f64,
        sign: *mut ::std::os::raw::c_char,
        ihmsf: *mut ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn eraTf2a(
        s: ::std::os::raw::c_char,
        ihour: ::std::os::raw::c_int,
        imin: ::std::os::raw::c_int,
        sec: f64,
        rad: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraTf2d(
        s: ::std::os::raw::c_char,
        ihour: ::std::os::raw::c_int,
        imin: ::std::os::raw::c_int,
        sec: f64,
        days: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn eraRx(phi: f64, r: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraRy(theta: f64, r: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraRz(psi: f64, r: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraCp(p: *mut f64, c: *mut f64);
}
extern "C" {
    pub fn eraCpv(pv: *mut [f64; 3usize], c: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraCr(r: *mut [f64; 3usize], c: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraP2pv(p: *mut f64, pv: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPv2p(pv: *mut [f64; 3usize], p: *mut f64);
}
extern "C" {
    pub fn eraIr(r: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraZp(p: *mut f64);
}
extern "C" {
    pub fn eraZpv(pv: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraZr(r: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraRxr(a: *mut [f64; 3usize], b: *mut [f64; 3usize], atb: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraTr(r: *mut [f64; 3usize], rt: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraRxp(r: *mut [f64; 3usize], p: *mut f64, rp: *mut f64);
}
extern "C" {
    pub fn eraRxpv(r: *mut [f64; 3usize], pv: *mut [f64; 3usize], rpv: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraTrxp(r: *mut [f64; 3usize], p: *mut f64, trp: *mut f64);
}
extern "C" {
    pub fn eraTrxpv(r: *mut [f64; 3usize], pv: *mut [f64; 3usize], trpv: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraRm2v(r: *mut [f64; 3usize], w: *mut f64);
}
extern "C" {
    pub fn eraRv2m(w: *mut f64, r: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPap(a: *mut f64, b: *mut f64) -> f64;
}
extern "C" {
    pub fn eraPas(al: f64, ap: f64, bl: f64, bp: f64) -> f64;
}
extern "C" {
    pub fn eraSepp(a: *mut f64, b: *mut f64) -> f64;
}
extern "C" {
    pub fn eraSeps(al: f64, ap: f64, bl: f64, bp: f64) -> f64;
}
extern "C" {
    pub fn eraC2s(p: *mut f64, theta: *mut f64, phi: *mut f64);
}
extern "C" {
    pub fn eraP2s(p: *mut f64, theta: *mut f64, phi: *mut f64, r: *mut f64);
}
extern "C" {
    pub fn eraPv2s(
        pv: *mut [f64; 3usize],
        theta: *mut f64,
        phi: *mut f64,
        r: *mut f64,
        td: *mut f64,
        pd: *mut f64,
        rd: *mut f64,
    );
}
extern "C" {
    pub fn eraS2c(theta: f64, phi: f64, c: *mut f64);
}
extern "C" {
    pub fn eraS2p(theta: f64, phi: f64, r: f64, p: *mut f64);
}
extern "C" {
    pub fn eraS2pv(theta: f64, phi: f64, r: f64, td: f64, pd: f64, rd: f64, pv: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPdp(a: *mut f64, b: *mut f64) -> f64;
}
extern "C" {
    pub fn eraPm(p: *mut f64) -> f64;
}
extern "C" {
    pub fn eraPmp(a: *mut f64, b: *mut f64, amb: *mut f64);
}
extern "C" {
    pub fn eraPn(p: *mut f64, r: *mut f64, u: *mut f64);
}
extern "C" {
    pub fn eraPpp(a: *mut f64, b: *mut f64, apb: *mut f64);
}
extern "C" {
    pub fn eraPpsp(a: *mut f64, s: f64, b: *mut f64, apsb: *mut f64);
}
extern "C" {
    pub fn eraPvdpv(a: *mut [f64; 3usize], b: *mut [f64; 3usize], adb: *mut f64);
}
extern "C" {
    pub fn eraPvm(pv: *mut [f64; 3usize], r: *mut f64, s: *mut f64);
}
extern "C" {
    pub fn eraPvmpv(a: *mut [f64; 3usize], b: *mut [f64; 3usize], amb: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPvppv(a: *mut [f64; 3usize], b: *mut [f64; 3usize], apb: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPvu(dt: f64, pv: *mut [f64; 3usize], upv: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPvup(dt: f64, pv: *mut [f64; 3usize], p: *mut f64);
}
extern "C" {
    pub fn eraPvxpv(a: *mut [f64; 3usize], b: *mut [f64; 3usize], axb: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraPxp(a: *mut f64, b: *mut f64, axb: *mut f64);
}
extern "C" {
    pub fn eraS2xpv(s1: f64, s2: f64, pv: *mut [f64; 3usize], spv: *mut [f64; 3usize]);
}
extern "C" {
    pub fn eraSxp(s: f64, p: *mut f64, sp: *mut f64);
}
extern "C" {
    pub fn eraSxpv(s: f64, pv: *mut [f64; 3usize], spv: *mut [f64; 3usize]);
}
pub const ERFA_DD2R: f64 = 1.745329251994329576923691e-2;
pub const ERFA_DAS2R: f64 = 4.848136811095359935899141e-6;
pub const ERFA_DS2R: f64 = 7.272205216643039903848712e-5;
pub const ERFA_DMAS2R: f64 = ERFA_DAS2R / 1e3;
pub const ERFA_DAU: f64 = 149597870.7e3;
pub const ERFA_ELG: f64 = 6.969290134e-10;
pub const ERFA_ELB: f64 = 1.550519768e-8;
pub const ERFA_TDB0: f64 = -6.55e-5;
pub const ERFA_SRS: f64 = 1.97412574336e-8;
