celes 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +32 -0
  4. data/README.md +179 -0
  5. data/Rakefile +1 -0
  6. data/celes.gemspec +22 -0
  7. data/ext/celes/a2af.c +120 -0
  8. data/ext/celes/a2tf.c +116 -0
  9. data/ext/celes/af2a.c +107 -0
  10. data/ext/celes/anp.c +82 -0
  11. data/ext/celes/anpm.c +82 -0
  12. data/ext/celes/bi00.c +116 -0
  13. data/ext/celes/bp00.c +173 -0
  14. data/ext/celes/bp06.c +136 -0
  15. data/ext/celes/bpn2xy.c +100 -0
  16. data/ext/celes/c2i00a.c +139 -0
  17. data/ext/celes/c2i00b.c +139 -0
  18. data/ext/celes/c2i06a.c +136 -0
  19. data/ext/celes/c2ibpn.c +142 -0
  20. data/ext/celes/c2ixy.c +131 -0
  21. data/ext/celes/c2ixys.c +123 -0
  22. data/ext/celes/c2s.c +96 -0
  23. data/ext/celes/c2t00a.c +154 -0
  24. data/ext/celes/c2t00b.c +150 -0
  25. data/ext/celes/c2t06a.c +152 -0
  26. data/ext/celes/c2tcio.c +122 -0
  27. data/ext/celes/c2teqx.c +122 -0
  28. data/ext/celes/c2tpe.c +167 -0
  29. data/ext/celes/c2txy.c +159 -0
  30. data/ext/celes/cal2jd.c +139 -0
  31. data/ext/celes/celes_core.c +2522 -0
  32. data/ext/celes/cp.c +80 -0
  33. data/ext/celes/cpv.c +82 -0
  34. data/ext/celes/cr.c +83 -0
  35. data/ext/celes/d2dtf.c +206 -0
  36. data/ext/celes/d2tf.c +160 -0
  37. data/ext/celes/dat.c +289 -0
  38. data/ext/celes/depend +25 -0
  39. data/ext/celes/dtdb.c +1213 -0
  40. data/ext/celes/dtf2d.c +196 -0
  41. data/ext/celes/ee00.c +128 -0
  42. data/ext/celes/ee00a.c +135 -0
  43. data/ext/celes/ee00b.c +141 -0
  44. data/ext/celes/ee06a.c +122 -0
  45. data/ext/celes/eect00.c +282 -0
  46. data/ext/celes/eform.c +147 -0
  47. data/ext/celes/eo06a.c +131 -0
  48. data/ext/celes/eors.c +108 -0
  49. data/ext/celes/epb.c +96 -0
  50. data/ext/celes/epb2jd.c +91 -0
  51. data/ext/celes/epj.c +93 -0
  52. data/ext/celes/epj2jd.c +91 -0
  53. data/ext/celes/epv00.c +2589 -0
  54. data/ext/celes/eqeq94.c +131 -0
  55. data/ext/celes/era00.c +136 -0
  56. data/ext/celes/extconf.rb +4 -0
  57. data/ext/celes/fad03.c +103 -0
  58. data/ext/celes/fae03.c +102 -0
  59. data/ext/celes/faf03.c +106 -0
  60. data/ext/celes/faju03.c +102 -0
  61. data/ext/celes/fal03.c +103 -0
  62. data/ext/celes/falp03.c +103 -0
  63. data/ext/celes/fama03.c +102 -0
  64. data/ext/celes/fame03.c +102 -0
  65. data/ext/celes/fane03.c +99 -0
  66. data/ext/celes/faom03.c +104 -0
  67. data/ext/celes/fapa03.c +103 -0
  68. data/ext/celes/fasa03.c +102 -0
  69. data/ext/celes/faur03.c +99 -0
  70. data/ext/celes/fave03.c +102 -0
  71. data/ext/celes/fk52h.c +143 -0
  72. data/ext/celes/fk5hip.c +126 -0
  73. data/ext/celes/fk5hz.c +160 -0
  74. data/ext/celes/fw2m.c +134 -0
  75. data/ext/celes/fw2xy.c +120 -0
  76. data/ext/celes/gc2gd.c +134 -0
  77. data/ext/celes/gc2gde.c +200 -0
  78. data/ext/celes/gd2gc.c +134 -0
  79. data/ext/celes/gd2gce.c +138 -0
  80. data/ext/celes/gmst00.c +145 -0
  81. data/ext/celes/gmst06.c +136 -0
  82. data/ext/celes/gmst82.c +151 -0
  83. data/ext/celes/gst00a.c +138 -0
  84. data/ext/celes/gst00b.c +146 -0
  85. data/ext/celes/gst06.c +140 -0
  86. data/ext/celes/gst06a.c +131 -0
  87. data/ext/celes/gst94.c +131 -0
  88. data/ext/celes/h2fk5.c +148 -0
  89. data/ext/celes/hfk5z.c +175 -0
  90. data/ext/celes/ir.c +83 -0
  91. data/ext/celes/jd2cal.c +155 -0
  92. data/ext/celes/jdcalf.c +161 -0
  93. data/ext/celes/num00a.c +121 -0
  94. data/ext/celes/num00b.c +121 -0
  95. data/ext/celes/num06a.c +125 -0
  96. data/ext/celes/numat.c +109 -0
  97. data/ext/celes/nut00a.c +2047 -0
  98. data/ext/celes/nut00b.c +372 -0
  99. data/ext/celes/nut06a.c +153 -0
  100. data/ext/celes/nut80.c +325 -0
  101. data/ext/celes/nutm80.c +117 -0
  102. data/ext/celes/obl06.c +118 -0
  103. data/ext/celes/obl80.c +118 -0
  104. data/ext/celes/p06e.c +321 -0
  105. data/ext/celes/p2pv.c +83 -0
  106. data/ext/celes/p2s.c +91 -0
  107. data/ext/celes/pap.c +139 -0
  108. data/ext/celes/pas.c +96 -0
  109. data/ext/celes/pb06.c +144 -0
  110. data/ext/celes/pdp.c +84 -0
  111. data/ext/celes/pfw06.c +165 -0
  112. data/ext/celes/plan94.c +514 -0
  113. data/ext/celes/pm.c +83 -0
  114. data/ext/celes/pmat00.c +118 -0
  115. data/ext/celes/pmat06.c +122 -0
  116. data/ext/celes/pmat76.c +141 -0
  117. data/ext/celes/pmp.c +85 -0
  118. data/ext/celes/pn.c +109 -0
  119. data/ext/celes/pn00.c +177 -0
  120. data/ext/celes/pn00a.c +162 -0
  121. data/ext/celes/pn00b.c +162 -0
  122. data/ext/celes/pn06.c +187 -0
  123. data/ext/celes/pn06a.c +152 -0
  124. data/ext/celes/pnm00a.c +121 -0
  125. data/ext/celes/pnm00b.c +121 -0
  126. data/ext/celes/pnm06a.c +124 -0
  127. data/ext/celes/pnm80.c +126 -0
  128. data/ext/celes/pom00.c +115 -0
  129. data/ext/celes/ppp.c +85 -0
  130. data/ext/celes/ppsp.c +94 -0
  131. data/ext/celes/pr00.c +142 -0
  132. data/ext/celes/prec76.c +148 -0
  133. data/ext/celes/pv2p.c +81 -0
  134. data/ext/celes/pv2s.c +144 -0
  135. data/ext/celes/pvdpv.c +102 -0
  136. data/ext/celes/pvm.c +86 -0
  137. data/ext/celes/pvmpv.c +87 -0
  138. data/ext/celes/pvppv.c +87 -0
  139. data/ext/celes/pvstar.c +207 -0
  140. data/ext/celes/pvu.c +93 -0
  141. data/ext/celes/pvup.c +88 -0
  142. data/ext/celes/pvxpv.c +107 -0
  143. data/ext/celes/pxp.c +94 -0
  144. data/ext/celes/rm2v.c +111 -0
  145. data/ext/celes/rv2m.c +118 -0
  146. data/ext/celes/rx.c +110 -0
  147. data/ext/celes/rxp.c +99 -0
  148. data/ext/celes/rxpv.c +86 -0
  149. data/ext/celes/rxr.c +99 -0
  150. data/ext/celes/ry.c +110 -0
  151. data/ext/celes/rz.c +110 -0
  152. data/ext/celes/s00.c +371 -0
  153. data/ext/celes/s00a.c +143 -0
  154. data/ext/celes/s00b.c +143 -0
  155. data/ext/celes/s06.c +368 -0
  156. data/ext/celes/s06a.c +145 -0
  157. data/ext/celes/s2c.c +85 -0
  158. data/ext/celes/s2p.c +88 -0
  159. data/ext/celes/s2pv.c +103 -0
  160. data/ext/celes/s2xpv.c +87 -0
  161. data/ext/celes/sepp.c +105 -0
  162. data/ext/celes/seps.c +93 -0
  163. data/ext/celes/sofa.h +379 -0
  164. data/ext/celes/sofam.h +155 -0
  165. data/ext/celes/sp00.c +118 -0
  166. data/ext/celes/starpm.c +205 -0
  167. data/ext/celes/starpv.c +264 -0
  168. data/ext/celes/sxp.c +84 -0
  169. data/ext/celes/sxpv.c +85 -0
  170. data/ext/celes/taitt.c +110 -0
  171. data/ext/celes/taiut1.c +112 -0
  172. data/ext/celes/taiutc.c +182 -0
  173. data/ext/celes/tcbtdb.c +132 -0
  174. data/ext/celes/tcgtt.c +109 -0
  175. data/ext/celes/tdbtcb.c +137 -0
  176. data/ext/celes/tdbtt.c +122 -0
  177. data/ext/celes/tf2a.c +107 -0
  178. data/ext/celes/tf2d.c +107 -0
  179. data/ext/celes/tr.c +93 -0
  180. data/ext/celes/trxp.c +93 -0
  181. data/ext/celes/trxpv.c +93 -0
  182. data/ext/celes/tttai.c +110 -0
  183. data/ext/celes/tttcg.c +112 -0
  184. data/ext/celes/tttdb.c +121 -0
  185. data/ext/celes/ttut1.c +110 -0
  186. data/ext/celes/ut1tai.c +111 -0
  187. data/ext/celes/ut1tt.c +110 -0
  188. data/ext/celes/ut1utc.c +193 -0
  189. data/ext/celes/utctai.c +163 -0
  190. data/ext/celes/utcut1.c +151 -0
  191. data/ext/celes/xy06.c +2758 -0
  192. data/ext/celes/xys00a.c +133 -0
  193. data/ext/celes/xys00b.c +133 -0
  194. data/ext/celes/xys06a.c +133 -0
  195. data/ext/celes/zp.c +77 -0
  196. data/ext/celes/zpv.c +79 -0
  197. data/ext/celes/zr.c +83 -0
  198. data/lib/celes.rb +6 -0
  199. data/lib/celes/version.rb +3 -0
  200. data/sofa_20120301.diff +31384 -0
  201. data/test/t_sofa.rb +8228 -0
  202. metadata +251 -0
