/rust/registry/src/index.crates.io-1949cf8c6b5b557f/sofars-0.6.1/src/erst/gst94.rs
Line | Count | Source |
1 | | use crate::vm::anp; |
2 | | |
3 | | use super::{eqeq94, gmst82}; |
4 | | |
5 | | /// Greenwich apparent sidereal time, IAU 1994 |
6 | | /// |
7 | | /// Greenwich apparent sidereal time (consistent with IAU 1982/94 |
8 | | /// resolutions). |
9 | | /// |
10 | | /// This function is part of the International Astronomical Union's |
11 | | /// SOFA (Standards of Fundamental Astronomy) software collection. |
12 | | /// |
13 | | /// Status: support function. |
14 | | /// |
15 | | /// Given: |
16 | | /// ``` |
17 | | /// uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) |
18 | | /// ``` |
19 | | /// Returned (function value): |
20 | | /// ``` |
21 | | /// double Greenwich apparent sidereal time (radians) |
22 | | /// ``` |
23 | | /// Notes: |
24 | | /// |
25 | | /// 1) The UT1 date uta+utb is a Julian Date, apportioned in any |
26 | | /// convenient way between the argument pair. For example, |
27 | | /// JD(UT1)=2450123.7 could be expressed in any of these ways, among |
28 | | /// others: |
29 | | /// ``` |
30 | | /// uta utb |
31 | | /// |
32 | | /// 2450123.7 0.0 (JD method) |
33 | | /// 2451545.0 -1421.3 (J2000 method) |
34 | | /// 2400000.5 50123.2 (MJD method) |
35 | | /// 2450123.5 0.2 (date & time method) |
36 | | /// ``` |
37 | | /// The JD method is the most natural and convenient to use in cases |
38 | | /// where the loss of several decimal digits of resolution is |
39 | | /// acceptable. The J2000 and MJD methods are good compromises |
40 | | /// between resolution and convenience. For UT, the date & time |
41 | | /// method is best matched to the algorithm that is used by the Earth |
42 | | /// Rotation Angle function, called internally: maximum precision is |
43 | | /// delivered when the uta argument is for 0hrs UT1 on the day in |
44 | | /// question and the utb argument lies in the range 0 to 1, or vice |
45 | | /// versa. |
46 | | /// |
47 | | /// 2) The result is compatible with the IAU 1982 and 1994 resolutions, |
48 | | /// except that accuracy has been compromised for the sake of |
49 | | /// convenience in that UT is used instead of TDB (or TT) to compute |
50 | | /// the equation of the equinoxes. |
51 | | /// |
52 | | /// 3) This GAST must be used only in conjunction with contemporaneous |
53 | | /// IAU standards such as 1976 precession, 1980 obliquity and 1982 |
54 | | /// nutation. It is not compatible with the IAU 2000 resolutions. |
55 | | /// |
56 | | /// 4) The result is returned in the range 0 to 2pi. |
57 | | /// |
58 | | /// Called: |
59 | | /// ``` |
60 | | /// iauGmst82 Greenwich mean sidereal time, IAU 1982 |
61 | | /// iauEqeq94 equation of the equinoxes, IAU 1994 |
62 | | /// iauAnp normalize angle into range 0 to 2pi |
63 | | /// ``` |
64 | | /// References: |
65 | | /// |
66 | | /// Explanatory Supplement to the Astronomical Almanac, |
67 | | /// P. Kenneth Seidelmann (ed), University Science Books (1992) |
68 | | /// |
69 | | /// IAU Resolution C7, Recommendation 3 (1994) |
70 | | /// |
71 | 0 | pub fn gst94(uta: f64, utb: f64) -> f64 { |
72 | 0 | let gmst82 = gmst82(uta, utb); |
73 | 0 | let eqeq94 = eqeq94(uta, utb); |
74 | 0 | let gst = anp(gmst82 + eqeq94); |
75 | | |
76 | 0 | gst |
77 | 0 | } |