boca::LorentzMatrix< Value_ > Class Template Reference

Lorentz matrix. More...

#include <LorentzMatrix.hh>

Inheritance diagram for boca::LorentzMatrix< Value_ >:
[legend]
Collaboration diagram for boca::LorentzMatrix< Value_ >:
[legend]

Public Member Functions

Constructor
 LorentzMatrix ()
 Default constructor. More...
 
 LorentzMatrix (Matrix3< Value_ > const &matrix, Vector3< Value_ > const &vector, Value_ scalar, Matrix symmetry=Matrix::none)
 Constructor accepting one three dimensional matrix, vector and scalar. More...
 
 LorentzMatrix (Matrix3< Value_ > const &matrix)
 Constructor accepting one three dimensional matrix. More...
 
 LorentzMatrix (Vector3< double > const &vector)
 Constructor accepting one three dimensional vector as a Lorenz-boost. More...
 
 LorentzMatrix (LorentzVectorBase< Value_ > const &x, LorentzVectorBase< Value_ > const &y, LorentzVectorBase< Value_ > const &z, LorentzVectorBase< Value_ > const &t, Matrix matrix=Matrix::row)
 Constructor accepting three Lorentz vectors. More...
 
Setter
void SetMatrix (Matrix3< Value_ > const &matrix)
 Set the three dimension matrix. More...
 
void SetVector (Vector3< Value_ > const &vector, Matrix symmetry)
 Set the three dimensional vectors. More...
 
void SetScalar (Value_ scalar)
 Set the three dimensional scalar. More...
 
void SetRows (LorentzVectorBase< Value_ > const &x, LorentzVectorBase< Value_ > const &y, LorentzVectorBase< Value_ > const &z, LorentzVectorBase< Value_ > const &t)
 Set the rows. More...
 
void SetColumns (LorentzVectorBase< Value_ > const &x, LorentzVectorBase< Value_ > const &y, LorentzVectorBase< Value_ > const &z, LorentzVectorBase< Value_ > const &t)
 Set the columns. More...
 
Accessor and getter
LorentzVectorBase< Value_ > const & X () const
 x-row More...
 
LorentzVectorBase< Value_ > & X ()
 x-row More...
 
LorentzVectorBase< Value_ > const & Y () const
 y-row More...
 
LorentzVectorBase< Value_ > & Y ()
 y-row More...
 
LorentzVectorBase< Value_ > const & Z () const
 z-row More...
 
LorentzVectorBase< Value_ > & Z ()
 z-row More...
 
LorentzVectorBase< Value_ > T () const
 t-row More...
 
LorentzVectorBase< Value_ > & T ()
 t-row More...
 
Scalar
Value4 Determinant () const
 Determinant \(\det A = \sum_{i=1}^n A_{i, j} C_{i, j}\). More...
 
Value4 Laplace (LorentzDim dim_1, LorentzDim dim_2) const
 Laplace \(A_{i, j} C_{i, j}\). More...
 
ValueCubed Cofactor (LorentzDim dim_1, LorentzDim dim_2) const
 Cofactor \(C_{i, j} = (-1)^{i+j} M_{i, j}\). More...
 
ValueCubed Minor (LorentzDim delete_1, LorentzDim delete_2) const
 Minor \(M_{i, j} = \det ((A_{p, q})_{p\neq i, q\neq j})\). More...
 
Value4 ReducedDeterminant (LorentzDim dim_1, LorentzDim dim_2) const
 Reduced determinant \(\det_{i, j} = \det - A_{i, j} C_{i, j}\). More...
 
Value4 ReducedLaplace (LorentzDim dim_1, LorentzDim dim_2, Dim3 dim_3, Dim3 dim_4)
 Reduced Laplace \(\det_{i, j} = A_{i, j} (\det - M_{i, j} C_{i, j})\). More...
 
int Sign (LorentzDim i, LorentzDim j) const
 Sign of a given element \((-1)^{i+j}\). More...
 
Matrix
Matrix3< Value_ > SubMatrix (LorentzDim delete_1, LorentzDim delete_2) const
 Sub matrix \((A_{p, q})_{p\neq i, q\neq j}\). More...
 
