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