CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
SOARotation< T > Class Template Reference

#include <SOARotation.h>

Public Member Functions

constexpr void multiply (T const vx, T const vy, T const vz, T &ux, T &uy, T &uz) const
 
constexpr void multiplyInverse (T const vx, T const vy, T const vz, T &ux, T &uy, T &uz) const
 
constexpr void multiplyInverse (T const vx, T const vy, T &ux, T &uy, T &uz) const
 
constexpr SOARotation ()
 
constexpr SOARotation (T)
 
constexpr SOARotation (T xx, T xy, T xz, T yx, T yy, T yz, T zx, T zy, T zz)
 
constexpr SOARotation (const T *p)
 
template<typename U >
constexpr SOARotation (const TkRotation< U > &a)
 
constexpr SOARotation transposed () const
 
constexpr T const & xx () const
 
constexpr T const & xy () const
 
constexpr T const & xz () const
 
constexpr T const & yx () const
 
constexpr T const & yy () const
 
constexpr T const & yz () const
 
constexpr T const & zx () const
 
constexpr T const & zy () const
 
constexpr T const & zz () const
 

Private Attributes

T R11
 
T R12
 
T R13
 
T R21
 
T R22
 
T R23
 
T R31
 
T R32
 
T R33
 

Detailed Description

template<class T>
class SOARotation< T >

Rotation matrix used by SOA (as in GPU)

Definition at line 12 of file SOARotation.h.

Constructor & Destructor Documentation

template<class T>
constexpr SOARotation< T >::SOARotation ( )
inline

Definition at line 16 of file SOARotation.h.

References constexpr.

Referenced by SOARotation< T >::transposed().

16 {}
template<class T>
constexpr SOARotation< T >::SOARotation ( T  )
inlineexplicit

Definition at line 19 of file SOARotation.h.

References constexpr.

19  :
20  R11(1), R12(0), R13(0),
21  R21(0), R22(1), R23(0),
22  R31(0), R32(0), R33(1) {}
template<class T>
constexpr SOARotation< T >::SOARotation ( T  xx,
T  xy,
T  xz,
T  yx,
T  yy,
T  yz,
T  zx,
T  zy,
T  zz 
)
inline

Definition at line 25 of file SOARotation.h.

References constexpr.

25  :
26  R11(xx), R12(xy), R13(xz),
27  R21(yx), R22(yy), R23(yz),
28  R31(zx), R32(zy), R33(zz) {}
constexpr T const & yy() const
Definition: SOARotation.h:89
constexpr T const & yz() const
Definition: SOARotation.h:91
constexpr T const & xz() const
Definition: SOARotation.h:85
constexpr T const & zz() const
Definition: SOARotation.h:97
constexpr T const & zy() const
Definition: SOARotation.h:95
constexpr T const & yx() const
Definition: SOARotation.h:87
constexpr T const & zx() const
Definition: SOARotation.h:93
constexpr T const & xx() const
Definition: SOARotation.h:81
constexpr T const & xy() const
Definition: SOARotation.h:83
template<class T>
constexpr SOARotation< T >::SOARotation ( const T p)
inline

Definition at line 31 of file SOARotation.h.

References constexpr.

31  :
32  R11(p[0]), R12(p[1]), R13(p[2]),
33  R21(p[3]), R22(p[4]), R23(p[5]),
34  R31(p[6]), R32(p[7]), R33(p[8]) {}
template<class T>
template<typename U >
constexpr SOARotation< T >::SOARotation ( const TkRotation< U > &  a)
inline

Definition at line 39 of file SOARotation.h.

References constexpr.

39  :
40  R11(a.xx()), R12(a.xy()), R13(a.xz()),
41  R21(a.yx()), R22(a.yy()), R23(a.yz()),
42  R31(a.zx()), R32(a.zy()), R33(a.zz()) {}
T xx() const
T yx() const
T zx() const
T xy() const
T zz() const
T zy() const
T yy() const
T xz() const
T yz() const

Member Function Documentation

template<class T>
constexpr void SOARotation< T >::multiply ( T const  vx,
T const  vy,
T const  vz,
T ux,
T uy,
T uz 
) const
inline
template<class T>
constexpr void SOARotation< T >::multiplyInverse ( T const  vx,
T const  vy,
T const  vz,
T ux,
T uy,
T uz 
) const
inline
template<class T>
constexpr void SOARotation< T >::multiplyInverse ( T const  vx,
T const  vy,
T ux,
T uy,
T uz 
) const
inline

Definition at line 72 of file SOARotation.h.

References constexpr, SOARotation< T >::R11, SOARotation< T >::R12, SOARotation< T >::R13, SOARotation< T >::R21, SOARotation< T >::R22, and SOARotation< T >::R23.

73  {
74  ux = R11*vx + R21*vy;
75  uy = R12*vx + R22*vy;
76  uz = R13*vx + R23*vy;
77  }
template<class T>
constexpr SOARotation SOARotation< T >::transposed ( ) const
inline
template<class T>
constexpr T const& SOARotation< T >::xx ( ) const
inline

Definition at line 81 of file SOARotation.h.

References constexpr, and SOARotation< T >::R11.

Referenced by geometryXMLparser.Alignable::covariance().

81 { return R11; }
template<class T>
constexpr T const& SOARotation< T >::xy ( ) const
inline

Definition at line 83 of file SOARotation.h.

References constexpr, and SOARotation< T >::R12.

Referenced by geometryXMLparser.Alignable::covariance().

83 { return R12; }
template<class T>
constexpr T const& SOARotation< T >::xz ( ) const
inline

Definition at line 85 of file SOARotation.h.

References constexpr, and SOARotation< T >::R13.

Referenced by geometryXMLparser.Alignable::covariance().

85 { return R13; }
template<class T>
constexpr T const& SOARotation< T >::yx ( ) const
inline

Definition at line 87 of file SOARotation.h.

References constexpr, and SOARotation< T >::R21.

87 { return R21; }
template<class T>
constexpr T const& SOARotation< T >::yy ( ) const
inline

Definition at line 89 of file SOARotation.h.

References constexpr, and SOARotation< T >::R22.

Referenced by geometryXMLparser.Alignable::covariance().

89 { return R22; }
template<class T>
constexpr T const& SOARotation< T >::yz ( ) const
inline

Definition at line 91 of file SOARotation.h.

References constexpr, and SOARotation< T >::R23.

Referenced by geometryXMLparser.Alignable::covariance().

91 { return R23; }
template<class T>
constexpr T const& SOARotation< T >::zx ( ) const
inline

Definition at line 93 of file SOARotation.h.

References constexpr, and SOARotation< T >::R31.

93 { return R31; }
template<class T>
constexpr T const& SOARotation< T >::zy ( ) const
inline

Definition at line 95 of file SOARotation.h.

References constexpr, and SOARotation< T >::R32.

95 { return R32; }
template<class T>
constexpr T const& SOARotation< T >::zz ( ) const
inline

Definition at line 97 of file SOARotation.h.

References SOARotation< T >::R33.

Referenced by geometryXMLparser.Alignable::covariance().

97 { return R33; }

Member Data Documentation

template<class T>
T SOARotation< T >::R11
private
template<class T>
T SOARotation< T >::R12
private
template<class T>
T SOARotation< T >::R13
private
template<class T>
T SOARotation< T >::R21
private
template<class T>
T SOARotation< T >::R22
private
template<class T>
T SOARotation< T >::R23
private
template<class T>
T SOARotation< T >::R31
private
template<class T>
T SOARotation< T >::R32
private
template<class T>
T SOARotation< T >::R33
private