LorentzVectorBase< Value_ > ColumnX () const
 x column More...
 
LorentzVectorBase< Value_ > ColumnY () const
 y column More...
 
LorentzVectorBase< Value_ > ColumnZ () const
 z column More...
 
LorentzVectorBase< Value_ > ColumnT () const
 t column More...
 
Multiplication
template<typename Value_2_ >
auto Multiply (const LorentzVectorBase< Value_2_ > &vector) const
 Multiply with a vector. More...
 
template<typename Value_2_ >
LorentzMatrix Multiply (const LorentzMatrix< Value_2_ > &matrix) const
 Multiply with a matrix. More...
 
template<typename Value_2_ >
LorentzMatrixTransform (const LorentzMatrix< Value_2_ > &matrix)
 Transform this matrix. More...
 
template<typename Value_2_ >
auto & Transform (const Matrix3< Value_2_ > &matrix)
 Transform this matrix with a three dimensional matrix. More...
 
auto Transposed () const
 Transposed. More...
 
auto & Transpose ()
 Transpose. More...
 
template<typename Value_2_ >
auto & Boost (const Vector3< Value_ > &boost)
 Boost. More...
 
template<typename Value_2_ >
auto & Rotate (Angle angle, Dim3 dim)
 Rotate. More...
 
template<typename Value_2_ >
auto & Rotate (Angle angle, const Vector3< Value_ > &axis)
 Rotation around specified vector. More...
 

Operator

bool operator< (LorentzMatrix const &matrix) const
 Less than comparison. More...
 
bool operator== (LorentzMatrix const &matrix) const
 Equallity comparison. More...
 
template<typename Value_2_ >
auto operator* (const LorentzVectorBase< Value_2_ > &vector) const
 Multiply with a vector. More...
 
template<typename Value_2_ >
auto operator* (const LorentzMatrix< Value_2_ > &matrix) const
 Multiply with a matrix. More...
 
auto & operator*= (const LorentzMatrix< Value_2_ > &matrix)
 Multiply with a matrix. More...
 
LorentzVectorBase< Value_ > const & operator[] (LorentzDim lorentz_dim) const
 Row by index. More...
 
LorentzVectorBase< Value_ > & operator[] (LorentzDim lorentz_dim)
 Row by index. More...
 
auto & operator<< (std::ostream &stream, LorentzMatrix< Value_ > const &matrix)
 Output stream operator. More...
 

Detailed Description

template<typename Value_>
class boca::LorentzMatrix< Value_ >

Lorentz matrix.

Constructor & Destructor Documentation

template<typename Value_>
boca::LorentzMatrix< Value_ >::LorentzMatrix ( )
inline

Default constructor.

template<typename Value_>
boca::LorentzMatrix< Value_ >::LorentzMatrix ( Matrix3< Value_ > const &  matrix,
Vector3< Value_ > const &  vector,
Value_  scalar,
Matrix  symmetry = Matrix::none 
)
inline

Constructor accepting one three dimensional matrix, vector and scalar.

template<typename Value_>
boca::LorentzMatrix< Value_ >::LorentzMatrix ( Matrix3< Value_ > const &  matrix)
inline

Constructor accepting one three dimensional matrix.

template<typename Value_>
boca::LorentzMatrix< Value_ >::LorentzMatrix ( Vector3< double > const &  vector)
inline

Constructor accepting one three dimensional vector as a Lorenz-boost.

template<typename Value_>
boca::LorentzMatrix< Value_ >::LorentzMatrix ( LorentzVectorBase< Value_ > const &  x,
LorentzVectorBase< Value_ > const &  y,
LorentzVectorBase< Value_ > const &  z,
LorentzVectorBase< Value_ > const &  t,
Matrix  matrix = Matrix::row 
)
inline

Constructor accepting three Lorentz vectors.

Member Function Documentation

template<typename Value_>
template<typename Value_2_ >
auto& boca::LorentzMatrix< Value_ >::Boost ( const Vector3< Value_ > &  boost)
inline

Boost.