@@ -0,0 +1,112 @@
1
+ #include "sofam.h"
2
+
3
+ int iauTaiut1(double tai1, double tai2, double dta,
4
+ double *ut11, double *ut12)
5
+ /*
6
+ ** - - - - - - - - - -
7
+ ** i a u T a i u t 1
8
+ ** - - - - - - - - - -
9
+ **
10
+ ** Time scale transformation: International Atomic Time, TAI, to
11
+ ** Universal Time, UT1.
12
+ **
13
+ ** Status: canonical.
14
+ **
15
+ ** Given:
16
+ ** tai1,tai2 double TAI as a 2-part Julian Date
17
+ ** dta double UT1-TAI in seconds
18
+ **
19
+ ** Returned:
20
+ ** ut11,ut12 double UT1 as a 2-part Julian Date
21
+ **
22
+ ** Returned (function value):
23
+ ** int status: 0 = OK
24
+ **
25
+ ** Notes:
26
+ **
27
+ ** 1) tai1+tai2 is Julian Date, apportioned in any convenient way
28
+ ** between the two arguments, for example where tai1 is the Julian
29
+ ** Day Number and tai2 is the fraction of a day. The returned
30
+ ** UT11,UT12 follow suit.
31
+ **
32
+ ** 2) The argument dta, i.e. UT1-TAI, is an observed quantity, and is
33
+ ** available from IERS tabulations.
34
+ **
35
+ ** Reference:
36
+ **
37
+ ** Explanatory Supplement to the Astronomical Almanac,
38
+ ** P. Kenneth Seidelmann (ed), University Science Books (1992)
39
+ **
40
+ ** This revision: 2011 May 14
41
+ **
42
+ ** Original version 2012-03-01
43
+ **
44
+ ** Copyright (C) 2013 Naoki Arita. See notes at end.
45
+ **
46
+ */
47
+ {
48
+ double dtad;
49
+
50
+
51
+ /* Result, safeguarding precision. */
52
+ dtad = dta / DAYSEC;
53
+ if ( tai1 > tai2 ) {
54
+ *ut11 = tai1;
55
+ *ut12 = tai2 + dtad;
56
+ } else {
57
+ *ut11 = tai1 + dtad;
58
+ *ut12 = tai2;
59
+ }
60
+
61
+ /* Status (always OK). */
62
+ return 0;
63
+
64
+ /*----------------------------------------------------------------------
65
+ **
66
+ ** Celes is a wrapper of the SOFA Library for Ruby.
67
+ **
68
+ ** This file is redistributed and relicensed in accordance with
69
+ ** the SOFA Software License (http://www.iausofa.org/tandc.html).
70
+ **
71
+ ** The original library is available from IAU Standards of
72
+ ** Fundamental Astronomy (http://www.iausofa.org/).
73
+ **
74
+ **
75
+ **
76
+ **
77
+ **
78
+ ** Copyright (C) 2013, Naoki Arita
79
+ ** All rights reserved.
80
+ **
81
+ ** Redistribution and use in source and binary forms, with or without
82
+ ** modification, are permitted provided that the following conditions
83
+ ** are met:
84
+ **
85
+ ** 1 Redistributions of source code must retain the above copyright
86
+ ** notice, this list of conditions and the following disclaimer.
87
+ **
88
+ ** 2 Redistributions in binary form must reproduce the above copyright
89
+ ** notice, this list of conditions and the following disclaimer in
90
+ ** the documentation and/or other materials provided with the
91
+ ** distribution.
92
+ **
93
+ ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
94
+ ** the International Astronomical Union nor the names of its
95
+ ** contributors may be used to endorse or promote products derived
96
+ ** from this software without specific prior written permission.
97
+ **
98
+ ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
99
+ ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
100
+ ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
101
+ ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
102
+ ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
103
+ ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
104
+ ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
105
+ ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
106
+ ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
107
+ ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
108
+ ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
109
+ ** POSSIBILITY OF SUCH DAMAGE.
110
+ **
111
+ **--------------------------------------------------------------------*/
112
+ }
@@ -0,0 +1,182 @@
1
+ #include "sofam.h"
2
+
3
+ int iauTaiutc(double tai1, double tai2, double *utc1, double *utc2)
4
+ /*
5
+ ** - - - - - - - - - -
6
+ ** i a u T a i u t c
7
+ ** - - - - - - - - - -
8
+ **
9
+ ** Time scale transformation: International Atomic Time, TAI, to
10
+ ** Coordinated Universal Time, UTC.
11
+ **
12
+ ** Status: canonical.
13
+ **
14
+ ** Given:
15
+ ** tai1,tai2 double TAI as a 2-part Julian Date (Note 1)
16
+ **
17
+ ** Returned:
18
+ ** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-3)
19
+ **
20
+ ** Returned (function value):
21
+ ** int status: +1 = dubious year (Note 4)
22
+ ** 0 = OK
23
+ ** -1 = unacceptable date
24
+ **
25
+ ** Notes:
26
+ **
27
+ ** 1) tai1+tai2 is Julian Date, apportioned in any convenient way
28
+ ** between the two arguments, for example where tai1 is the Julian
29
+ ** Day Number and tai2 is the fraction of a day. The returned utc1
30
+ ** and utc2 form an analogous pair, except that a special convention
31
+ ** is used, to deal with the problem of leap seconds - see the next
32
+ ** note.
33
+ **
34
+ ** 2) JD cannot unambiguously represent UTC during a leap second unless
35
+ ** special measures are taken. The convention in the present
36
+ ** function is that the JD day represents UTC days whether the
37
+ ** length is 86399, 86400 or 86401 SI seconds.
38
+ **
39
+ ** 3) The function iauD2dtf can be used to transform the UTC quasi-JD
40
+ ** into calendar date and clock time, including UTC leap second
41
+ ** handling.
42
+ **
43
+ ** 4) The warning status "dubious year" flags UTCs that predate the
44
+ ** introduction of the time scale and that are too far in the future
45
+ ** to be trusted. See iauDat for further details.
46
+ **
47
+ ** Called:
48
+ ** iauJd2cal JD to Gregorian calendar
49
+ ** iauDat delta(AT) = TAI-UTC
50
+ ** iauCal2jd Gregorian calendar to JD
51
+ **
52
+ ** References:
53
+ **
54
+ ** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
55
+ ** IERS Technical Note No. 32, BKG (2004)
56
+ **
57
+ ** Explanatory Supplement to the Astronomical Almanac,
58
+ ** P. Kenneth Seidelmann (ed), University Science Books (1992)
59
+ **
60
+ ** This revision: 2011 May 14
61
+ **
62
+ ** Original version 2012-03-01
63
+ **
64
+ ** Copyright (C) 2013 Naoki Arita. See notes at end.
65
+ */
66
+ {
67
+ int big1;
68
+ int i, iy, im, id, js;
69
+ double a1, a2, d1, dats1, d2, fd, ddats, dats2, datd, as1, as2, da;
70
+
71
+
72
+ /* Put the two parts of the TAI into big-first order. */
73
+ big1 = ( tai1 >= tai2 );
74
+ if ( big1 ) {
75
+ a1 = tai1;
76
+ a2 = tai2;
77
+ } else {
78
+ a1 = tai2;
79
+ a2 = tai1;
80
+ }
81
+
82
+ /* See if the TAI can possibly be in a leap-second day. */
83
+ d1 = a1;
84
+ dats1 = 0.0;
85
+ for ( i = -1; i <= 3; i++ ) {
86
+ d2 = a2 + (double) i;
87
+ if ( iauJd2cal(d1, d2, &iy, &im, &id, &fd) ) return -1;
88
+ js = iauDat(iy, im, id, 0.0, &dats2);
89
+ if ( js < 0 ) return -1;
90
+ if ( i == -1 ) dats1 = dats2;
91
+ ddats = dats2 - dats1;
92
+ datd = dats1 / DAYSEC;
93
+ if ( fabs(ddats) >= 0.5 ) {
94
+
95
+ /* Yes. Get TAI for the start of the UTC day that */
96
+ /* ends in a leap. */
97
+ if ( iauCal2jd(iy, im, id, &d1, &d2) ) return -1;
98
+ as1 = d1;
99
+ as2 = d2 - 1.0 + datd;
100
+
101
+ /* Is the TAI after this point? */
102
+ da = a1 - as1;
103
+ da = da + ( a2 - as2 );
104
+ if ( da > 0 ) {
105
+
106
+ /* Yes: fraction of the current UTC day that has elapsed. */
107
+ fd = da * DAYSEC / ( DAYSEC + ddats );
108
+
109
+ /* Ramp TAI-UTC to bring about SOFA's JD(UTC) convention. */
110
+ datd += ddats * ( fd <= 1.0 ? fd : 1.0 ) / DAYSEC;
111
+ }
112
+
113
+ /* Done. */
114
+ break;
115
+ }
116
+ dats1 = dats2;
117
+ }
118
+
119
+ /* Subtract the (possibly adjusted) TAI-UTC from TAI to give UTC. */
120
+ a2 -= datd;
121
+
122
+ /* Return the UTC result, preserving the TAI order. */
123
+ if ( big1 ) {
124
+ *utc1 = a1;
125
+ *utc2 = a2;
126
+ } else {
127
+ *utc1 = a2;
128
+ *utc2 = a1;
129
+ }
130
+
131
+ /* Status. */
132
+ return js;
133
+
134
+ /*----------------------------------------------------------------------
135
+ **
136
+ ** Celes is a wrapper of the SOFA Library for Ruby.
137
+ **
138
+ ** This file is redistributed and relicensed in accordance with
139
+ ** the SOFA Software License (http://www.iausofa.org/tandc.html).
140
+ **
141
+ ** The original library is available from IAU Standards of
142
+ ** Fundamental Astronomy (http://www.iausofa.org/).
143
+ **
144
+ **
145
+ **
146
+ **
147
+ **
148
+ ** Copyright (C) 2013, Naoki Arita
149
+ ** All rights reserved.
150
+ **
151
+ ** Redistribution and use in source and binary forms, with or without
152
+ ** modification, are permitted provided that the following conditions
153
+ ** are met:
154
+ **
155
+ ** 1 Redistributions of source code must retain the above copyright
156
+ ** notice, this list of conditions and the following disclaimer.
157
+ **
158
+ ** 2 Redistributions in binary form must reproduce the above copyright
159
+ ** notice, this list of conditions and the following disclaimer in
160
+ ** the documentation and/or other materials provided with the
161
+ ** distribution.
162
+ **
163
+ ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
164
+ ** the International Astronomical Union nor the names of its
165
+ ** contributors may be used to endorse or promote products derived
166
+ ** from this software without specific prior written permission.
167
+ **
168
+ ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
169
+ ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
170
+ ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
171
+ ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
172
+ ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
173
+ ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
174
+ ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
175
+ ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
176
+ ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
177
+ ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
178
+ ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
179
+ ** POSSIBILITY OF SUCH DAMAGE.
180
+ **
181
+ **--------------------------------------------------------------------*/
182
+ }
@@ -0,0 +1,132 @@
1
+ #include "sofam.h"
2
+
3
+ int iauTcbtdb(double tcb1, double tcb2, double *tdb1, double *tdb2)
4
+ /*
5
+ ** - - - - - - - - - -
6
+ ** i a u T c b t d b
7
+ ** - - - - - - - - - -
8
+ **
9
+ ** Time scale transformation: Barycentric Coordinate Time, TCB, to
10
+ ** Barycentric Dynamical Time, TDB.
11
+ **
12
+ ** Status: canonical.
13
+ **
14
+ ** Given:
15
+ ** tcb1,tcb2 double TCB as a 2-part Julian Date
16
+ **
17
+ ** Returned:
18
+ ** tdb1,tdb2 double TDB as a 2-part Julian Date
19
+ **
20
+ ** Returned (function value):
21
+ ** int status: 0 = OK
22
+ **
23
+ ** Notes:
24
+ **
25
+ ** 1) tcb1+tcb2 is Julian Date, apportioned in any convenient way
26
+ ** between the two arguments, for example where tcb1 is the Julian
27
+ ** Day Number and tcb2 is the fraction of a day. The returned
28
+ ** tdb1,tdb2 follow suit.
29
+ **
30
+ ** 2) The 2006 IAU General Assembly introduced a conventional linear
31
+ ** transformation between TDB and TCB. This transformation
32
+ ** compensates for the drift between TCB and terrestrial time TT,
33
+ ** and keeps TDB approximately centered on TT. Because the
34
+ ** relationship between TT and TCB depends on the adopted solar
35
+ ** system ephemeris, the degree of alignment between TDB and TT over
36
+ ** long intervals will vary according to which ephemeris is used.
37
+ ** Former definitions of TDB attempted to avoid this problem by
38
+ ** stipulating that TDB and TT should differ only by periodic
39
+ ** effects. This is a good description of the nature of the
40
+ ** relationship but eluded precise mathematical formulation. The
41
+ ** conventional linear relationship adopted in 2006 sidestepped
42
+ ** these difficulties whilst delivering a TDB that in practice was
43
+ ** consistent with values before that date.
44
+ **
45
+ ** 3) TDB is essentially the same as Teph, the time argument for the
46
+ ** JPL solar system ephemerides.
47
+ **
48
+ ** Reference:
49
+ **
50
+ ** IAU 2006 Resolution B3
51
+ **
52
+ ** This revision: 2011 May 14
53
+ **
54
+ ** Original version 2012-03-01
55
+ **
56
+ ** Copyright (C) 2013 Naoki Arita. See notes at end.
57
+ */
58
+ {
59
+
60
+ /* 1977 Jan 1 00:00:32.184 TT, as two-part JD */
61
+ static const double t77td = DJM0 + DJM77;
62
+ static const double t77tf = TTMTAI/DAYSEC;
63
+
64
+ /* TDB (days) at TAI 1977 Jan 1.0 */
65
+ static const double tdb0 = TDB0/DAYSEC;
66
+
67
+ double d;
68
+
69
+
70
+ /* Result, safeguarding precision. */
71
+ if ( tcb1 > tcb2 ) {
72
+ d = tcb1 - t77td;
73
+ *tdb1 = tcb1;
74
+ *tdb2 = tcb2 + tdb0 - ( d + ( tcb2 - t77tf ) ) * ELB;
75
+ } else {
76
+ d = tcb2 - t77td;
77
+ *tdb1 = tcb1 + tdb0 - ( d + ( tcb1 - t77tf ) ) * ELB;
78
+ *tdb2 = tcb2;
79
+ }
80
+
81
+ /* Status (always OK). */
82
+ return 0;
83
+
84
+ /*----------------------------------------------------------------------
85
+ **
86
+ ** Celes is a wrapper of the SOFA Library for Ruby.
87
+ **
88
+ ** This file is redistributed and relicensed in accordance with
89
+ ** the SOFA Software License (http://www.iausofa.org/tandc.html).
90
+ **
91
+ ** The original library is available from IAU Standards of
92
+ ** Fundamental Astronomy (http://www.iausofa.org/).
93
+ **
94
+ **
95
+ **
96
+ **
97
+ **
98
+ ** Copyright (C) 2013, Naoki Arita
99
+ ** All rights reserved.
100
+ **
101
+ ** Redistribution and use in source and binary forms, with or without
102
+ ** modification, are permitted provided that the following conditions
103
+ ** are met:
104
+ **
105
+ ** 1 Redistributions of source code must retain the above copyright
106
+ ** notice, this list of conditions and the following disclaimer.
107
+ **
108
+ ** 2 Redistributions in binary form must reproduce the above copyright
109
+ ** notice, this list of conditions and the following disclaimer in
110
+ ** the documentation and/or other materials provided with the
111
+ ** distribution.
112
+ **
113
+ ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
114
+ ** the International Astronomical Union nor the names of its
115
+ ** contributors may be used to endorse or promote products derived
116
+ ** from this software without specific prior written permission.
117
+ **
118
+ ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
119
+ ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
120
+ ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
121
+ ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
122
+ ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
123
+ ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
124
+ ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
125
+ ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
126
+ ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
127
+ ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
128
+ ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
129
+ ** POSSIBILITY OF SUCH DAMAGE.
130
+ **
131
+ **--------------------------------------------------------------------*/
132
+ }
@@ -0,0 +1,109 @@
1
+ #include "sofam.h"
2
+
3
+ int iauTcgtt(double tcg1, double tcg2, double *tt1, double *tt2)
4
+ /*
5
+ ** - - - - - - - - -
6
+ ** i a u T c g t t
7
+ ** - - - - - - - - -
8
+ **
9
+ ** Time scale transformation: Geocentric Coordinate Time, TCG, to
10
+ ** Terrestrial Time, TT.
11
+ **
12
+ ** Status: canonical.
13
+ **
14
+ ** Given:
15
+ ** tcg1,tcg2 double TCG as a 2-part Julian Date
16
+ **
17
+ ** Returned:
18
+ ** tt1,tt2 double TT as a 2-part Julian Date
19
+ **
20
+ ** Returned (function value):
21
+ ** int status: 0 = OK
22
+ **
23
+ ** Note:
24
+ **
25
+ ** tcg1+tcg2 is Julian Date, apportioned in any convenient way
26
+ ** between the two arguments, for example where tcg1 is the Julian
27
+ ** Day Number and tcg22 is the fraction of a day. The returned
28
+ ** tt1,tt2 follow suit.
29
+ **
30
+ ** References:
31
+ **
32
+ ** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),.
33
+ ** IERS Technical Note No. 32, BKG (2004)
34
+ **
35
+ ** IAU 2000 Resolution B1.9
36
+ **
37
+ ** This revision: 2010 May 14
38
+ **
39
+ ** Original version 2012-03-01
40
+ **
41
+ ** Copyright (C) 2013 Naoki Arita. See notes at end.
42
+ */
43
+ {
44
+
45
+ /* 1977 Jan 1 00:00:32.184 TT, as MJD */
46
+ static const double t77t = DJM77 + TTMTAI/DAYSEC;
47
+
48
+
49
+ /* Result, safeguarding precision. */
50
+ if ( tcg1 > tcg2 ) {
51
+ *tt1 = tcg1;
52
+ *tt2 = tcg2 - ( ( tcg1 - DJM0 ) + ( tcg2 - t77t ) ) * ELG;
53
+ } else {
54
+ *tt1 = tcg1 - ( ( tcg2 - DJM0 ) + ( tcg1 - t77t ) ) * ELG;
55
+ *tt2 = tcg2;
56
+ }
57
+
58
+ /* OK status. */
59
+ return 0;
60
+
61
+ /*----------------------------------------------------------------------
62
+ **
63
+ ** Celes is a wrapper of the SOFA Library for Ruby.
64
+ **
65
+ ** This file is redistributed and relicensed in accordance with
66
+ ** the SOFA Software License (http://www.iausofa.org/tandc.html).
67
+ **
68
+ ** The original library is available from IAU Standards of
69
+ ** Fundamental Astronomy (http://www.iausofa.org/).
70
+ **
71
+ **
72
+ **
73
+ **
74
+ **
75
+ ** Copyright (C) 2013, Naoki Arita
76
+ ** All rights reserved.
77
+ **
78
+ ** Redistribution and use in source and binary forms, with or without
79
+ ** modification, are permitted provided that the following conditions
80
+ ** are met:
81
+ **
82
+ ** 1 Redistributions of source code must retain the above copyright
83
+ ** notice, this list of conditions and the following disclaimer.
84
+ **
85
+ ** 2 Redistributions in binary form must reproduce the above copyright
86
+ ** notice, this list of conditions and the following disclaimer in
87
+ ** the documentation and/or other materials provided with the
88
+ ** distribution.
89
+ **
90
+ ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
91
+ ** the International Astronomical Union nor the names of its
92
+ ** contributors may be used to endorse or promote products derived
93
+ ** from this software without specific prior written permission.
94
+ **
95
+ ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
96
+ ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
97
+ ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
98
+ ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
99
+ ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
100
+ ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
101
+ ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
102
+ ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
103
+ ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
104
+ ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
105
+ ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
106
+ ** POSSIBILITY OF SUCH DAMAGE.
107
+ **
108
+ **--------------------------------------------------------------------*/
109
+ }