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 &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 SOARotation ()
 
constexpr SOARotation (const T *p)
 
template<typename U >
constexpr SOARotation (const TkRotation< U > &a)
 
constexpr SOARotation (T xx, T xy, T xz, T yx, T yy, T yz, T zx, T zy, T zz)
 
constexpr SOARotation (T)
 
constexpr SOARotation transposed () const
 
constexpr const Txx () const
 
constexpr const Txy () const
 
constexpr const Txz () const
 
constexpr const Tyx () const
 
constexpr const Tyy () const
 
constexpr const Tyz () const
 
constexpr const Tzx () const
 
constexpr const Tzy () const
 
constexpr const Tzz () 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 ( )
inlineconstexpr

Definition at line 15 of file SOARotation.h.

15 {}

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

◆ SOARotation() [2/5]

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

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 
)
inlineconstexpr

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) {}

◆ SOARotation() [4/5]

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

Definition at line 22 of file SOARotation.h.

23  : R11(p[0]), R12(p[1]), R13(p[2]), R21(p[3]), R22(p[4]), R23(p[5]), R31(p[6]), R32(p[7]), R33(p[8]) {}

◆ SOARotation() [5/5]

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

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()) {}

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
inlineconstexpr

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 ux,
T uy,
T uz 
) const
inlineconstexpr

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  }

◆ multiplyInverse() [2/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
inlineconstexpr

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  }

◆ transposed()

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

Definition at line 37 of file SOARotation.h.

37 { return SOARotation(R11, R21, R31, R12, R22, R32, R13, R23, R33); }

◆ xx()

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

Definition at line 60 of file SOARotation.h.

60 { return R11; }

Referenced by geometryXMLparser.Alignable::covariance().

◆ xy()

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

Definition at line 61 of file SOARotation.h.

61 { return R12; }

Referenced by geometryXMLparser.Alignable::covariance().

◆ xz()

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

Definition at line 62 of file SOARotation.h.

62 { return R13; }

Referenced by geometryXMLparser.Alignable::covariance().

◆ yx()

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

Definition at line 63 of file SOARotation.h.

63 { return R21; }

◆ yy()

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

Definition at line 64 of file SOARotation.h.

64 { return R22; }

Referenced by geometryXMLparser.Alignable::covariance().

◆ yz()

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

Definition at line 65 of file SOARotation.h.

65 { return R23; }

Referenced by geometryXMLparser.Alignable::covariance().

◆ zx()

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

Definition at line 66 of file SOARotation.h.

66 { return R31; }

◆ zy()

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

Definition at line 67 of file SOARotation.h.

67 { return R32; }

◆ zz()

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

Definition at line 68 of file SOARotation.h.

68 { return R33; }

Referenced by geometryXMLparser.Alignable::covariance().

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
SOARotation::R21
T R21
Definition: SOARotation.h:72
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
SOARotation::xz
constexpr const T & xz() const
Definition: SOARotation.h:62
SOARotation::R13
T R13
Definition: SOARotation.h:71
SOARotation::R33
T R33
Definition: SOARotation.h:73
SOARotation::R22
T R22
Definition: SOARotation.h:72
SOARotation::zz
constexpr const T & zz() const
Definition: SOARotation.h:68
SOARotation::yz
constexpr const T & yz() const
Definition: SOARotation.h:65
SOARotation::R23
T R23
Definition: SOARotation.h:72
SOARotation::SOARotation
constexpr SOARotation()
Definition: SOARotation.h:15
a
double a
Definition: hdecay.h:119
SOARotation::zy
constexpr const T & zy() const
Definition: SOARotation.h:67
SOARotation::yx
constexpr const T & yx() const
Definition: SOARotation.h:63
SOARotation::R11
T R11
Definition: SOARotation.h:71
SOARotation::zx
constexpr const T & zx() const
Definition: SOARotation.h:66
SOARotation::xy
constexpr const T & xy() const
Definition: SOARotation.h:61
SOARotation::R32
T R32
Definition: SOARotation.h:73
SOARotation::xx
constexpr const T & xx() const
Definition: SOARotation.h:60
SOARotation::yy
constexpr const T & yy() const
Definition: SOARotation.h:64
SOARotation::R31
T R31
Definition: SOARotation.h:73
SOARotation::R12
T R12
Definition: SOARotation.h:71