template<typename Value_>
ValueCubed boca::LorentzMatrix< Value_ >::Cofactor ( LorentzDim  dim_1,
LorentzDim  dim_2 
) const
inline

Cofactor \(C_{i, j} = (-1)^{i+j} M_{i, j}\).

template<typename Value_>
LorentzVectorBase<Value_> boca::LorentzMatrix< Value_ >::ColumnT ( ) const
inline

t column

template<typename Value_>
LorentzVectorBase<Value_> boca::LorentzMatrix< Value_ >::ColumnX ( ) const
inline

x column

template<typename Value_>
LorentzVectorBase<Value_> boca::LorentzMatrix< Value_ >::ColumnY ( ) const
inline

y column

template<typename Value_>
LorentzVectorBase<Value_> boca::LorentzMatrix< Value_ >::ColumnZ ( ) const
inline

z column

template<typename Value_>
Value4 boca::LorentzMatrix< Value_ >::Determinant ( ) const
inline

Determinant \(\det A = \sum_{i=1}^n A_{i, j} C_{i, j}\).

template<typename Value_>
Value4 boca::LorentzMatrix< Value_ >::Laplace ( LorentzDim  dim_1,
LorentzDim  dim_2 
) const
inline

Laplace \(A_{i, j} C_{i, j}\).

template<typename Value_>
ValueCubed boca::LorentzMatrix< Value_ >::Minor ( LorentzDim  delete_1,
LorentzDim  delete_2 
) const
inline

Minor \(M_{i, j} = \det ((A_{p, q})_{p\neq i, q\neq j})\).

template<typename Value_>
template<typename Value_2_ >
auto boca::LorentzMatrix< Value_ >::Multiply ( const LorentzVectorBase< Value_2_ > &  vector) const
inline

Multiply with a vector.

template<typename Value_>
template<typename Value_2_ >
LorentzMatrix boca::LorentzMatrix< Value_ >::Multiply ( const LorentzMatrix< Value_2_ > &  matrix) const
inline

Multiply with a matrix.

template<typename Value_>
template<typename Value_2_ >
auto boca::LorentzMatrix< Value_ >::operator* ( const LorentzVectorBase< Value_2_ > &  vector) const
inline

Multiply with a vector.

template<typename Value_>
template<typename Value_2_ >
auto boca::LorentzMatrix< Value_ >::operator* ( const LorentzMatrix< Value_2_ > &  matrix) const
inline

Multiply with a matrix.

template<typename Value_>
auto& boca::LorentzMatrix< Value_ >::operator*= ( const LorentzMatrix< Value_2_ > &  matrix)
inline

Multiply with a matrix.

template<typename Value_>
bool boca::LorentzMatrix< Value_ >::operator< ( LorentzMatrix< Value_ > const &  matrix) const
inline

Less than comparison.

template<typename Value_>
bool boca::LorentzMatrix< Value_ >::operator== ( LorentzMatrix< Value_ > const &  matrix) const
inline

Equallity comparison.

template<typename Value_>
LorentzVectorBase<Value_> const& boca::LorentzMatrix< Value_ >::operator[] ( LorentzDim  lorentz_dim) const
inline

Row by index.

template<typename Value_>
LorentzVectorBase<Value_>& boca::LorentzMatrix< Value_ >::operator[] ( LorentzDim  lorentz_dim)
inline

Row by index.

template<typename Value_>
Value4 boca::LorentzMatrix< Value_ >::ReducedDeterminant ( LorentzDim  dim_1,
LorentzDim  dim_2 
) const
inline

Reduced determinant \(\det_{i, j} = \det - A_{i, j} C_{i, j}\).

template<typename Value_>
Value4 boca::LorentzMatrix< Value_ >::ReducedLaplace ( LorentzDim  dim_1,
LorentzDim  dim_2,
Dim3  dim_3,
Dim3  dim_4 
)
inline

Reduced Laplace \(\det_{i, j} = A_{i, j} (\det - M_{i, j} C_{i, j})\).

template<typename Value_>
template<typename Value_2_ >
auto& boca::LorentzMatrix< Value_ >::Rotate ( Angle  angle,
Dim3  dim 
)
inline

