1 #include "erfa.h"
2
eraRz(double psi,double r[3][3])3 void eraRz(double psi, double r[3][3])
4 /*
5 ** - - - - - -
6 ** e r a R z
7 ** - - - - - -
8 **
9 ** Rotate an r-matrix about the z-axis.
10 **
11 ** Given:
12 ** psi double angle (radians)
13 **
14 ** Given and returned:
15 ** r double[3][3] r-matrix, rotated
16 **
17 ** Notes:
18 **
19 ** 1) Calling this function with positive psi incorporates in the
20 ** supplied r-matrix r an additional rotation, about the z-axis,
21 ** anticlockwise as seen looking towards the origin from positive z.
22 **
23 ** 2) The additional rotation can be represented by this matrix:
24 **
25 ** ( + cos(psi) + sin(psi) 0 )
26 ** ( )
27 ** ( - sin(psi) + cos(psi) 0 )
28 ** ( )
29 ** ( 0 0 1 )
30 **
31 ** This revision: 2021 May 11
32 **
33 ** Copyright (C) 2013-2021, NumFOCUS Foundation.
34 ** Derived, with permission, from the SOFA library. See notes at end of file.
35 */
36 {
37 double s, c, a00, a01, a02, a10, a11, a12;
38
39
40 s = sin(psi);
41 c = cos(psi);
42
43 a00 = c*r[0][0] + s*r[1][0];
44 a01 = c*r[0][1] + s*r[1][1];
45 a02 = c*r[0][2] + s*r[1][2];
46 a10 = - s*r[0][0] + c*r[1][0];
47 a11 = - s*r[0][1] + c*r[1][1];
48 a12 = - s*r[0][2] + c*r[1][2];
49
50 r[0][0] = a00;
51 r[0][1] = a01;
52 r[0][2] = a02;
53 r[1][0] = a10;
54 r[1][1] = a11;
55 r[1][2] = a12;
56
57 /* Finished. */
58
59 }
60 /*----------------------------------------------------------------------
61 **
62 **
63 ** Copyright (C) 2013-2021, NumFOCUS Foundation.
64 ** All rights reserved.
65 **
66 ** This library is derived, with permission, from the International
67 ** Astronomical Union's "Standards of Fundamental Astronomy" library,
68 ** available from http://www.iausofa.org.
69 **
70 ** The ERFA version is intended to retain identical functionality to
71 ** the SOFA library, but made distinct through different function and
72 ** file names, as set out in the SOFA license conditions. The SOFA
73 ** original has a role as a reference standard for the IAU and IERS,
74 ** and consequently redistribution is permitted only in its unaltered
75 ** state. The ERFA version is not subject to this restriction and
76 ** therefore can be included in distributions which do not support the
77 ** concept of "read only" software.
78 **
79 ** Although the intent is to replicate the SOFA API (other than
80 ** replacement of prefix names) and results (with the exception of
81 ** bugs; any that are discovered will be fixed), SOFA is not
82 ** responsible for any errors found in this version of the library.
83 **
84 ** If you wish to acknowledge the SOFA heritage, please acknowledge
85 ** that you are using a library derived from SOFA, rather than SOFA
86 ** itself.
87 **
88 **
89 ** TERMS AND CONDITIONS
90 **
91 ** Redistribution and use in source and binary forms, with or without
92 ** modification, are permitted provided that the following conditions
93 ** are met:
94 **
95 ** 1 Redistributions of source code must retain the above copyright
96 ** notice, this list of conditions and the following disclaimer.
97 **
98 ** 2 Redistributions in binary form must reproduce the above copyright
99 ** notice, this list of conditions and the following disclaimer in
100 ** the documentation and/or other materials provided with the
101 ** distribution.
102 **
103 ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
104 ** the International Astronomical Union nor the names of its
105 ** contributors may be used to endorse or promote products derived
106 ** from this software without specific prior written permission.
107 **
108 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
109 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
110 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
111 ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
112 ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
113 ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
114 ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
115 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
116 ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
117 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
118 ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
119 ** POSSIBILITY OF SUCH DAMAGE.
120 **
121 */
122