source: branches/FACT++_lidctrl_usb/erfa/src/pmat76.c@ 19875

Last change on this file since 19875 was 18711, checked in by tbretz, 10 years ago
Updated to ERFA 1.3.0 (no relevant code change except the leap second at the beginning of 2017)
File size: 5.9 KB
Line 
1#include "erfa.h"
2
3void eraPmat76(double date1, double date2, double rmatp[3][3])
4/*
5** - - - - - - - - - -
6** e r a P m a t 7 6
7** - - - - - - - - - -
8**
9** Precession matrix from J2000.0 to a specified date, IAU 1976 model.
10**
11** Given:
12** date1,date2 double ending date, TT (Note 1)
13**
14** Returned:
15** rmatp double[3][3] precession matrix, J2000.0 -> date1+date2
16**
17** Notes:
18**
19** 1) The TT date date1+date2 is a Julian Date, apportioned in any
20** convenient way between the two arguments. For example,
21** JD(TT)=2450123.7 could be expressed in any of these ways,
22** among others:
23**
24** date1 date2
25**
26** 2450123.7 0.0 (JD method)
27** 2451545.0 -1421.3 (J2000 method)
28** 2400000.5 50123.2 (MJD method)
29** 2450123.5 0.2 (date & time method)
30**
31** The JD method is the most natural and convenient to use in
32** cases where the loss of several decimal digits of resolution
33** is acceptable. The J2000 method is best matched to the way
34** the argument is handled internally and will deliver the
35** optimum resolution. The MJD method and the date & time methods
36** are both good compromises between resolution and convenience.
37**
38** 2) The matrix operates in the sense V(date) = RMATP * V(J2000),
39** where the p-vector V(J2000) is with respect to the mean
40** equatorial triad of epoch J2000.0 and the p-vector V(date)
41** is with respect to the mean equatorial triad of the given
42** date.
43**
44** 3) Though the matrix method itself is rigorous, the precession
45** angles are expressed through canonical polynomials which are
46** valid only for a limited time span. In addition, the IAU 1976
47** precession rate is known to be imperfect. The absolute accuracy
48** of the present formulation is better than 0.1 arcsec from
49** 1960AD to 2040AD, better than 1 arcsec from 1640AD to 2360AD,
50** and remains below 3 arcsec for the whole of the period
51** 500BC to 3000AD. The errors exceed 10 arcsec outside the
52** range 1200BC to 3900AD, exceed 100 arcsec outside 4200BC to
53** 5600AD and exceed 1000 arcsec outside 6800BC to 8200AD.
54**
55** Called:
56** eraPrec76 accumulated precession angles, IAU 1976
57** eraIr initialize r-matrix to identity
58** eraRz rotate around Z-axis
59** eraRy rotate around Y-axis
60** eraCr copy r-matrix
61**
62** References:
63**
64** Lieske, J.H., 1979, Astron.Astrophys. 73, 282.
65** equations (6) & (7), p283.
66**
67** Kaplan,G.H., 1981. USNO circular no. 163, pA2.
68**
69** Copyright (C) 2013-2016, NumFOCUS Foundation.
70** Derived, with permission, from the SOFA library. See notes at end of file.
71*/
72{
73 double zeta, z, theta, wmat[3][3];
74
75
76/* Precession Euler angles, J2000.0 to specified date. */
77 eraPrec76(ERFA_DJ00, 0.0, date1, date2, &zeta, &z, &theta);
78
79/* Form the rotation matrix. */
80 eraIr( wmat);
81 eraRz( -zeta, wmat);
82 eraRy( theta, wmat);
83 eraRz( -z, wmat);
84 eraCr( wmat, rmatp);
85
86 return;
87
88}
89/*----------------------------------------------------------------------
90**
91**
92** Copyright (C) 2013-2016, NumFOCUS Foundation.
93** All rights reserved.
94**
95** This library is derived, with permission, from the International
96** Astronomical Union's "Standards of Fundamental Astronomy" library,
97** available from http://www.iausofa.org.
98**
99** The ERFA version is intended to retain identical functionality to
100** the SOFA library, but made distinct through different function and
101** file names, as set out in the SOFA license conditions. The SOFA
102** original has a role as a reference standard for the IAU and IERS,
103** and consequently redistribution is permitted only in its unaltered
104** state. The ERFA version is not subject to this restriction and
105** therefore can be included in distributions which do not support the
106** concept of "read only" software.
107**
108** Although the intent is to replicate the SOFA API (other than
109** replacement of prefix names) and results (with the exception of
110** bugs; any that are discovered will be fixed), SOFA is not
111** responsible for any errors found in this version of the library.
112**
113** If you wish to acknowledge the SOFA heritage, please acknowledge
114** that you are using a library derived from SOFA, rather than SOFA
115** itself.
116**
117**
118** TERMS AND CONDITIONS
119**
120** Redistribution and use in source and binary forms, with or without
121** modification, are permitted provided that the following conditions
122** are met:
123**
124** 1 Redistributions of source code must retain the above copyright
125** notice, this list of conditions and the following disclaimer.
126**
127** 2 Redistributions in binary form must reproduce the above copyright
128** notice, this list of conditions and the following disclaimer in
129** the documentation and/or other materials provided with the
130** distribution.
131**
132** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
133** the International Astronomical Union nor the names of its
134** contributors may be used to endorse or promote products derived
135** from this software without specific prior written permission.
136**
137** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
138** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
139** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
140** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
141** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
142** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
143** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
144** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
145** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
146** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
147** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
148** POSSIBILITY OF SUCH DAMAGE.
149**
150*/
Note: See TracBrowser for help on using the repository browser.