func ExampleMeanAnomaly() { // Example 25.a, p. 165. T := base.J2000Century(julian.CalendarGregorianToJD(1992, 10, 13)) fmt.Printf("%.5f\n", solar.MeanAnomaly(T)*180/math.Pi) // Output: // -2241.00603 }
// ESmart computes the "equation of time" for the given JDE. // // Result is equation of time as an hour angle. // // Result is less accurate that E() but the function has the advantage // of not requiring the V87Planet object. func ESmart(jde float64) unit.HourAngle { ε := nutation.MeanObliquity(jde) t := ε.Mul(.5).Tan() y := t * t T := base.J2000Century(jde) L0 := l0(T * .1) e := solar.Eccentricity(T) M := solar.MeanAnomaly(T) s2L0, c2L0 := L0.Mul(2).Sincos() sM := M.Sin() // (28.3) p. 185, with double angle identity return unit.HourAngle(y*s2L0 - 2*e*sM + 4*e*y*sM*c2L0 - y*y*s2L0*c2L0 - 1.25*e*e*M.Mul(2).Sin()) }
// ESmart computes the "equation of time" for the given JDE. // // Result is equation of time as an hour angle in radians. // // Result is less accurate that E() but the function has the advantage // of not requiring the V87Planet object. func ESmart(jde float64) float64 { ε := nutation.MeanObliquity(jde) t := math.Tan(ε * .5) y := t * t T := base.J2000Century(jde) L0 := l0(T * .1) e := solar.Eccentricity(T) M := solar.MeanAnomaly(T) s2L0, c2L0 := math.Sincos(2 * L0) sM := math.Sin(M) // (28.3) p. 185 return y*s2L0 - 2*e*sM + 4*e*y*sM*c2L0 - y*y*s2L0*c2L0 - 1.25*e*e*math.Sin(2*M) }