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