eSmart function
Simplified equation of time (lower accuracy, no VSOP87 needed).
Formula 28.3, p. 185. Returns the equation of time in radians.
Implementation
double eSmart(double jde) {
final t = j2000Century(jde);
final tau = t * 0.1;
final eps = nut.meanObliquity(jde);
final y = math.tan(eps / 2);
final y2 = y * y;
// Mean longitude and anomaly from low-accuracy solar.
final meanLon = toRad(l0(tau));
final e = horner(t, [0.016708634, -0.000042037, -0.0000001267]);
final m = toRad(horner(t, [357.52911, 35999.05029, -0.0001537]));
// (28.3)
final eot = y2 * math.sin(2 * meanLon) -
2 * e * math.sin(m) +
4 * e * y2 * math.sin(m) * math.cos(2 * meanLon) -
0.5 * y2 * y2 * math.sin(4 * meanLon) -
1.25 * e * e * math.sin(2 * m);
return eot;
}