Public Types | Static Public Member Functions | List of all members
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 Public Member Functions inherited from lar::util::details::DeterminantHelperBase< N >
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 239 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 240 of file FastMatrixMathHelper.h.

241  {
242  return
243  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  ;
248  }
class C3 in group 2
Definition: group.cpp:35
static constexpr size_t index(unsigned int row, unsigned int col)
class C2 in group 1
Definition: group.cpp:10
class C4 in group 2
Definition: group.cpp:40
class C1 in group 1
Definition: group.cpp:7

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