1use crate::H1_safe::{ERFA_DJ00, ERFA_DJM0, ERFA_DJM00, ERFA_DJY, ERFA_DTY};
8
9pub type ErfaResult<T> = Result<T, ()>;
10
11pub fn eraEpb_safe(dj1: f64, dj2: f64) -> ErfaResult<f64> {
13 const D1900: f64 = 36524.68648;
14 let epb = 1900.0 + ((dj1 - ERFA_DJ00) + (dj2 + D1900)) / ERFA_DTY;
15 Ok(epb)
16}
17
18pub fn eraEpb2jd_safe(epb: f64) -> ErfaResult<(f64, f64)> {
20 let djm0 = ERFA_DJM0;
21 let djm = 15_019.813_52 + (epb - 1900.0) * ERFA_DTY;
22 Ok((djm0, djm))
23}
24
25pub fn eraEpj_safe(dj1: f64, dj2: f64) -> ErfaResult<f64> {
27 let epj = 2000.0 + ((dj1 - ERFA_DJ00) + dj2) / ERFA_DJY;
28 Ok(epj)
29}
30
31pub fn eraEpj2jd_safe(epj: f64) -> ErfaResult<(f64, f64)> {
33 let djm0 = ERFA_DJM0;
34 let djm = ERFA_DJM00 + (epj - 2000.0) * ERFA_DJY;
35 Ok((djm0, djm))
36}