approxNutation function
Fast approximation of nutation. Accuracy: 0.5″ in Δψ, 0.1″ in Δε.
Implementation
({double dPsi, double dEps}) approxNutation(double jde) {
final t = (jde - j2000) / 36525;
final omega = (125.04452 - 1934.136261 * t) * math.pi / 180;
final l = (280.4665 + 36000.7698 * t) * math.pi / 180;
final n = (218.3165 + 481267.8813 * t) * math.pi / 180;
final sOmega = math.sin(omega);
final cOmega = math.cos(omega);
final s2L = math.sin(2 * l);
final c2L = math.cos(2 * l);
final s2N = math.sin(2 * n);
final c2N = math.cos(2 * n);
final s2Omega = math.sin(2 * omega);
final c2Omega = math.cos(2 * omega);
return (
dPsi: secToRad(-17.2 * sOmega - 1.32 * s2L - 0.23 * s2N + 0.21 * s2Omega),
dEps: secToRad(9.2 * cOmega + 0.57 * c2L + 0.1 * c2N - 0.09 * c2Omega),
);
}