Rotate.

template<typename Value_>
template<typename Value_2_ >
auto& boca::LorentzMatrix< Value_ >::Rotate ( Angle  angle,
const Vector3< Value_ > &  axis 
)
inline

Rotation around specified vector.

template<typename Value_>
void boca::LorentzMatrix< Value_ >::SetColumns ( LorentzVectorBase< Value_ > const &  x,
LorentzVectorBase< Value_ > const &  y,
LorentzVectorBase< Value_ > const &  z,
LorentzVectorBase< Value_ > const &  t 
)
inline

Set the columns.

template<typename Value_>
void boca::LorentzMatrix< Value_ >::SetMatrix ( Matrix3< Value_ > const &  matrix)
inline

Set the three dimension matrix.

template<typename Value_>
void boca::LorentzMatrix< Value_ >::SetRows ( LorentzVectorBase< Value_ > const &  x,
LorentzVectorBase< Value_ > const &  y,
LorentzVectorBase< Value_ > const &  z,
LorentzVectorBase< Value_ > const &  t 
)
inline

Set the rows.

template<typename Value_>
void boca::LorentzMatrix< Value_ >::SetScalar ( Value_  scalar)
inline

Set the three dimensional scalar.

template<typename Value_>
void boca::LorentzMatrix< Value_ >::SetVector ( Vector3< Value_ > const &  vector,
Matrix  symmetry 
)
inline

Set the three dimensional vectors.

template<typename Value_>
int boca::LorentzMatrix< Value_ >::Sign ( LorentzDim  i,
LorentzDim  j 
) const
inline

Sign of a given element \((-1)^{i+j}\).

template<typename Value_>
Matrix3<Value_> boca::LorentzMatrix< Value_ >::SubMatrix ( LorentzDim  delete_1,
LorentzDim  delete_2 
) const
inline

Sub matrix \((A_{p, q})_{p\neq i, q\neq j}\).

template<typename Value_>
LorentzVectorBase<Value_> boca::LorentzMatrix< Value_ >::T ( ) const
inline

t-row

template<typename Value_>
LorentzVectorBase<Value_>& boca::LorentzMatrix< Value_ >::T ( )
inline

t-row

template<typename Value_>
template<typename Value_2_ >
LorentzMatrix& boca::LorentzMatrix< Value_ >::Transform ( const LorentzMatrix< Value_2_ > &  matrix)
inline

Transform this matrix.

template<typename Value_>
template<typename Value_2_ >
auto& boca::LorentzMatrix< Value_ >::Transform ( const Matrix3< Value_2_ > &  matrix)
inline

Transform this matrix with a three dimensional matrix.

a *= b; <=> a = a * b; while a.Transform(b); <=> a = b * a;

template<typename Value_>
auto& boca::LorentzMatrix< Value_ >::Transpose ( )
inline

Transpose.

template<typename Value_>
auto boca::LorentzMatrix< Value_ >::Transposed ( ) const
inline

Transposed.

template<typename Value_>
LorentzVectorBase<Value_> const& boca::LorentzMatrix< Value_ >::X ( ) const
inline

x-row

template<typename Value_>
LorentzVectorBase<Value_>& boca::LorentzMatrix< Value_ >::X ( )
inline

x-row

template<typename Value_>
LorentzVectorBase<Value_> const& boca::LorentzMatrix< Value_ >::Y ( ) const
inline

y-row

template<typename Value_>
LorentzVectorBase<Value_>& boca::LorentzMatrix< Value_ >::Y ( )
inline

y-row

template<typename Value_>
LorentzVectorBase<Value_> const& boca::LorentzMatrix< Value_ >::Z ( ) const
inline

z-row

template<typename Value_>
LorentzVectorBase<Value_>& boca::LorentzMatrix< Value_ >::Z ( )
inline

z-row

Friends And Related Function Documentation

template<typename Value_>
auto& operator<< ( std::ostream &  stream,
LorentzMatrix< Value_ > const &  matrix 
)
friend

Output stream operator.


The documentation for this class was generated from the following file: