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