File Coverage

erfasrc/src/fk5hz.c
Criterion Covered Total %
statement 0 11 0.0
branch n/a
condition n/a
subroutine n/a
pod n/a
total 0 11 0.0


line stmt bran cond sub pod time code
1             #include "erfa.h"
2              
3 0           void eraFk5hz(double r5, double d5, double date1, double date2,
4             double *rh, double *dh)
5             /*
6             ** - - - - - - - - -
7             ** e r a F k 5 h z
8             ** - - - - - - - - -
9             **
10             ** Transform an FK5 (J2000.0) star position into the system of the
11             ** Hipparcos catalogue, assuming zero Hipparcos proper motion.
12             **
13             ** Given:
14             ** r5 double FK5 RA (radians), equinox J2000.0, at date
15             ** d5 double FK5 Dec (radians), equinox J2000.0, at date
16             ** date1,date2 double TDB date (Notes 1,2)
17             **
18             ** Returned:
19             ** rh double Hipparcos RA (radians)
20             ** dh double Hipparcos Dec (radians)
21             **
22             ** Notes:
23             **
24             ** 1) This function converts a star position from the FK5 system to
25             ** the Hipparcos system, in such a way that the Hipparcos proper
26             ** motion is zero. Because such a star has, in general, a non-zero
27             ** proper motion in the FK5 system, the function requires the date
28             ** at which the position in the FK5 system was determined.
29             **
30             ** 2) The TT date date1+date2 is a Julian Date, apportioned in any
31             ** convenient way between the two arguments. For example,
32             ** JD(TT)=2450123.7 could be expressed in any of these ways,
33             ** among others:
34             **
35             ** date1 date2
36             **
37             ** 2450123.7 0.0 (JD method)
38             ** 2451545.0 -1421.3 (J2000 method)
39             ** 2400000.5 50123.2 (MJD method)
40             ** 2450123.5 0.2 (date & time method)
41             **
42             ** The JD method is the most natural and convenient to use in
43             ** cases where the loss of several decimal digits of resolution
44             ** is acceptable. The J2000 method is best matched to the way
45             ** the argument is handled internally and will deliver the
46             ** optimum resolution. The MJD method and the date & time methods
47             ** are both good compromises between resolution and convenience.
48             **
49             ** 3) The FK5 to Hipparcos transformation is modeled as a pure
50             ** rotation and spin; zonal errors in the FK5 catalogue are not
51             ** taken into account.
52             **
53             ** 4) The position returned by this function is in the Hipparcos
54             ** reference system but at date date1+date2.
55             **
56             ** 5) See also eraFk52h, eraH2fk5, eraHfk5z.
57             **
58             ** Called:
59             ** eraS2c spherical coordinates to unit vector
60             ** eraFk5hip FK5 to Hipparcos rotation and spin
61             ** eraSxp multiply p-vector by scalar
62             ** eraRv2m r-vector to r-matrix
63             ** eraTrxp product of transpose of r-matrix and p-vector
64             ** eraPxp vector product of two p-vectors
65             ** eraC2s p-vector to spherical
66             ** eraAnp normalize angle into range 0 to 2pi
67             **
68             ** Reference:
69             **
70             ** F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739.
71             **
72             ** Copyright (C) 2013-2020, NumFOCUS Foundation.
73             ** Derived, with permission, from the SOFA library. See notes at end of file.
74             */
75             {
76             double t, p5e[3], r5h[3][3], s5h[3], vst[3], rst[3][3], p5[3],
77             ph[3], w;
78              
79              
80             /* Interval from given date to fundamental epoch J2000.0 (JY). */
81 0           t = - ((date1 - ERFA_DJ00) + date2) / ERFA_DJY;
82              
83             /* FK5 barycentric position vector. */
84 0           eraS2c(r5, d5, p5e);
85              
86             /* FK5 to Hipparcos orientation matrix and spin vector. */
87 0           eraFk5hip(r5h, s5h);
88              
89             /* Accumulated Hipparcos wrt FK5 spin over that interval. */
90 0           eraSxp(t, s5h, vst);
91              
92             /* Express the accumulated spin as a rotation matrix. */
93 0           eraRv2m(vst, rst);
94              
95             /* Derotate the vector's FK5 axes back to date. */
96 0           eraTrxp(rst, p5e, p5);
97              
98             /* Rotate the vector into the Hipparcos system. */
99 0           eraRxp(r5h, p5, ph);
100              
101             /* Hipparcos vector to spherical. */
102 0           eraC2s(ph, &w, dh);
103 0           *rh = eraAnp(w);
104              
105 0           return;
106              
107             }
108             /*----------------------------------------------------------------------
109             **
110             **
111             ** Copyright (C) 2013-2020, NumFOCUS Foundation.
112             ** All rights reserved.
113             **
114             ** This library is derived, with permission, from the International
115             ** Astronomical Union's "Standards of Fundamental Astronomy" library,
116             ** available from http://www.iausofa.org.
117             **
118             ** The ERFA version is intended to retain identical functionality to
119             ** the SOFA library, but made distinct through different function and
120             ** file names, as set out in the SOFA license conditions. The SOFA
121             ** original has a role as a reference standard for the IAU and IERS,
122             ** and consequently redistribution is permitted only in its unaltered
123             ** state. The ERFA version is not subject to this restriction and
124             ** therefore can be included in distributions which do not support the
125             ** concept of "read only" software.
126             **
127             ** Although the intent is to replicate the SOFA API (other than
128             ** replacement of prefix names) and results (with the exception of
129             ** bugs; any that are discovered will be fixed), SOFA is not
130             ** responsible for any errors found in this version of the library.
131             **
132             ** If you wish to acknowledge the SOFA heritage, please acknowledge
133             ** that you are using a library derived from SOFA, rather than SOFA
134             ** itself.
135             **
136             **
137             ** TERMS AND CONDITIONS
138             **
139             ** Redistribution and use in source and binary forms, with or without
140             ** modification, are permitted provided that the following conditions
141             ** are met:
142             **
143             ** 1 Redistributions of source code must retain the above copyright
144             ** notice, this list of conditions and the following disclaimer.
145             **
146             ** 2 Redistributions in binary form must reproduce the above copyright
147             ** notice, this list of conditions and the following disclaimer in
148             ** the documentation and/or other materials provided with the
149             ** distribution.
150             **
151             ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
152             ** the International Astronomical Union nor the names of its
153             ** contributors may be used to endorse or promote products derived
154             ** from this software without specific prior written permission.
155             **
156             ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
157             ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
158             ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
159             ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
160             ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
161             ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
162             ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
163             ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
164             ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
165             ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
166             ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
167             ** POSSIBILITY OF SUCH DAMAGE.
168             **
169             */