LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
lar::util::details::DeterminantHelper< T, N, R1, R2, R3, R4, C1, C2, C3, C4 > Struct Template Reference

Determinant of a 4x4 submatrix. More...

#include "FastMatrixMathHelper.h"

Inheritance diagram for lar::util::details::DeterminantHelper< T, N, R1, R2, R3, R4, C1, C2, C3, C4 >:
lar::util::details::DeterminantHelperBase< N >

Public Types

template<unsigned int sR1, unsigned int sR2, unsigned int sR3, unsigned int sC1, unsigned int sC2, unsigned int sC3>
using UpHelper = DeterminantHelper< T, N, sR1, sR2, sR3, sC1, sC2, sC3 >
 

Static Public Member Functions

static T compute (T const *data)
 
static constexpr size_t index (unsigned int row, unsigned int col)
 

Detailed Description

template<typename T, unsigned int N, unsigned int R1, unsigned int R2, unsigned int R3, unsigned int R4, unsigned int C1, unsigned int C2, unsigned int C3, unsigned int C4>
struct lar::util::details::DeterminantHelper< T, N, R1, R2, R3, R4, C1, C2, C3, C4 >

Determinant of a 4x4 submatrix.

Definition at line 223 of file FastMatrixMathHelper.h.

Member Typedef Documentation

template<typename T , unsigned int N, unsigned int R1, unsigned int R2, unsigned int R3, unsigned int R4, unsigned int C1, unsigned int C2, unsigned int C3, unsigned int C4>
template<unsigned int sR1, unsigned int sR2, unsigned int sR3, unsigned int sC1, unsigned int sC2, unsigned int sC3>
using lar::util::details::DeterminantHelper< T, N, R1, R2, R3, R4, C1, C2, C3, C4 >::UpHelper = DeterminantHelper<T, N, sR1, sR2, sR3, sC1, sC2, sC3>

Definition at line 240 of file FastMatrixMathHelper.h.

Member Function Documentation

template<typename T , unsigned int N, unsigned int R1, unsigned int R2, unsigned int R3, unsigned int R4, unsigned int C1, unsigned int C2, unsigned int C3, unsigned int C4>
static T lar::util::details::DeterminantHelper< T, N, R1, R2, R3, R4, C1, C2, C3, C4 >::compute ( T const *  data)
inlinestatic

Definition at line 241 of file FastMatrixMathHelper.h.

242  {
243  return data[index(R1, C1)] * UpHelper<R2, R3, R4, C2, C3, C4>::compute(data) -
244  data[index(R1, C2)] * UpHelper<R2, R3, R4, C1, C3, C4>::compute(data) +
245  data[index(R1, C3)] * UpHelper<R2, R3, R4, C1, C2, C4>::compute(data) -
246  data[index(R1, C4)] * UpHelper<R2, R3, R4, C1, C2, C3>::compute(data);
247  }
static constexpr size_t index(unsigned int row, unsigned int col)
template<unsigned int N>
static constexpr size_t lar::util::details::DeterminantHelperBase< N >::index ( unsigned int  row,
unsigned int  col 
)
inlinestaticinherited

Definition at line 132 of file FastMatrixMathHelper.h.

References col.

133  {
134  return MatrixIndex<N>(row, col);
135  }
Int_t col[ntarg]
Definition: Style.C:29

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