Skip to main content

celestial_time/transforms/nutation/
iau2000a.rs

1use super::{NutationModel, NutationResult};
2use crate::{TimeError, TimeResult, TT};
3use celestial_core::nutation::NutationIAU2000A as CoreCalculator;
4
5pub fn calculate(tt: &TT) -> TimeResult<NutationResult> {
6    let jd = tt.to_julian_date();
7
8    let calculator = CoreCalculator::new();
9    let core_result = calculator.compute(jd.jd1(), jd.jd2()).map_err(|_| {
10        TimeError::CalculationError("IAU 2000A nutation calculation failed".to_string())
11    })?;
12
13    Ok(NutationResult::new(core_result, NutationModel::IAU2000A))
14}