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.
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +32 -0
- data/README.md +179 -0
- data/Rakefile +1 -0
- data/celes.gemspec +22 -0
- data/ext/celes/a2af.c +120 -0
- data/ext/celes/a2tf.c +116 -0
- data/ext/celes/af2a.c +107 -0
- data/ext/celes/anp.c +82 -0
- data/ext/celes/anpm.c +82 -0
- data/ext/celes/bi00.c +116 -0
- data/ext/celes/bp00.c +173 -0
- data/ext/celes/bp06.c +136 -0
- data/ext/celes/bpn2xy.c +100 -0
- data/ext/celes/c2i00a.c +139 -0
- data/ext/celes/c2i00b.c +139 -0
- data/ext/celes/c2i06a.c +136 -0
- data/ext/celes/c2ibpn.c +142 -0
- data/ext/celes/c2ixy.c +131 -0
- data/ext/celes/c2ixys.c +123 -0
- data/ext/celes/c2s.c +96 -0
- data/ext/celes/c2t00a.c +154 -0
- data/ext/celes/c2t00b.c +150 -0
- data/ext/celes/c2t06a.c +152 -0
- data/ext/celes/c2tcio.c +122 -0
- data/ext/celes/c2teqx.c +122 -0
- data/ext/celes/c2tpe.c +167 -0
- data/ext/celes/c2txy.c +159 -0
- data/ext/celes/cal2jd.c +139 -0
- data/ext/celes/celes_core.c +2522 -0
- data/ext/celes/cp.c +80 -0
- data/ext/celes/cpv.c +82 -0
- data/ext/celes/cr.c +83 -0
- data/ext/celes/d2dtf.c +206 -0
- data/ext/celes/d2tf.c +160 -0
- data/ext/celes/dat.c +289 -0
- data/ext/celes/depend +25 -0
- data/ext/celes/dtdb.c +1213 -0
- data/ext/celes/dtf2d.c +196 -0
- data/ext/celes/ee00.c +128 -0
- data/ext/celes/ee00a.c +135 -0
- data/ext/celes/ee00b.c +141 -0
- data/ext/celes/ee06a.c +122 -0
- data/ext/celes/eect00.c +282 -0
- data/ext/celes/eform.c +147 -0
- data/ext/celes/eo06a.c +131 -0
- data/ext/celes/eors.c +108 -0
- data/ext/celes/epb.c +96 -0
- data/ext/celes/epb2jd.c +91 -0
- data/ext/celes/epj.c +93 -0
- data/ext/celes/epj2jd.c +91 -0
- data/ext/celes/epv00.c +2589 -0
- data/ext/celes/eqeq94.c +131 -0
- data/ext/celes/era00.c +136 -0
- data/ext/celes/extconf.rb +4 -0
- data/ext/celes/fad03.c +103 -0
- data/ext/celes/fae03.c +102 -0
- data/ext/celes/faf03.c +106 -0
- data/ext/celes/faju03.c +102 -0
- data/ext/celes/fal03.c +103 -0
- data/ext/celes/falp03.c +103 -0
- data/ext/celes/fama03.c +102 -0
- data/ext/celes/fame03.c +102 -0
- data/ext/celes/fane03.c +99 -0
- data/ext/celes/faom03.c +104 -0
- data/ext/celes/fapa03.c +103 -0
- data/ext/celes/fasa03.c +102 -0
- data/ext/celes/faur03.c +99 -0
- data/ext/celes/fave03.c +102 -0
- data/ext/celes/fk52h.c +143 -0
- data/ext/celes/fk5hip.c +126 -0
- data/ext/celes/fk5hz.c +160 -0
- data/ext/celes/fw2m.c +134 -0
- data/ext/celes/fw2xy.c +120 -0
- data/ext/celes/gc2gd.c +134 -0
- data/ext/celes/gc2gde.c +200 -0
- data/ext/celes/gd2gc.c +134 -0
- data/ext/celes/gd2gce.c +138 -0
- data/ext/celes/gmst00.c +145 -0
- data/ext/celes/gmst06.c +136 -0
- data/ext/celes/gmst82.c +151 -0
- data/ext/celes/gst00a.c +138 -0
- data/ext/celes/gst00b.c +146 -0
- data/ext/celes/gst06.c +140 -0
- data/ext/celes/gst06a.c +131 -0
- data/ext/celes/gst94.c +131 -0
- data/ext/celes/h2fk5.c +148 -0
- data/ext/celes/hfk5z.c +175 -0
- data/ext/celes/ir.c +83 -0
- data/ext/celes/jd2cal.c +155 -0
- data/ext/celes/jdcalf.c +161 -0
- data/ext/celes/num00a.c +121 -0
- data/ext/celes/num00b.c +121 -0
- data/ext/celes/num06a.c +125 -0
- data/ext/celes/numat.c +109 -0
- data/ext/celes/nut00a.c +2047 -0
- data/ext/celes/nut00b.c +372 -0
- data/ext/celes/nut06a.c +153 -0
- data/ext/celes/nut80.c +325 -0
- data/ext/celes/nutm80.c +117 -0
- data/ext/celes/obl06.c +118 -0
- data/ext/celes/obl80.c +118 -0
- data/ext/celes/p06e.c +321 -0
- data/ext/celes/p2pv.c +83 -0
- data/ext/celes/p2s.c +91 -0
- data/ext/celes/pap.c +139 -0
- data/ext/celes/pas.c +96 -0
- data/ext/celes/pb06.c +144 -0
- data/ext/celes/pdp.c +84 -0
- data/ext/celes/pfw06.c +165 -0
- data/ext/celes/plan94.c +514 -0
- data/ext/celes/pm.c +83 -0
- data/ext/celes/pmat00.c +118 -0
- data/ext/celes/pmat06.c +122 -0
- data/ext/celes/pmat76.c +141 -0
- data/ext/celes/pmp.c +85 -0
- data/ext/celes/pn.c +109 -0
- data/ext/celes/pn00.c +177 -0
- data/ext/celes/pn00a.c +162 -0
- data/ext/celes/pn00b.c +162 -0
- data/ext/celes/pn06.c +187 -0
- data/ext/celes/pn06a.c +152 -0
- data/ext/celes/pnm00a.c +121 -0
- data/ext/celes/pnm00b.c +121 -0
- data/ext/celes/pnm06a.c +124 -0
- data/ext/celes/pnm80.c +126 -0
- data/ext/celes/pom00.c +115 -0
- data/ext/celes/ppp.c +85 -0
- data/ext/celes/ppsp.c +94 -0
- data/ext/celes/pr00.c +142 -0
- data/ext/celes/prec76.c +148 -0
- data/ext/celes/pv2p.c +81 -0
- data/ext/celes/pv2s.c +144 -0
- data/ext/celes/pvdpv.c +102 -0
- data/ext/celes/pvm.c +86 -0
- data/ext/celes/pvmpv.c +87 -0
- data/ext/celes/pvppv.c +87 -0
- data/ext/celes/pvstar.c +207 -0
- data/ext/celes/pvu.c +93 -0
- data/ext/celes/pvup.c +88 -0
- data/ext/celes/pvxpv.c +107 -0
- data/ext/celes/pxp.c +94 -0
- data/ext/celes/rm2v.c +111 -0
- data/ext/celes/rv2m.c +118 -0
- data/ext/celes/rx.c +110 -0
- data/ext/celes/rxp.c +99 -0
- data/ext/celes/rxpv.c +86 -0
- data/ext/celes/rxr.c +99 -0
- data/ext/celes/ry.c +110 -0
- data/ext/celes/rz.c +110 -0
- data/ext/celes/s00.c +371 -0
- data/ext/celes/s00a.c +143 -0
- data/ext/celes/s00b.c +143 -0
- data/ext/celes/s06.c +368 -0
- data/ext/celes/s06a.c +145 -0
- data/ext/celes/s2c.c +85 -0
- data/ext/celes/s2p.c +88 -0
- data/ext/celes/s2pv.c +103 -0
- data/ext/celes/s2xpv.c +87 -0
- data/ext/celes/sepp.c +105 -0
- data/ext/celes/seps.c +93 -0
- data/ext/celes/sofa.h +379 -0
- data/ext/celes/sofam.h +155 -0
- data/ext/celes/sp00.c +118 -0
- data/ext/celes/starpm.c +205 -0
- data/ext/celes/starpv.c +264 -0
- data/ext/celes/sxp.c +84 -0
- data/ext/celes/sxpv.c +85 -0
- data/ext/celes/taitt.c +110 -0
- data/ext/celes/taiut1.c +112 -0
- data/ext/celes/taiutc.c +182 -0
- data/ext/celes/tcbtdb.c +132 -0
- data/ext/celes/tcgtt.c +109 -0
- data/ext/celes/tdbtcb.c +137 -0
- data/ext/celes/tdbtt.c +122 -0
- data/ext/celes/tf2a.c +107 -0
- data/ext/celes/tf2d.c +107 -0
- data/ext/celes/tr.c +93 -0
- data/ext/celes/trxp.c +93 -0
- data/ext/celes/trxpv.c +93 -0
- data/ext/celes/tttai.c +110 -0
- data/ext/celes/tttcg.c +112 -0
- data/ext/celes/tttdb.c +121 -0
- data/ext/celes/ttut1.c +110 -0
- data/ext/celes/ut1tai.c +111 -0
- data/ext/celes/ut1tt.c +110 -0
- data/ext/celes/ut1utc.c +193 -0
- data/ext/celes/utctai.c +163 -0
- data/ext/celes/utcut1.c +151 -0
- data/ext/celes/xy06.c +2758 -0
- data/ext/celes/xys00a.c +133 -0
- data/ext/celes/xys00b.c +133 -0
- data/ext/celes/xys06a.c +133 -0
- data/ext/celes/zp.c +77 -0
- data/ext/celes/zpv.c +79 -0
- data/ext/celes/zr.c +83 -0
- data/lib/celes.rb +6 -0
- data/lib/celes/version.rb +3 -0
- data/sofa_20120301.diff +31384 -0
- data/test/t_sofa.rb +8228 -0
- metadata +251 -0
data/ext/celes/cp.c
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
void iauCp(double p[3], double c[3])
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - -
|
|
6
|
+
** i a u C p
|
|
7
|
+
** - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Copy a p-vector.
|
|
10
|
+
**
|
|
11
|
+
** Status: vector/matrix support function.
|
|
12
|
+
**
|
|
13
|
+
** Given:
|
|
14
|
+
** p double[3] p-vector to be copied
|
|
15
|
+
**
|
|
16
|
+
** Returned:
|
|
17
|
+
** c double[3] copy
|
|
18
|
+
**
|
|
19
|
+
** This revision: 2008 May 11
|
|
20
|
+
**
|
|
21
|
+
** Original version 2012-03-01
|
|
22
|
+
**
|
|
23
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
24
|
+
*/
|
|
25
|
+
{
|
|
26
|
+
c[0] = p[0];
|
|
27
|
+
c[1] = p[1];
|
|
28
|
+
c[2] = p[2];
|
|
29
|
+
|
|
30
|
+
return;
|
|
31
|
+
|
|
32
|
+
/*----------------------------------------------------------------------
|
|
33
|
+
**
|
|
34
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
35
|
+
**
|
|
36
|
+
** This file is redistributed and relicensed in accordance with
|
|
37
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
38
|
+
**
|
|
39
|
+
** The original library is available from IAU Standards of
|
|
40
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
41
|
+
**
|
|
42
|
+
**
|
|
43
|
+
**
|
|
44
|
+
**
|
|
45
|
+
**
|
|
46
|
+
** Copyright (C) 2013, Naoki Arita
|
|
47
|
+
** All rights reserved.
|
|
48
|
+
**
|
|
49
|
+
** Redistribution and use in source and binary forms, with or without
|
|
50
|
+
** modification, are permitted provided that the following conditions
|
|
51
|
+
** are met:
|
|
52
|
+
**
|
|
53
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
54
|
+
** notice, this list of conditions and the following disclaimer.
|
|
55
|
+
**
|
|
56
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
57
|
+
** notice, this list of conditions and the following disclaimer in
|
|
58
|
+
** the documentation and/or other materials provided with the
|
|
59
|
+
** distribution.
|
|
60
|
+
**
|
|
61
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
62
|
+
** the International Astronomical Union nor the names of its
|
|
63
|
+
** contributors may be used to endorse or promote products derived
|
|
64
|
+
** from this software without specific prior written permission.
|
|
65
|
+
**
|
|
66
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
67
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
68
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
69
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
70
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
71
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
72
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
73
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
74
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
75
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
76
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
77
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
78
|
+
**
|
|
79
|
+
**--------------------------------------------------------------------*/
|
|
80
|
+
}
|
data/ext/celes/cpv.c
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
void iauCpv(double pv[2][3], double c[2][3])
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - - -
|
|
6
|
+
** i a u C p v
|
|
7
|
+
** - - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Copy a position/velocity vector.
|
|
10
|
+
**
|
|
11
|
+
** Status: vector/matrix support function.
|
|
12
|
+
**
|
|
13
|
+
** Given:
|
|
14
|
+
** pv double[2][3] position/velocity vector to be copied
|
|
15
|
+
**
|
|
16
|
+
** Returned:
|
|
17
|
+
** c double[2][3] copy
|
|
18
|
+
**
|
|
19
|
+
** Called:
|
|
20
|
+
** iauCp copy p-vector
|
|
21
|
+
**
|
|
22
|
+
** This revision: 2008 May 11
|
|
23
|
+
**
|
|
24
|
+
** Original version 2012-03-01
|
|
25
|
+
**
|
|
26
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
27
|
+
*/
|
|
28
|
+
{
|
|
29
|
+
iauCp(pv[0], c[0]);
|
|
30
|
+
iauCp(pv[1], c[1]);
|
|
31
|
+
|
|
32
|
+
return;
|
|
33
|
+
|
|
34
|
+
/*----------------------------------------------------------------------
|
|
35
|
+
**
|
|
36
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
37
|
+
**
|
|
38
|
+
** This file is redistributed and relicensed in accordance with
|
|
39
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
40
|
+
**
|
|
41
|
+
** The original library is available from IAU Standards of
|
|
42
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
43
|
+
**
|
|
44
|
+
**
|
|
45
|
+
**
|
|
46
|
+
**
|
|
47
|
+
**
|
|
48
|
+
** Copyright (C) 2013, Naoki Arita
|
|
49
|
+
** All rights reserved.
|
|
50
|
+
**
|
|
51
|
+
** Redistribution and use in source and binary forms, with or without
|
|
52
|
+
** modification, are permitted provided that the following conditions
|
|
53
|
+
** are met:
|
|
54
|
+
**
|
|
55
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
56
|
+
** notice, this list of conditions and the following disclaimer.
|
|
57
|
+
**
|
|
58
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
59
|
+
** notice, this list of conditions and the following disclaimer in
|
|
60
|
+
** the documentation and/or other materials provided with the
|
|
61
|
+
** distribution.
|
|
62
|
+
**
|
|
63
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
64
|
+
** the International Astronomical Union nor the names of its
|
|
65
|
+
** contributors may be used to endorse or promote products derived
|
|
66
|
+
** from this software without specific prior written permission.
|
|
67
|
+
**
|
|
68
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
69
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
70
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
71
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
72
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
73
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
74
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
75
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
76
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
77
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
78
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
79
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
80
|
+
**
|
|
81
|
+
**--------------------------------------------------------------------*/
|
|
82
|
+
}
|
data/ext/celes/cr.c
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
void iauCr(double r[3][3], double c[3][3])
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - -
|
|
6
|
+
** i a u C r
|
|
7
|
+
** - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Copy an r-matrix.
|
|
10
|
+
**
|
|
11
|
+
** Status: vector/matrix support function.
|
|
12
|
+
**
|
|
13
|
+
** Given:
|
|
14
|
+
** r double[3][3] r-matrix to be copied
|
|
15
|
+
**
|
|
16
|
+
** Returned:
|
|
17
|
+
** char[] double[3][3] copy
|
|
18
|
+
**
|
|
19
|
+
** Called:
|
|
20
|
+
** iauCp copy p-vector
|
|
21
|
+
**
|
|
22
|
+
** This revision: 2008 May 11
|
|
23
|
+
**
|
|
24
|
+
** Original version 2012-03-01
|
|
25
|
+
**
|
|
26
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
27
|
+
*/
|
|
28
|
+
{
|
|
29
|
+
iauCp(r[0], c[0]);
|
|
30
|
+
iauCp(r[1], c[1]);
|
|
31
|
+
iauCp(r[2], c[2]);
|
|
32
|
+
|
|
33
|
+
return;
|
|
34
|
+
|
|
35
|
+
/*----------------------------------------------------------------------
|
|
36
|
+
**
|
|
37
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
38
|
+
**
|
|
39
|
+
** This file is redistributed and relicensed in accordance with
|
|
40
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
41
|
+
**
|
|
42
|
+
** The original library is available from IAU Standards of
|
|
43
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
44
|
+
**
|
|
45
|
+
**
|
|
46
|
+
**
|
|
47
|
+
**
|
|
48
|
+
**
|
|
49
|
+
** Copyright (C) 2013, Naoki Arita
|
|
50
|
+
** All rights reserved.
|
|
51
|
+
**
|
|
52
|
+
** Redistribution and use in source and binary forms, with or without
|
|
53
|
+
** modification, are permitted provided that the following conditions
|
|
54
|
+
** are met:
|
|
55
|
+
**
|
|
56
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
57
|
+
** notice, this list of conditions and the following disclaimer.
|
|
58
|
+
**
|
|
59
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
60
|
+
** notice, this list of conditions and the following disclaimer in
|
|
61
|
+
** the documentation and/or other materials provided with the
|
|
62
|
+
** distribution.
|
|
63
|
+
**
|
|
64
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
65
|
+
** the International Astronomical Union nor the names of its
|
|
66
|
+
** contributors may be used to endorse or promote products derived
|
|
67
|
+
** from this software without specific prior written permission.
|
|
68
|
+
**
|
|
69
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
70
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
71
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
72
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
73
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
74
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
75
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
76
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
77
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
78
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
79
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
80
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
81
|
+
**
|
|
82
|
+
**--------------------------------------------------------------------*/
|
|
83
|
+
}
|
data/ext/celes/d2dtf.c
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
#include <string.h>
|
|
3
|
+
|
|
4
|
+
int iauD2dtf(const char *scale, int ndp, double d1, double d2,
|
|
5
|
+
int *iy, int *im, int *id, int ihmsf[4])
|
|
6
|
+
/*
|
|
7
|
+
** - - - - - - - - -
|
|
8
|
+
** i a u D 2 d t f
|
|
9
|
+
** - - - - - - - - -
|
|
10
|
+
**
|
|
11
|
+
** Format for output a 2-part Julian Date (or in the case of UTC a
|
|
12
|
+
** quasi-JD form that includes special provision for leap seconds).
|
|
13
|
+
**
|
|
14
|
+
** Status: support function.
|
|
15
|
+
**
|
|
16
|
+
** Given:
|
|
17
|
+
** scale char[] time scale ID (Note 1)
|
|
18
|
+
** ndp int resolution (Note 2)
|
|
19
|
+
** d1,d2 double time as a 2-part Julian Date (Notes 3,4)
|
|
20
|
+
**
|
|
21
|
+
** Returned:
|
|
22
|
+
** iy,im,id int year, month, day in Gregorian calendar (Note 5)
|
|
23
|
+
** ihmsf int[4] hours, minutes, seconds, fraction (Note 1)
|
|
24
|
+
**
|
|
25
|
+
** Returned (function value):
|
|
26
|
+
** int status: +1 = dubious year (Note 5)
|
|
27
|
+
** 0 = OK
|
|
28
|
+
** -1 = unacceptable date (Note 6)
|
|
29
|
+
**
|
|
30
|
+
** Notes:
|
|
31
|
+
**
|
|
32
|
+
** 1) scale identifies the time scale. Only the value "UTC" (in upper
|
|
33
|
+
** case) is significant, and enables handling of leap seconds (see
|
|
34
|
+
** Note 4).
|
|
35
|
+
**
|
|
36
|
+
** 2) ndp is the number of decimal places in the seconds field, and can
|
|
37
|
+
** have negative as well as positive values, such as:
|
|
38
|
+
**
|
|
39
|
+
** ndp resolution
|
|
40
|
+
** -4 1 00 00
|
|
41
|
+
** -3 0 10 00
|
|
42
|
+
** -2 0 01 00
|
|
43
|
+
** -1 0 00 10
|
|
44
|
+
** 0 0 00 01
|
|
45
|
+
** 1 0 00 00.1
|
|
46
|
+
** 2 0 00 00.01
|
|
47
|
+
** 3 0 00 00.001
|
|
48
|
+
**
|
|
49
|
+
** The limits are platform dependent, but a safe range is -5 to +9.
|
|
50
|
+
**
|
|
51
|
+
** 3) d1+d2 is Julian Date, apportioned in any convenient way between
|
|
52
|
+
** the two arguments, for example where d1 is the Julian Day Number
|
|
53
|
+
** and d2 is the fraction of a day. In the case of UTC, where the
|
|
54
|
+
** use of JD is problematical, special conventions apply: see the
|
|
55
|
+
** next note.
|
|
56
|
+
**
|
|
57
|
+
** 4) JD cannot unambiguously represent UTC during a leap second unless
|
|
58
|
+
** special measures are taken. The SOFA internal convention is that
|
|
59
|
+
** the quasi-JD day represents UTC days whether the length is 86399,
|
|
60
|
+
** 86400 or 86401 SI seconds.
|
|
61
|
+
**
|
|
62
|
+
** 5) The warning status "dubious year" flags UTCs that predate the
|
|
63
|
+
** introduction of the time scale and that are too far in the future
|
|
64
|
+
** to be trusted. See iauDat for further details.
|
|
65
|
+
**
|
|
66
|
+
** 6) For calendar conventions and limitations, see iauCal2jd.
|
|
67
|
+
**
|
|
68
|
+
** Called:
|
|
69
|
+
** iauJd2cal JD to Gregorian calendar
|
|
70
|
+
** iauD2tf decompose days to hms
|
|
71
|
+
** iauDat delta(AT) = TAI-UTC
|
|
72
|
+
**
|
|
73
|
+
** This revision: 2012 February 12
|
|
74
|
+
**
|
|
75
|
+
** Original version 2012-03-01
|
|
76
|
+
**
|
|
77
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
78
|
+
*/
|
|
79
|
+
{
|
|
80
|
+
int leap;
|
|
81
|
+
char s;
|
|
82
|
+
int iy1, im1, id1, js, iy2, im2, id2, ihmsf1[4], i;
|
|
83
|
+
double a1, b1, fd, dat1, w, dat2, ddt;
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
/* The two-part JD. */
|
|
87
|
+
a1 = d1;
|
|
88
|
+
b1 = d2;
|
|
89
|
+
|
|
90
|
+
/* Provisional calendar date. */
|
|
91
|
+
js = iauJd2cal(a1, b1, &iy1, &im1, &id1, &fd);
|
|
92
|
+
if ( js ) return js < 0 ? -1 : js;
|
|
93
|
+
|
|
94
|
+
/* Is this a leap second day? */
|
|
95
|
+
leap = 0;
|
|
96
|
+
if ( ! strcmp(scale,"UTC") ) {
|
|
97
|
+
|
|
98
|
+
/* TAI-UTC today. */
|
|
99
|
+
js = iauDat(iy1, im1, id1, fd, &dat1);
|
|
100
|
+
if ( js < 0 ) return -1;
|
|
101
|
+
|
|
102
|
+
/* TAI-UTC tomorrow (at noon, to avoid rounding effects). */
|
|
103
|
+
js = iauJd2cal(a1+1.5, b1-fd, &iy2, &im2, &id2, &w);
|
|
104
|
+
js = iauDat(iy2, im2, id2, 0.0, &dat2);
|
|
105
|
+
if ( js < 0 ) return -1;
|
|
106
|
+
|
|
107
|
+
/* The change in TAI-UTC (seconds). */
|
|
108
|
+
ddt = dat2 - dat1;
|
|
109
|
+
|
|
110
|
+
/* If leap second day, scale the fraction of a day into SI. */
|
|
111
|
+
leap = fabs(ddt) > 0.5;
|
|
112
|
+
if (leap) fd += fd * ddt/DAYSEC;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* Provisional time of day. */
|
|
116
|
+
iauD2tf ( ndp, fd, &s, ihmsf1 );
|
|
117
|
+
|
|
118
|
+
/* Is this a leap second day? */
|
|
119
|
+
if ( ! leap ) {
|
|
120
|
+
|
|
121
|
+
/* No. Has the time rounded up to 24h? */
|
|
122
|
+
if ( ihmsf1[0] > 23 ) {
|
|
123
|
+
|
|
124
|
+
/* Yes. We will need tomorrow's calendar date. */
|
|
125
|
+
js = iauJd2cal(a1+1.5, b1-fd, &iy2, &im2, &id2, &w);
|
|
126
|
+
|
|
127
|
+
/* Use 0h tomorrow. */
|
|
128
|
+
iy1 = iy2;
|
|
129
|
+
im1 = im2;
|
|
130
|
+
id1 = id2;
|
|
131
|
+
for ( i = 0; i < 4; i++ ) {
|
|
132
|
+
ihmsf1[i] = 0;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
|
|
137
|
+
/* This is a leap second day. Has the time reached or passed 24h? */
|
|
138
|
+
if ( ihmsf1[0] > 23 ) {
|
|
139
|
+
|
|
140
|
+
/* Yes. Use 23 59 60... */
|
|
141
|
+
ihmsf1[0] = 23;
|
|
142
|
+
ihmsf1[1] = 59;
|
|
143
|
+
ihmsf1[2] = 60;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* Results. */
|
|
148
|
+
*iy = iy1;
|
|
149
|
+
*im = im1;
|
|
150
|
+
*id = id1;
|
|
151
|
+
for ( i = 0; i < 4; i++ ) {
|
|
152
|
+
ihmsf[i] = ihmsf1[i];
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* Status. */
|
|
156
|
+
return js < 0 ? -1 : js;
|
|
157
|
+
|
|
158
|
+
/*----------------------------------------------------------------------
|
|
159
|
+
**
|
|
160
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
161
|
+
**
|
|
162
|
+
** This file is redistributed and relicensed in accordance with
|
|
163
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
164
|
+
**
|
|
165
|
+
** The original library is available from IAU Standards of
|
|
166
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
167
|
+
**
|
|
168
|
+
**
|
|
169
|
+
**
|
|
170
|
+
**
|
|
171
|
+
**
|
|
172
|
+
** Copyright (C) 2013, Naoki Arita
|
|
173
|
+
** All rights reserved.
|
|
174
|
+
**
|
|
175
|
+
** Redistribution and use in source and binary forms, with or without
|
|
176
|
+
** modification, are permitted provided that the following conditions
|
|
177
|
+
** are met:
|
|
178
|
+
**
|
|
179
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
180
|
+
** notice, this list of conditions and the following disclaimer.
|
|
181
|
+
**
|
|
182
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
183
|
+
** notice, this list of conditions and the following disclaimer in
|
|
184
|
+
** the documentation and/or other materials provided with the
|
|
185
|
+
** distribution.
|
|
186
|
+
**
|
|
187
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
188
|
+
** the International Astronomical Union nor the names of its
|
|
189
|
+
** contributors may be used to endorse or promote products derived
|
|
190
|
+
** from this software without specific prior written permission.
|
|
191
|
+
**
|
|
192
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
193
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
194
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
195
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
196
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
197
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
198
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
199
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
200
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
201
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
202
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
203
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
204
|
+
**
|
|
205
|
+
**--------------------------------------------------------------------*/
|
|
206
|
+
}
|