#include "globals.hh"
#include <cmath>
#include <iostream>
#include "G4ErrorMatrix.hh"
#include "G4ErrorSymMatrix.hh"
Go to the source code of this file.
Defines | |
#define | SIMPLE_UOP(OPER) |
#define | SIMPLE_BOP(OPER) |
#define | SIMPLE_TOP(OPER) |
#define | CHK_DIM_2(r1, r2, c1, c2, fun) |
#define | CHK_DIM_1(c1, r2, fun) |
#define | A00 0 |
#define | A01 1 |
#define | A02 2 |
#define | A03 3 |
#define | A04 4 |
#define | A05 5 |
#define | A10 6 |
#define | A11 7 |
#define | A12 8 |
#define | A13 9 |
#define | A14 10 |
#define | A15 11 |
#define | A20 12 |
#define | A21 13 |
#define | A22 14 |
#define | A23 15 |
#define | A24 16 |
#define | A25 17 |
#define | A30 18 |
#define | A31 19 |
#define | A32 20 |
#define | A33 21 |
#define | A34 22 |
#define | A35 23 |
#define | A40 24 |
#define | A41 25 |
#define | A42 26 |
#define | A43 27 |
#define | A44 28 |
#define | A45 29 |
#define | A50 30 |
#define | A51 31 |
#define | A52 32 |
#define | A53 33 |
#define | A54 34 |
#define | A55 35 |
#define | M00 0 |
#define | M01 1 |
#define | M02 2 |
#define | M03 3 |
#define | M04 4 |
#define | M10 5 |
#define | M11 6 |
#define | M12 7 |
#define | M13 8 |
#define | M14 9 |
#define | M20 10 |
#define | M21 11 |
#define | M22 12 |
#define | M23 13 |
#define | M24 14 |
#define | M30 15 |
#define | M31 16 |
#define | M32 17 |
#define | M33 18 |
#define | M34 19 |
#define | M40 20 |
#define | M41 21 |
#define | M42 22 |
#define | M43 23 |
#define | M44 24 |
#define | F00 0 |
#define | F01 1 |
#define | F02 2 |
#define | F03 3 |
#define | F10 4 |
#define | F11 5 |
#define | F12 6 |
#define | F13 7 |
#define | F20 8 |
#define | F21 9 |
#define | F22 10 |
#define | F23 11 |
#define | F30 12 |
#define | F31 13 |
#define | F32 14 |
#define | F33 15 |
Functions | |
G4ErrorMatrix | dsum (const G4ErrorMatrix &mat1, const G4ErrorMatrix &mat2) |
G4ErrorMatrix | operator+ (const G4ErrorMatrix &mat1, const G4ErrorMatrix &mat2) |
G4ErrorMatrix | operator- (const G4ErrorMatrix &mat1, const G4ErrorMatrix &mat2) |
G4ErrorMatrix | operator/ (const G4ErrorMatrix &mat1, G4double t) |
G4ErrorMatrix | operator * (const G4ErrorMatrix &mat1, G4double t) |
G4ErrorMatrix | operator * (G4double t, const G4ErrorMatrix &mat1) |
G4ErrorMatrix | operator * (const G4ErrorMatrix &mat1, const G4ErrorMatrix &mat2) |
std::ostream & | operator<< (std::ostream &os, const G4ErrorMatrix &q) |
#define A00 0 |
Definition at line 817 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A01 1 |
Definition at line 818 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A02 2 |
Definition at line 819 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A03 3 |
Definition at line 820 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A04 4 |
Definition at line 821 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A05 5 |
Definition at line 822 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A10 6 |
Definition at line 824 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), G4ErrorMatrix::invertHaywood6(), G4Bessel::pI0(), and G4Bessel::pI1().
#define A11 7 |
Definition at line 825 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), G4ErrorMatrix::invertHaywood6(), G4Bessel::pI0(), and G4Bessel::pI1().
#define A12 8 |
Definition at line 826 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A13 9 |
#define A14 10 |
Definition at line 828 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A15 11 |
Definition at line 829 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A20 12 |
Definition at line 831 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A21 13 |
Definition at line 832 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A22 14 |
Definition at line 833 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A23 15 |
Definition at line 834 of file G4ErrorMatrix.cc.
Referenced by G4StatMFMacroMultiNucleon::CalcEnergy(), G4StatMFMacroMultiNucleon::CalcMeanMultiplicity(), G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A24 16 |
Definition at line 835 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A25 17 |
Definition at line 836 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A30 18 |
Definition at line 838 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A31 19 |
Definition at line 839 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A32 20 |
Definition at line 840 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A33 21 |
Definition at line 841 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A34 22 |
Definition at line 842 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A35 23 |
Definition at line 843 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A40 24 |
Definition at line 845 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A41 25 |
Definition at line 846 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A42 26 |
Definition at line 847 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A43 27 |
Definition at line 848 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A44 28 |
Definition at line 849 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky5(), G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood5(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A45 29 |
Definition at line 850 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A50 30 |
Definition at line 852 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A51 31 |
Definition at line 853 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A52 32 |
Definition at line 854 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A53 33 |
Definition at line 855 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A54 34 |
Definition at line 856 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define A55 35 |
Definition at line 857 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::invertCholesky6(), G4ErrorSymMatrix::invertHaywood6(), and G4ErrorMatrix::invertHaywood6().
#define CHK_DIM_1 | ( | c1, | |||
r2, | |||||
fun | ) |
Value:
if (c1!=r2) { \ G4ErrorMatrix::error("Range error in Matrix function " #fun "(2)."); \ }
Definition at line 67 of file G4ErrorMatrix.cc.
Referenced by operator *(), operator+(), and operator-().
#define CHK_DIM_2 | ( | r1, | |||
r2, | |||||
c1, | |||||
c2, | |||||
fun | ) |
Value:
if (r1!=r2 || c1!=c2) { \ G4ErrorMatrix::error("Range error in Matrix function " #fun "(1)."); \ }
Definition at line 62 of file G4ErrorMatrix.cc.
Referenced by operator+(), G4ErrorSymMatrix::operator+=(), G4ErrorMatrix::operator+=(), operator-(), G4ErrorSymMatrix::operator-=(), and G4ErrorMatrix::operator-=().
#define F00 0 |
Definition at line 889 of file G4ErrorMatrix.cc.
Referenced by G4ErrorMatrix::invertHaywood4(), and G4PenelopeGammaConversionModel::SampleSecondaries().
#define F01 1 |
#define F02 2 |
#define F03 3 |
#define F10 4 |
Definition at line 894 of file G4ErrorMatrix.cc.
Referenced by G4ErrorMatrix::invertHaywood4(), G4PairProductionRelModel::SampleSecondaries(), and G4BetheHeitlerModel::SampleSecondaries().
#define F11 5 |
#define F12 6 |
Definition at line 896 of file G4ErrorMatrix.cc.
Referenced by G4ElasticHadrNucleusHE::GetQ2_2(), and G4ErrorMatrix::invertHaywood4().
#define F13 7 |
#define F20 8 |
Definition at line 899 of file G4ErrorMatrix.cc.
Referenced by G4ErrorMatrix::invertHaywood4(), G4PairProductionRelModel::SampleSecondaries(), and G4BetheHeitlerModel::SampleSecondaries().
#define F21 9 |
#define F22 10 |
Definition at line 901 of file G4ErrorMatrix.cc.
Referenced by G4ElasticHadrNucleusHE::GetQ2_2(), and G4ErrorMatrix::invertHaywood4().
#define F23 11 |
#define F30 12 |
#define F31 13 |
#define F32 14 |
Definition at line 906 of file G4ErrorMatrix.cc.
Referenced by G4ElasticHadrNucleusHE::GetQ2_2(), and G4ErrorMatrix::invertHaywood4().
#define F33 15 |
#define M00 0 |
#define M01 1 |
#define M02 2 |
#define M03 3 |
#define M04 4 |
#define M10 5 |
#define M11 6 |
#define M12 7 |
#define M13 8 |
#define M14 9 |
#define M20 10 |
#define M21 11 |
#define M22 12 |
#define M23 13 |
#define M24 14 |
#define M30 15 |
#define M31 16 |
#define M32 17 |
#define M33 18 |
#define M34 19 |
#define M40 20 |
#define M41 21 |
#define M42 22 |
#define M43 23 |
#define M44 24 |
#define SIMPLE_BOP | ( | OPER | ) |
Value:
G4ErrorMatrixIter a=m.begin(); \ G4ErrorMatrixConstIter b=mat2.m.begin(); \ G4ErrorMatrixIter e=m.end(); \ for(;a!=e; a++, b++) (*a) OPER (*b);
Definition at line 47 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::operator+=(), G4ErrorMatrix::operator+=(), G4ErrorSymMatrix::operator-=(), and G4ErrorMatrix::operator-=().
#define SIMPLE_TOP | ( | OPER | ) |
Value:
G4ErrorMatrixConstIter a=mat1.m.begin(); \ G4ErrorMatrixConstIter b=mat2.m.begin(); \ G4ErrorMatrixIter t=mret.m.begin(); \ G4ErrorMatrixConstIter e=mat1.m.end(); \ for(;a!=e; a++, b++, t++) (*t) = (*a) OPER (*b);
Definition at line 53 of file G4ErrorMatrix.cc.
Referenced by operator+(), and operator-().
#define SIMPLE_UOP | ( | OPER | ) |
Value:
G4ErrorMatrixIter a=m.begin(); \ G4ErrorMatrixIter e=m.end(); \ for(;a!=e; a++) (*a) OPER t;
Definition at line 42 of file G4ErrorMatrix.cc.
Referenced by G4ErrorSymMatrix::operator *=(), G4ErrorMatrix::operator *=(), G4ErrorSymMatrix::operator/=(), and G4ErrorMatrix::operator/=().
G4ErrorMatrix dsum | ( | const G4ErrorMatrix & | mat1, | |
const G4ErrorMatrix & | mat2 | |||
) |
Definition at line 201 of file G4ErrorMatrix.cc.
References G4ErrorMatrix::num_col(), G4ErrorMatrix::num_row(), and G4ErrorMatrix::sub().
00202 { 00203 G4ErrorMatrix mret(mat1.num_row() + mat2.num_row(), 00204 mat1.num_col() + mat2.num_col(), 0); 00205 mret.sub(1,1,mat1); 00206 mret.sub(mat1.num_row()+1,mat1.num_col()+1,mat2); 00207 return mret; 00208 }
G4ErrorMatrix operator * | ( | const G4ErrorMatrix & | mat1, | |
const G4ErrorMatrix & | mat2 | |||
) |
Definition at line 272 of file G4ErrorMatrix.cc.
References CHK_DIM_1, G4ErrorMatrix::m, G4ErrorMatrix::ncol, and G4ErrorMatrix::nrow.
00273 { 00274 // initialize matrix to 0.0 00275 G4ErrorMatrix mret(mat1.nrow,mat2.ncol,0); 00276 CHK_DIM_1(mat1.ncol,mat2.nrow,*); 00277 00278 G4int m1cols = mat1.ncol; 00279 G4int m2cols = mat2.ncol; 00280 00281 for (G4int i=0; i<mat1.nrow; i++) 00282 { 00283 for (G4int j=0; j<m1cols; j++) 00284 { 00285 G4double temp = mat1.m[i*m1cols+j]; 00286 G4ErrorMatrixIter pt = mret.m.begin() + i*m2cols; 00287 00288 // Loop over k (the column index in matrix mat2) 00289 G4ErrorMatrixConstIter pb = mat2.m.begin() + m2cols*j; 00290 const G4ErrorMatrixConstIter pblast = pb + m2cols; 00291 while (pb < pblast) 00292 { 00293 (*pt) += temp * (*pb); 00294 pb++; 00295 pt++; 00296 } 00297 } 00298 } 00299 return mret; 00300 }
G4ErrorMatrix operator * | ( | G4double | t, | |
const G4ErrorMatrix & | mat1 | |||
) |
Definition at line 265 of file G4ErrorMatrix.cc.
00266 { 00267 G4ErrorMatrix mret(mat1); 00268 mret *= t; 00269 return mret; 00270 }
G4ErrorMatrix operator * | ( | const G4ErrorMatrix & | mat1, | |
G4double | t | |||
) |
Definition at line 258 of file G4ErrorMatrix.cc.
00259 { 00260 G4ErrorMatrix mret(mat1); 00261 mret *= t; 00262 return mret; 00263 }
G4ErrorMatrix operator+ | ( | const G4ErrorMatrix & | mat1, | |
const G4ErrorMatrix & | mat2 | |||
) |
Definition at line 225 of file G4ErrorMatrix.cc.
References CHK_DIM_2, G4ErrorMatrix::ncol, G4ErrorMatrix::nrow, G4ErrorMatrix::num_col(), G4ErrorMatrix::num_row(), and SIMPLE_TOP.
00226 { 00227 G4ErrorMatrix mret(mat1.nrow, mat1.ncol); 00228 CHK_DIM_2(mat1.num_row(),mat2.num_row(), mat1.num_col(),mat2.num_col(),+); 00229 SIMPLE_TOP(+) 00230 return mret; 00231 }
G4ErrorMatrix operator- | ( | const G4ErrorMatrix & | mat1, | |
const G4ErrorMatrix & | mat2 | |||
) |
Definition at line 237 of file G4ErrorMatrix.cc.
References CHK_DIM_2, G4ErrorMatrix::num_col(), G4ErrorMatrix::num_row(), and SIMPLE_TOP.
00238 { 00239 G4ErrorMatrix mret(mat1.num_row(), mat1.num_col()); 00240 CHK_DIM_2(mat1.num_row(),mat2.num_row(), 00241 mat1.num_col(),mat2.num_col(),-); 00242 SIMPLE_TOP(-) 00243 return mret; 00244 }
G4ErrorMatrix operator/ | ( | const G4ErrorMatrix & | mat1, | |
G4double | t | |||
) |
Definition at line 251 of file G4ErrorMatrix.cc.
00252 { 00253 G4ErrorMatrix mret(mat1); 00254 mret /= t; 00255 return mret; 00256 }
std::ostream& operator<< | ( | std::ostream & | os, | |
const G4ErrorMatrix & | q | |||
) |
Definition at line 350 of file G4ErrorMatrix.cc.
References G4endl, G4ErrorMatrix::num_col(), and G4ErrorMatrix::num_row().
00351 { 00352 os << "\n"; 00353 00354 // Fixed format needs 3 extra characters for field, 00355 // while scientific needs 7 00356 00357 G4int width; 00358 if(os.flags() & std::ios::fixed) 00359 { width = os.precision()+3; } 00360 else 00361 { width = os.precision()+7; } 00362 for(G4int irow = 1; irow<= q.num_row(); irow++) 00363 { 00364 for(G4int icol = 1; icol <= q.num_col(); icol++) 00365 { 00366 os.width(width); 00367 os << q(irow,icol) << " "; 00368 } 00369 os << G4endl; 00370 } 00371 return os; 00372 }