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/af2a.c
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
#include <stdlib.h>
|
|
3
|
+
|
|
4
|
+
int iauAf2a(char s, int ideg, int iamin, double asec, double *rad)
|
|
5
|
+
/*
|
|
6
|
+
** - - - - - - - -
|
|
7
|
+
** i a u A f 2 a
|
|
8
|
+
** - - - - - - - -
|
|
9
|
+
**
|
|
10
|
+
** Convert degrees, arcminutes, arcseconds to radians.
|
|
11
|
+
**
|
|
12
|
+
** Status: support function.
|
|
13
|
+
**
|
|
14
|
+
** Given:
|
|
15
|
+
** s char sign: '-' = negative, otherwise positive
|
|
16
|
+
** ideg int degrees
|
|
17
|
+
** iamin int arcminutes
|
|
18
|
+
** asec double arcseconds
|
|
19
|
+
**
|
|
20
|
+
** Returned:
|
|
21
|
+
** rad double angle in radians
|
|
22
|
+
**
|
|
23
|
+
** Returned (function value):
|
|
24
|
+
** int status: 0 = OK
|
|
25
|
+
** 1 = ideg outside range 0-359
|
|
26
|
+
** 2 = iamin outside range 0-59
|
|
27
|
+
** 3 = asec outside range 0-59.999...
|
|
28
|
+
**
|
|
29
|
+
** Notes:
|
|
30
|
+
**
|
|
31
|
+
** 1) The result is computed even if any of the range checks fail.
|
|
32
|
+
**
|
|
33
|
+
** 2) Negative ideg, iamin and/or asec produce a warning status, but
|
|
34
|
+
** the absolute value is used in the conversion.
|
|
35
|
+
**
|
|
36
|
+
** 3) If there are multiple errors, the status value reflects only the
|
|
37
|
+
** first, the smallest taking precedence.
|
|
38
|
+
**
|
|
39
|
+
** This revision: 2012 February 13
|
|
40
|
+
**
|
|
41
|
+
** Original version 2012-03-01
|
|
42
|
+
**
|
|
43
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
44
|
+
*/
|
|
45
|
+
{
|
|
46
|
+
|
|
47
|
+
/* Compute the interval. */
|
|
48
|
+
*rad = ( s == '-' ? -1.0 : 1.0 ) *
|
|
49
|
+
( 60.0 * ( 60.0 * ( (double) abs(ideg) ) +
|
|
50
|
+
( (double) abs(iamin) ) ) +
|
|
51
|
+
fabs(asec) ) * DAS2R;
|
|
52
|
+
|
|
53
|
+
/* Validate arguments and return status. */
|
|
54
|
+
if ( ideg < 0 || ideg > 359 ) return 1;
|
|
55
|
+
if ( iamin < 0 || iamin > 59 ) return 2;
|
|
56
|
+
if ( asec < 0.0 || asec >= 60.0 ) return 3;
|
|
57
|
+
return 0;
|
|
58
|
+
|
|
59
|
+
/*----------------------------------------------------------------------
|
|
60
|
+
**
|
|
61
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
62
|
+
**
|
|
63
|
+
** This file is redistributed and relicensed in accordance with
|
|
64
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
65
|
+
**
|
|
66
|
+
** The original library is available from IAU Standards of
|
|
67
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
68
|
+
**
|
|
69
|
+
**
|
|
70
|
+
**
|
|
71
|
+
**
|
|
72
|
+
**
|
|
73
|
+
** Copyright (C) 2013, Naoki Arita
|
|
74
|
+
** All rights reserved.
|
|
75
|
+
**
|
|
76
|
+
** Redistribution and use in source and binary forms, with or without
|
|
77
|
+
** modification, are permitted provided that the following conditions
|
|
78
|
+
** are met:
|
|
79
|
+
**
|
|
80
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
81
|
+
** notice, this list of conditions and the following disclaimer.
|
|
82
|
+
**
|
|
83
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
84
|
+
** notice, this list of conditions and the following disclaimer in
|
|
85
|
+
** the documentation and/or other materials provided with the
|
|
86
|
+
** distribution.
|
|
87
|
+
**
|
|
88
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
89
|
+
** the International Astronomical Union nor the names of its
|
|
90
|
+
** contributors may be used to endorse or promote products derived
|
|
91
|
+
** from this software without specific prior written permission.
|
|
92
|
+
**
|
|
93
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
94
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
95
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
96
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
97
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
98
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
99
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
100
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
101
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
102
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
103
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
104
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
105
|
+
**
|
|
106
|
+
**--------------------------------------------------------------------*/
|
|
107
|
+
}
|
data/ext/celes/anp.c
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
double iauAnp(double a)
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - - -
|
|
6
|
+
** i a u A n p
|
|
7
|
+
** - - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Normalize angle into the range 0 <= a < 2pi.
|
|
10
|
+
**
|
|
11
|
+
** Status: vector/matrix support function.
|
|
12
|
+
**
|
|
13
|
+
** Given:
|
|
14
|
+
** a double angle (radians)
|
|
15
|
+
**
|
|
16
|
+
** Returned (function value):
|
|
17
|
+
** double angle in range 0-2pi
|
|
18
|
+
**
|
|
19
|
+
** This revision: 2008 May 16
|
|
20
|
+
**
|
|
21
|
+
** Original version 2012-03-01
|
|
22
|
+
**
|
|
23
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
24
|
+
*/
|
|
25
|
+
{
|
|
26
|
+
double w;
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
w = fmod(a, D2PI);
|
|
30
|
+
if (w < 0) w += D2PI;
|
|
31
|
+
|
|
32
|
+
return w;
|
|
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/anpm.c
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
double iauAnpm(double a)
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - - - -
|
|
6
|
+
** i a u A n p m
|
|
7
|
+
** - - - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Normalize angle into the range -pi <= a < +pi.
|
|
10
|
+
**
|
|
11
|
+
** Status: vector/matrix support function.
|
|
12
|
+
**
|
|
13
|
+
** Given:
|
|
14
|
+
** a double angle (radians)
|
|
15
|
+
**
|
|
16
|
+
** Returned (function value):
|
|
17
|
+
** double angle in range +/-pi
|
|
18
|
+
**
|
|
19
|
+
** This revision: 2008 May 16
|
|
20
|
+
**
|
|
21
|
+
** Original version 2012-03-01
|
|
22
|
+
**
|
|
23
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
24
|
+
*/
|
|
25
|
+
{
|
|
26
|
+
double w;
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
w = fmod(a, D2PI);
|
|
30
|
+
if (fabs(w) >= DPI) w -= dsign(D2PI, a);
|
|
31
|
+
|
|
32
|
+
return w;
|
|
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/bi00.c
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
void iauBi00(double *dpsibi, double *depsbi, double *dra)
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - - - -
|
|
6
|
+
** i a u B i 0 0
|
|
7
|
+
** - - - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Frame bias components of IAU 2000 precession-nutation models (part
|
|
10
|
+
** of MHB2000 with additions).
|
|
11
|
+
**
|
|
12
|
+
** Status: canonical model.
|
|
13
|
+
**
|
|
14
|
+
** Returned:
|
|
15
|
+
** dpsibi,depsbi double longitude and obliquity corrections
|
|
16
|
+
** dra double the ICRS RA of the J2000.0 mean equinox
|
|
17
|
+
**
|
|
18
|
+
** Notes:
|
|
19
|
+
**
|
|
20
|
+
** 1) The frame bias corrections in longitude and obliquity (radians)
|
|
21
|
+
** are required in order to correct for the offset between the GCRS
|
|
22
|
+
** pole and the mean J2000.0 pole. They define, with respect to the
|
|
23
|
+
** GCRS frame, a J2000.0 mean pole that is consistent with the rest
|
|
24
|
+
** of the IAU 2000A precession-nutation model.
|
|
25
|
+
**
|
|
26
|
+
** 2) In addition to the displacement of the pole, the complete
|
|
27
|
+
** description of the frame bias requires also an offset in right
|
|
28
|
+
** ascension. This is not part of the IAU 2000A model, and is from
|
|
29
|
+
** Chapront et al. (2002). It is returned in radians.
|
|
30
|
+
**
|
|
31
|
+
** 3) This is a supplemented implementation of one aspect of the IAU
|
|
32
|
+
** 2000A nutation model, formally adopted by the IAU General
|
|
33
|
+
** Assembly in 2000, namely MHB2000 (Mathews et al. 2002).
|
|
34
|
+
**
|
|
35
|
+
** References:
|
|
36
|
+
**
|
|
37
|
+
** Chapront, J., Chapront-Touze, M. & Francou, G., Astron.
|
|
38
|
+
** Astrophys., 387, 700, 2002.
|
|
39
|
+
**
|
|
40
|
+
** Mathews, P.M., Herring, T.A., Buffet, B.A., "Modeling of nutation
|
|
41
|
+
** and precession New nutation series for nonrigid Earth and
|
|
42
|
+
** insights into the Earth's interior", J.Geophys.Res., 107, B4,
|
|
43
|
+
** 2002. The MHB2000 code itself was obtained on 9th September 2002
|
|
44
|
+
** from ftp://maia.usno.navy.mil/conv2000/chapter5/IAU2000A.
|
|
45
|
+
**
|
|
46
|
+
** This revision: 2009 December 17
|
|
47
|
+
**
|
|
48
|
+
** Original version 2012-03-01
|
|
49
|
+
**
|
|
50
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
51
|
+
*/
|
|
52
|
+
{
|
|
53
|
+
/* The frame bias corrections in longitude and obliquity */
|
|
54
|
+
const double DPBIAS = -0.041775 * DAS2R,
|
|
55
|
+
DEBIAS = -0.0068192 * DAS2R;
|
|
56
|
+
|
|
57
|
+
/* The ICRS RA of the J2000.0 equinox (Chapront et al., 2002) */
|
|
58
|
+
const double DRA0 = -0.0146 * DAS2R;
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
/* Return the results (which are fixed). */
|
|
62
|
+
*dpsibi = DPBIAS;
|
|
63
|
+
*depsbi = DEBIAS;
|
|
64
|
+
*dra = DRA0;
|
|
65
|
+
|
|
66
|
+
return;
|
|
67
|
+
|
|
68
|
+
/*----------------------------------------------------------------------
|
|
69
|
+
**
|
|
70
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
71
|
+
**
|
|
72
|
+
** This file is redistributed and relicensed in accordance with
|
|
73
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
74
|
+
**
|
|
75
|
+
** The original library is available from IAU Standards of
|
|
76
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
77
|
+
**
|
|
78
|
+
**
|
|
79
|
+
**
|
|
80
|
+
**
|
|
81
|
+
**
|
|
82
|
+
** Copyright (C) 2013, Naoki Arita
|
|
83
|
+
** All rights reserved.
|
|
84
|
+
**
|
|
85
|
+
** Redistribution and use in source and binary forms, with or without
|
|
86
|
+
** modification, are permitted provided that the following conditions
|
|
87
|
+
** are met:
|
|
88
|
+
**
|
|
89
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
90
|
+
** notice, this list of conditions and the following disclaimer.
|
|
91
|
+
**
|
|
92
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
93
|
+
** notice, this list of conditions and the following disclaimer in
|
|
94
|
+
** the documentation and/or other materials provided with the
|
|
95
|
+
** distribution.
|
|
96
|
+
**
|
|
97
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
98
|
+
** the International Astronomical Union nor the names of its
|
|
99
|
+
** contributors may be used to endorse or promote products derived
|
|
100
|
+
** from this software without specific prior written permission.
|
|
101
|
+
**
|
|
102
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
103
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
104
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
105
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
106
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
107
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
108
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
109
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
110
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
111
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
112
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
113
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
114
|
+
**
|
|
115
|
+
**--------------------------------------------------------------------*/
|
|
116
|
+
}
|
data/ext/celes/bp00.c
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
void iauBp00(double date1, double date2,
|
|
4
|
+
double rb[3][3], double rp[3][3], double rbp[3][3])
|
|
5
|
+
/*
|
|
6
|
+
** - - - - - - - -
|
|
7
|
+
** i a u B p 0 0
|
|
8
|
+
** - - - - - - - -
|
|
9
|
+
**
|
|
10
|
+
** Frame bias and precession, IAU 2000.
|
|
11
|
+
**
|
|
12
|
+
** Status: canonical model.
|
|
13
|
+
**
|
|
14
|
+
** Given:
|
|
15
|
+
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
|
16
|
+
**
|
|
17
|
+
** Returned:
|
|
18
|
+
** rb double[3][3] frame bias matrix (Note 2)
|
|
19
|
+
** rp double[3][3] precession matrix (Note 3)
|
|
20
|
+
** rbp double[3][3] bias-precession matrix (Note 4)
|
|
21
|
+
**
|
|
22
|
+
** Notes:
|
|
23
|
+
**
|
|
24
|
+
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
|
25
|
+
** convenient way between the two arguments. For example,
|
|
26
|
+
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
|
27
|
+
** among others:
|
|
28
|
+
**
|
|
29
|
+
** date1 date2
|
|
30
|
+
**
|
|
31
|
+
** 2450123.7 0.0 (JD method)
|
|
32
|
+
** 2451545.0 -1421.3 (J2000 method)
|
|
33
|
+
** 2400000.5 50123.2 (MJD method)
|
|
34
|
+
** 2450123.5 0.2 (date & time method)
|
|
35
|
+
**
|
|
36
|
+
** The JD method is the most natural and convenient to use in
|
|
37
|
+
** cases where the loss of several decimal digits of resolution
|
|
38
|
+
** is acceptable. The J2000 method is best matched to the way
|
|
39
|
+
** the argument is handled internally and will deliver the
|
|
40
|
+
** optimum resolution. The MJD method and the date & time methods
|
|
41
|
+
** are both good compromises between resolution and convenience.
|
|
42
|
+
**
|
|
43
|
+
** 2) The matrix rb transforms vectors from GCRS to mean J2000.0 by
|
|
44
|
+
** applying frame bias.
|
|
45
|
+
**
|
|
46
|
+
** 3) The matrix rp transforms vectors from J2000.0 mean equator and
|
|
47
|
+
** equinox to mean equator and equinox of date by applying
|
|
48
|
+
** precession.
|
|
49
|
+
**
|
|
50
|
+
** 4) The matrix rbp transforms vectors from GCRS to mean equator and
|
|
51
|
+
** equinox of date by applying frame bias then precession. It is
|
|
52
|
+
** the product rp x rb.
|
|
53
|
+
**
|
|
54
|
+
** 5) It is permissible to re-use the same array in the returned
|
|
55
|
+
** arguments. The arrays are filled in the order given.
|
|
56
|
+
**
|
|
57
|
+
** Called:
|
|
58
|
+
** iauBi00 frame bias components, IAU 2000
|
|
59
|
+
** iauPr00 IAU 2000 precession adjustments
|
|
60
|
+
** iauIr initialize r-matrix to identity
|
|
61
|
+
** iauRx rotate around X-axis
|
|
62
|
+
** iauRy rotate around Y-axis
|
|
63
|
+
** iauRz rotate around Z-axis
|
|
64
|
+
** iauCr copy r-matrix
|
|
65
|
+
** iauRxr product of two r-matrices
|
|
66
|
+
**
|
|
67
|
+
** Reference:
|
|
68
|
+
** "Expressions for the Celestial Intermediate Pole and Celestial
|
|
69
|
+
** Ephemeris Origin consistent with the IAU 2000A precession-
|
|
70
|
+
** nutation model", Astron.Astrophys. 400, 1145-1154 (2003)
|
|
71
|
+
**
|
|
72
|
+
** n.b. The celestial ephemeris origin (CEO) was renamed "celestial
|
|
73
|
+
** intermediate origin" (CIO) by IAU 2006 Resolution 2.
|
|
74
|
+
**
|
|
75
|
+
** This revision: 2010 January 18
|
|
76
|
+
**
|
|
77
|
+
** Original version 2012-03-01
|
|
78
|
+
**
|
|
79
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
80
|
+
*/
|
|
81
|
+
{
|
|
82
|
+
/* J2000.0 obliquity (Lieske et al. 1977) */
|
|
83
|
+
const double EPS0 = 84381.448 * DAS2R;
|
|
84
|
+
|
|
85
|
+
double t, dpsibi, depsbi;
|
|
86
|
+
double dra0, psia77, oma77, chia, dpsipr, depspr, psia, oma,
|
|
87
|
+
rbw[3][3];
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
/* Interval between fundamental epoch J2000.0 and current date (JC). */
|
|
91
|
+
t = ((date1 - DJ00) + date2) / DJC;
|
|
92
|
+
|
|
93
|
+
/* Frame bias. */
|
|
94
|
+
iauBi00(&dpsibi, &depsbi, &dra0);
|
|
95
|
+
|
|
96
|
+
/* Precession angles (Lieske et al. 1977) */
|
|
97
|
+
psia77 = (5038.7784 + (-1.07259 + (-0.001147) * t) * t) * t * DAS2R;
|
|
98
|
+
oma77 = EPS0 + ((0.05127 + (-0.007726) * t) * t) * t * DAS2R;
|
|
99
|
+
chia = ( 10.5526 + (-2.38064 + (-0.001125) * t) * t) * t * DAS2R;
|
|
100
|
+
|
|
101
|
+
/* Apply IAU 2000 precession corrections. */
|
|
102
|
+
iauPr00(date1, date2, &dpsipr, &depspr);
|
|
103
|
+
psia = psia77 + dpsipr;
|
|
104
|
+
oma = oma77 + depspr;
|
|
105
|
+
|
|
106
|
+
/* Frame bias matrix: GCRS to J2000.0. */
|
|
107
|
+
iauIr(rbw);
|
|
108
|
+
iauRz(dra0, rbw);
|
|
109
|
+
iauRy(dpsibi * sin(EPS0), rbw);
|
|
110
|
+
iauRx(-depsbi, rbw);
|
|
111
|
+
iauCr(rbw, rb);
|
|
112
|
+
|
|
113
|
+
/* Precession matrix: J2000.0 to mean of date. */
|
|
114
|
+
iauIr(rp);
|
|
115
|
+
iauRx(EPS0, rp);
|
|
116
|
+
iauRz(-psia, rp);
|
|
117
|
+
iauRx(-oma, rp);
|
|
118
|
+
iauRz(chia, rp);
|
|
119
|
+
|
|
120
|
+
/* Bias-precession matrix: GCRS to mean of date. */
|
|
121
|
+
iauRxr(rp, rbw, rbp);
|
|
122
|
+
|
|
123
|
+
return;
|
|
124
|
+
|
|
125
|
+
/*----------------------------------------------------------------------
|
|
126
|
+
**
|
|
127
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
128
|
+
**
|
|
129
|
+
** This file is redistributed and relicensed in accordance with
|
|
130
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
131
|
+
**
|
|
132
|
+
** The original library is available from IAU Standards of
|
|
133
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
134
|
+
**
|
|
135
|
+
**
|
|
136
|
+
**
|
|
137
|
+
**
|
|
138
|
+
**
|
|
139
|
+
** Copyright (C) 2013, Naoki Arita
|
|
140
|
+
** All rights reserved.
|
|
141
|
+
**
|
|
142
|
+
** Redistribution and use in source and binary forms, with or without
|
|
143
|
+
** modification, are permitted provided that the following conditions
|
|
144
|
+
** are met:
|
|
145
|
+
**
|
|
146
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
147
|
+
** notice, this list of conditions and the following disclaimer.
|
|
148
|
+
**
|
|
149
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
150
|
+
** notice, this list of conditions and the following disclaimer in
|
|
151
|
+
** the documentation and/or other materials provided with the
|
|
152
|
+
** distribution.
|
|
153
|
+
**
|
|
154
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
155
|
+
** the International Astronomical Union nor the names of its
|
|
156
|
+
** contributors may be used to endorse or promote products derived
|
|
157
|
+
** from this software without specific prior written permission.
|
|
158
|
+
**
|
|
159
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
160
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
161
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
162
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
163
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
164
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
165
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
166
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
167
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
168
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
169
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
170
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
171
|
+
**
|
|
172
|
+
**--------------------------------------------------------------------*/
|
|
173
|
+
}
|