24 #ifndef genfit_RKTools_h
25 #define genfit_RKTools_h
29 #include <initializer_list>
33 template <
size_t nRows,
size_t nCols>
35 double vals[nRows * nCols];
39 RKMatrix(std::initializer_list<double> initList) {
40 std::copy(initList.begin(), initList.end(), vals);
43 double& operator()(
size_t iRow,
size_t iCol) {
44 return vals[nCols*iRow + iCol];
46 double& operator[](
size_t n) {
49 const double& operator[](
size_t n)
const {
53 double* begin() {
return vals; }
54 double* end() {
return vals + nRows * nCols; }
55 const double* begin()
const {
return vals; }
56 const double* end()
const {
return vals + nRows * nCols; }
59 std::copy(o.begin(), o.end(), this->begin());
82 void J_pMTxcov5xJ_pM(
const M5x7& J_pM,
const M5x5& cov5,
M7x7& out7);
83 void J_pMTxcov5xJ_pM(
const M5x6& J_pM,
const M5x5& cov5,
M6x6& out6);
85 void J_MpTxcov7xJ_Mp(
const M7x5& J_Mp,
const M7x7& cov7,
M5x5& out5);
86 void J_MpTxcov6xJ_Mp(
const M6x5& J_Mp,
const M6x6& cov6,
M5x5& out5);
88 void J_pMTTxJ_MMTTxJ_MpTT(
const M7x5& J_pMT,
const M7x7& J_MMT,
const M5x7& J_MpT,
M5x5& J_pp);
90 void Np_N_NpT(
const M7x7& Np,
M7x7& N);
92 void printDim(
const double* mat,
unsigned int dimX,
unsigned int dimY);
96 template<
size_t nRows,
size_t nCols>
99 RKTools::printDim(this->vals, nRows, nCols);
Defines for I/O streams used for error and debug printing.