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 13 of file SOARotation.h.

Constructor & Destructor Documentation

◆ SOARotation() [1/5]

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

Definition at line 15 of file SOARotation.h.

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

15 {}

◆ SOARotation() [2/5]

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

Definition at line 17 of file SOARotation.h.

17 : R11(1), R12(0), R13(0), R21(0), R22(1), R23(0), R31(0), R32(0), R33(1) {}

◆ SOARotation() [3/5]

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 19 of file SOARotation.h.

20  : R11(xx), R12(xy), R13(xz), R21(yx), R22(yy), R23(yz), R31(zx), R32(zy), R33(zz) {}
constexpr T const & zz() const
Definition: SOARotation.h:68
constexpr T const & zy() const
Definition: SOARotation.h:67
constexpr T const & zx() const
Definition: SOARotation.h:66
constexpr T const & xx() const
Definition: SOARotation.h:60
constexpr T const & xy() const
Definition: SOARotation.h:61
constexpr T const & yy() const
Definition: SOARotation.h:64
constexpr T const & yz() const
Definition: SOARotation.h:65
constexpr T const & yx() const
Definition: SOARotation.h:63
constexpr T const & xz() const
Definition: SOARotation.h:62

◆ SOARotation() [4/5]

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

Definition at line 22 of file SOARotation.h.

◆ SOARotation() [5/5]

template<class T>
template<typename U >
constexpr SOARotation< T >::SOARotation ( const TkRotation< U > &  a)
inline

Definition at line 26 of file SOARotation.h.

27  : R11(a.xx()),
28  R12(a.xy()),
29  R13(a.xz()),
30  R21(a.yx()),
31  R22(a.yy()),
32  R23(a.yz()),
33  R31(a.zx()),
34  R32(a.zy()),
35  R33(a.zz()) {}
double a
Definition: hdecay.h:121

Member Function Documentation

◆ multiply()

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

Definition at line 40 of file SOARotation.h.

40  {
41  ux = R11 * vx + R12 * vy + R13 * vz;
42  uy = R21 * vx + R22 * vy + R23 * vz;
43  uz = R31 * vx + R32 * vy + R33 * vz;
44  }

◆ multiplyInverse() [1/2]

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

Definition at line 47 of file SOARotation.h.

47  {
48  ux = R11 * vx + R21 * vy + R31 * vz;
49  uy = R12 * vx + R22 * vy + R32 * vz;
50  uz = R13 * vx + R23 * vy + R33 * vz;
51  }

◆ multiplyInverse() [2/2]

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 54 of file SOARotation.h.

54  {
55  ux = R11 * vx + R21 * vy;
56  uy = R12 * vx + R22 * vy;
57  uz = R13 * vx + R23 * vy;
58  }

◆ transposed()

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

Definition at line 37 of file SOARotation.h.

◆ xx()

template<class T>
constexpr T const& SOARotation< T >::xx ( ) const
inline

Definition at line 60 of file SOARotation.h.

Referenced by geometryXMLparser.Alignable::covariance().

60 { return R11; }

◆ xy()

template<class T>
constexpr T const& SOARotation< T >::xy ( ) const
inline

Definition at line 61 of file SOARotation.h.

Referenced by geometryXMLparser.Alignable::covariance().

61 { return R12; }

◆ xz()

template<class T>
constexpr T const& SOARotation< T >::xz ( ) const
inline

Definition at line 62 of file SOARotation.h.

Referenced by geometryXMLparser.Alignable::covariance().

62 { return R13; }

◆ yx()

template<class T>
constexpr T const& SOARotation< T >::yx ( ) const
inline

Definition at line 63 of file SOARotation.h.

63 { return R21; }

◆ yy()

template<class T>
constexpr T const& SOARotation< T >::yy ( ) const
inline

Definition at line 64 of file SOARotation.h.

Referenced by geometryXMLparser.Alignable::covariance().

64 { return R22; }

◆ yz()

template<class T>
constexpr T const& SOARotation< T >::yz ( ) const
inline

Definition at line 65 of file SOARotation.h.

Referenced by geometryXMLparser.Alignable::covariance().

65 { return R23; }

◆ zx()

template<class T>
constexpr T const& SOARotation< T >::zx ( ) const
inline

Definition at line 66 of file SOARotation.h.

66 { return R31; }

◆ zy()

template<class T>
constexpr T const& SOARotation< T >::zy ( ) const
inline

Definition at line 67 of file SOARotation.h.

67 { return R32; }

◆ zz()

template<class T>
constexpr T const& SOARotation< T >::zz ( ) const
inline

Definition at line 68 of file SOARotation.h.

Referenced by geometryXMLparser.Alignable::covariance().

68 { return R33; }

Member Data Documentation

◆ R11

template<class T>
T SOARotation< T >::R11
private

◆ R12

template<class T>
T SOARotation< T >::R12
private

◆ R13

template<class T>
T SOARotation< T >::R13
private

◆ R21

template<class T>
T SOARotation< T >::R21
private

◆ R22

template<class T>
T SOARotation< T >::R22
private

◆ R23

template<class T>
T SOARotation< T >::R23
private

◆ R31

template<class T>
T SOARotation< T >::R31
private

◆ R32

template<class T>
T SOARotation< T >::R32
private

◆ R33

template<class T>
T SOARotation< T >::R33
private