37 #if !defined(R__SOLARIS) && !defined(R__ACC) && !defined(R__FBSD)
43 template<
class Element>
47 Error(
"Inv2x2",
"matrix should be square 2x2");
53 const Double_t det = pM[0] * pM[3] - pM[1] * pM[1];
59 Error(
"Inv2x2",
"matrix is singular");
65 pM[2] = pM[1] = -pM[1] / det;
73 template<
class Element>
77 Error(
"Inv3x3",
"matrix should be square 3x3");
83 const Double_t c00 = pM[4] * pM[8] - pM[5] * pM[5];
84 const Double_t c01 = pM[5] * pM[2] - pM[1] * pM[8];
85 const Double_t c02 = pM[1] * pM[5] - pM[4] * pM[2];
86 const Double_t c11 = pM[8] * pM[0] - pM[2] * pM[2];
87 const Double_t c12 = pM[2] * pM[1] - pM[5] * pM[0];
88 const Double_t c22 = pM[0] * pM[4] - pM[1] * pM[1];
100 det = c12*c01-c11*c02;
103 det = c11*c22-c12*c12;
105 }
else if (t2 >= t1) {
107 det = c12*c01-c11*c02;
110 det = c02*c12-c01*c22;
113 if ( det == 0 || tmp == 0) {
114 Error(
"Inv3x3",
"matrix is singular");
159 template<
class Element>
163 Error(
"Inv4x4",
"matrix should be square 4x4");
189 + pM[
SF02]*mDet2_12_01;
191 + pM[
SF02]*mDet2_13_01;
193 + pM[
SF03]*mDet2_13_01;
195 + pM[
SF02]*mDet2_23_01;
197 + pM[
SF03]*mDet2_23_01;
199 + pM[
SF03]*mDet2_23_02;
201 + pM[
SF12]*mDet2_23_01;
203 + pM[
SF13]*mDet2_23_01;
205 + pM[
SF13]*mDet2_23_02;
207 + pM[
SF13]*mDet2_23_12;
212 + pM[
SF02]*mDet3_123_013 - pM[
SF03]*mDet3_123_012;
218 Error(
"Inv4x4",
"matrix is singular");
222 const Double_t oneOverDet = 1.0/det;
223 const Double_t mn1OverDet = - oneOverDet;
225 pM[
SF00] = mDet3_123_123 * oneOverDet;
226 pM[
SF01] = mDet3_123_023 * mn1OverDet;
227 pM[
SF02] = mDet3_123_013 * oneOverDet;
228 pM[
SF03] = mDet3_123_012 * mn1OverDet;
230 pM[
SF11] = mDet3_023_023 * oneOverDet;
231 pM[
SF12] = mDet3_023_013 * mn1OverDet;
232 pM[
SF13] = mDet3_023_012 * oneOverDet;
234 pM[
SF22] = mDet3_013_013 * oneOverDet;
235 pM[
SF23] = mDet3_013_012 * mn1OverDet;
237 pM[
SF33] = mDet3_012_012 * oneOverDet;
239 for (
Int_t irow = 0; irow < 4; irow++) {
240 const Int_t rowOff1 = irow*4;
241 for (
Int_t icol = 0; icol < irow; icol++) {
242 const Int_t rowOff2 = icol*4;
243 pM[rowOff1+icol] = pM[rowOff2+irow];
284 template<
class Element>
288 Error(
"Inv5x5",
"matrix should be square 5x5");
324 const Double_t mDet3_123_012 = pM[
SM10]*mDet2_23_12 - pM[
SM11]*mDet2_23_02 + pM[
SM12]*mDet2_23_01;
325 const Double_t mDet3_123_013 = pM[
SM10]*mDet2_23_13 - pM[
SM11]*mDet2_23_03 + pM[
SM13]*mDet2_23_01;
326 const Double_t mDet3_123_023 = pM[
SM10]*mDet2_23_23 - pM[
SM12]*mDet2_23_03 + pM[
SM13]*mDet2_23_02;
327 const Double_t mDet3_123_123 = pM[
SM11]*mDet2_23_23 - pM[
SM12]*mDet2_23_13 + pM[
SM13]*mDet2_23_12;
328 const Double_t mDet3_124_012 = pM[
SM10]*mDet2_24_12 - pM[
SM11]*mDet2_24_02 + pM[
SM12]*mDet2_24_01;
329 const Double_t mDet3_124_013 = pM[
SM10]*mDet2_24_13 - pM[
SM11]*mDet2_24_03 + pM[
SM13]*mDet2_24_01;
330 const Double_t mDet3_124_014 = pM[
SM10]*mDet2_24_14 - pM[
SM11]*mDet2_24_04 + pM[
SM14]*mDet2_24_01;
331 const Double_t mDet3_124_023 = pM[
SM10]*mDet2_24_23 - pM[
SM12]*mDet2_24_03 + pM[
SM13]*mDet2_24_02;
332 const Double_t mDet3_124_024 = pM[
SM10]*mDet2_24_24 - pM[
SM12]*mDet2_24_04 + pM[
SM14]*mDet2_24_02;
333 const Double_t mDet3_124_123 = pM[
SM11]*mDet2_24_23 - pM[
SM12]*mDet2_24_13 + pM[
SM13]*mDet2_24_12;
334 const Double_t mDet3_124_124 = pM[
SM11]*mDet2_24_24 - pM[
SM12]*mDet2_24_14 + pM[
SM14]*mDet2_24_12;
335 const Double_t mDet3_134_012 = pM[
SM10]*mDet2_34_12 - pM[
SM11]*mDet2_34_02 + pM[
SM12]*mDet2_34_01;
336 const Double_t mDet3_134_013 = pM[
SM10]*mDet2_34_13 - pM[
SM11]*mDet2_34_03 + pM[
SM13]*mDet2_34_01;
337 const Double_t mDet3_134_014 = pM[
SM10]*mDet2_34_14 - pM[
SM11]*mDet2_34_04 + pM[
SM14]*mDet2_34_01;
338 const Double_t mDet3_134_023 = pM[
SM10]*mDet2_34_23 - pM[
SM12]*mDet2_34_03 + pM[
SM13]*mDet2_34_02;
339 const Double_t mDet3_134_024 = pM[
SM10]*mDet2_34_24 - pM[
SM12]*mDet2_34_04 + pM[
SM14]*mDet2_34_02;
340 const Double_t mDet3_134_034 = pM[
SM10]*mDet2_34_34 - pM[
SM13]*mDet2_34_04 + pM[
SM14]*mDet2_34_03;
341 const Double_t mDet3_134_123 = pM[
SM11]*mDet2_34_23 - pM[
SM12]*mDet2_34_13 + pM[
SM13]*mDet2_34_12;
342 const Double_t mDet3_134_124 = pM[
SM11]*mDet2_34_24 - pM[
SM12]*mDet2_34_14 + pM[
SM14]*mDet2_34_12;
343 const Double_t mDet3_134_134 = pM[
SM11]*mDet2_34_34 - pM[
SM13]*mDet2_34_14 + pM[
SM14]*mDet2_34_13;
344 const Double_t mDet3_234_012 = pM[
SM20]*mDet2_34_12 - pM[
SM21]*mDet2_34_02 + pM[
SM22]*mDet2_34_01;
345 const Double_t mDet3_234_013 = pM[
SM20]*mDet2_34_13 - pM[
SM21]*mDet2_34_03 + pM[
SM23]*mDet2_34_01;
346 const Double_t mDet3_234_014 = pM[
SM20]*mDet2_34_14 - pM[
SM21]*mDet2_34_04 + pM[
SM24]*mDet2_34_01;
347 const Double_t mDet3_234_023 = pM[
SM20]*mDet2_34_23 - pM[
SM22]*mDet2_34_03 + pM[
SM23]*mDet2_34_02;
348 const Double_t mDet3_234_024 = pM[
SM20]*mDet2_34_24 - pM[
SM22]*mDet2_34_04 + pM[
SM24]*mDet2_34_02;
349 const Double_t mDet3_234_034 = pM[
SM20]*mDet2_34_34 - pM[
SM23]*mDet2_34_04 + pM[
SM24]*mDet2_34_03;
350 const Double_t mDet3_234_123 = pM[
SM21]*mDet2_34_23 - pM[
SM22]*mDet2_34_13 + pM[
SM23]*mDet2_34_12;
351 const Double_t mDet3_234_124 = pM[
SM21]*mDet2_34_24 - pM[
SM22]*mDet2_34_14 + pM[
SM24]*mDet2_34_12;
352 const Double_t mDet3_234_134 = pM[
SM21]*mDet2_34_34 - pM[
SM23]*mDet2_34_14 + pM[
SM24]*mDet2_34_13;
353 const Double_t mDet3_234_234 = pM[
SM22]*mDet2_34_34 - pM[
SM23]*mDet2_34_24 + pM[
SM24]*mDet2_34_23;
357 const Double_t mDet4_0123_0123 = pM[
SM00]*mDet3_123_123 - pM[
SM01]*mDet3_123_023
358 + pM[
SM02]*mDet3_123_013 - pM[
SM03]*mDet3_123_012;
359 const Double_t mDet4_0124_0123 = pM[
SM00]*mDet3_124_123 - pM[
SM01]*mDet3_124_023
360 + pM[
SM02]*mDet3_124_013 - pM[
SM03]*mDet3_124_012;
361 const Double_t mDet4_0124_0124 = pM[
SM00]*mDet3_124_124 - pM[
SM01]*mDet3_124_024
362 + pM[
SM02]*mDet3_124_014 - pM[
SM04]*mDet3_124_012;
363 const Double_t mDet4_0134_0123 = pM[
SM00]*mDet3_134_123 - pM[
SM01]*mDet3_134_023
364 + pM[
SM02]*mDet3_134_013 - pM[
SM03]*mDet3_134_012;
365 const Double_t mDet4_0134_0124 = pM[
SM00]*mDet3_134_124 - pM[
SM01]*mDet3_134_024
366 + pM[
SM02]*mDet3_134_014 - pM[
SM04]*mDet3_134_012;
367 const Double_t mDet4_0134_0134 = pM[
SM00]*mDet3_134_134 - pM[
SM01]*mDet3_134_034
368 + pM[
SM03]*mDet3_134_014 - pM[
SM04]*mDet3_134_013;
369 const Double_t mDet4_0234_0123 = pM[
SM00]*mDet3_234_123 - pM[
SM01]*mDet3_234_023
370 + pM[
SM02]*mDet3_234_013 - pM[
SM03]*mDet3_234_012;
371 const Double_t mDet4_0234_0124 = pM[
SM00]*mDet3_234_124 - pM[
SM01]*mDet3_234_024
372 + pM[
SM02]*mDet3_234_014 - pM[
SM04]*mDet3_234_012;
373 const Double_t mDet4_0234_0134 = pM[
SM00]*mDet3_234_134 - pM[
SM01]*mDet3_234_034
374 + pM[
SM03]*mDet3_234_014 - pM[
SM04]*mDet3_234_013;
375 const Double_t mDet4_0234_0234 = pM[
SM00]*mDet3_234_234 - pM[
SM02]*mDet3_234_034
376 + pM[
SM03]*mDet3_234_024 - pM[
SM04]*mDet3_234_023;
377 const Double_t mDet4_1234_0123 = pM[
SM10]*mDet3_234_123 - pM[
SM11]*mDet3_234_023
378 + pM[
SM12]*mDet3_234_013 - pM[
SM13]*mDet3_234_012;
379 const Double_t mDet4_1234_0124 = pM[
SM10]*mDet3_234_124 - pM[
SM11]*mDet3_234_024
380 + pM[
SM12]*mDet3_234_014 - pM[
SM14]*mDet3_234_012;
381 const Double_t mDet4_1234_0134 = pM[
SM10]*mDet3_234_134 - pM[
SM11]*mDet3_234_034
382 + pM[
SM13]*mDet3_234_014 - pM[
SM14]*mDet3_234_013;
383 const Double_t mDet4_1234_0234 = pM[
SM10]*mDet3_234_234 - pM[
SM12]*mDet3_234_034
384 + pM[
SM13]*mDet3_234_024 - pM[
SM14]*mDet3_234_023;
385 const Double_t mDet4_1234_1234 = pM[
SM11]*mDet3_234_234 - pM[
SM12]*mDet3_234_134
386 + pM[
SM13]*mDet3_234_124 - pM[
SM14]*mDet3_234_123;
390 const Double_t det = pM[
SM00]*mDet4_1234_1234 - pM[
SM01]*mDet4_1234_0234 + pM[
SM02]*mDet4_1234_0134
391 - pM[
SM03]*mDet4_1234_0124 + pM[
SM04]*mDet4_1234_0123;
396 Error(
"Inv5x5",
"matrix is singular");
400 const Double_t oneOverDet = 1.0/det;
401 const Double_t mn1OverDet = - oneOverDet;
403 pM[
SM00] = mDet4_1234_1234 * oneOverDet;
404 pM[
SM01] = mDet4_1234_0234 * mn1OverDet;
405 pM[
SM02] = mDet4_1234_0134 * oneOverDet;
406 pM[
SM03] = mDet4_1234_0124 * mn1OverDet;
407 pM[
SM04] = mDet4_1234_0123 * oneOverDet;
409 pM[
SM11] = mDet4_0234_0234 * oneOverDet;
410 pM[
SM12] = mDet4_0234_0134 * mn1OverDet;
411 pM[
SM13] = mDet4_0234_0124 * oneOverDet;
412 pM[
SM14] = mDet4_0234_0123 * mn1OverDet;
414 pM[
SM22] = mDet4_0134_0134 * oneOverDet;
415 pM[
SM23] = mDet4_0134_0124 * mn1OverDet;
416 pM[
SM24] = mDet4_0134_0123 * oneOverDet;
418 pM[
SM33] = mDet4_0124_0124 * oneOverDet;
419 pM[
SM34] = mDet4_0124_0123 * mn1OverDet;
421 pM[
SM44] = mDet4_0123_0123 * oneOverDet;
423 for (
Int_t irow = 0; irow < 5; irow++) {
424 const Int_t rowOff1 = irow*5;
425 for (
Int_t icol = 0; icol < irow; icol++) {
426 const Int_t rowOff2 = icol*5;
427 pM[rowOff1+icol] = pM[rowOff2+irow];
480 template<
class Element>
484 Error(
"Inv6x6",
"matrix should be square 6x6");
534 const Double_t mDet3_234_012 = pM[
SA20]*mDet2_34_12 - pM[
SA21]*mDet2_34_02 + pM[
SA22]*mDet2_34_01;
535 const Double_t mDet3_234_013 = pM[
SA20]*mDet2_34_13 - pM[
SA21]*mDet2_34_03 + pM[
SA23]*mDet2_34_01;
536 const Double_t mDet3_234_014 = pM[
SA20]*mDet2_34_14 - pM[
SA21]*mDet2_34_04 + pM[
SA24]*mDet2_34_01;
537 const Double_t mDet3_234_023 = pM[
SA20]*mDet2_34_23 - pM[
SA22]*mDet2_34_03 + pM[
SA23]*mDet2_34_02;
538 const Double_t mDet3_234_024 = pM[
SA20]*mDet2_34_24 - pM[
SA22]*mDet2_34_04 + pM[
SA24]*mDet2_34_02;
539 const Double_t mDet3_234_034 = pM[
SA20]*mDet2_34_34 - pM[
SA23]*mDet2_34_04 + pM[
SA24]*mDet2_34_03;
540 const Double_t mDet3_234_123 = pM[
SA21]*mDet2_34_23 - pM[
SA22]*mDet2_34_13 + pM[
SA23]*mDet2_34_12;
541 const Double_t mDet3_234_124 = pM[
SA21]*mDet2_34_24 - pM[
SA22]*mDet2_34_14 + pM[
SA24]*mDet2_34_12;
542 const Double_t mDet3_234_134 = pM[
SA21]*mDet2_34_34 - pM[
SA23]*mDet2_34_14 + pM[
SA24]*mDet2_34_13;
543 const Double_t mDet3_234_234 = pM[
SA22]*mDet2_34_34 - pM[
SA23]*mDet2_34_24 + pM[
SA24]*mDet2_34_23;
544 const Double_t mDet3_235_012 = pM[
SA20]*mDet2_35_12 - pM[
SA21]*mDet2_35_02 + pM[
SA22]*mDet2_35_01;
545 const Double_t mDet3_235_013 = pM[
SA20]*mDet2_35_13 - pM[
SA21]*mDet2_35_03 + pM[
SA23]*mDet2_35_01;
546 const Double_t mDet3_235_014 = pM[
SA20]*mDet2_35_14 - pM[
SA21]*mDet2_35_04 + pM[
SA24]*mDet2_35_01;
547 const Double_t mDet3_235_015 = pM[
SA20]*mDet2_35_15 - pM[
SA21]*mDet2_35_05 + pM[
SA25]*mDet2_35_01;
548 const Double_t mDet3_235_023 = pM[
SA20]*mDet2_35_23 - pM[
SA22]*mDet2_35_03 + pM[
SA23]*mDet2_35_02;
549 const Double_t mDet3_235_024 = pM[
SA20]*mDet2_35_24 - pM[
SA22]*mDet2_35_04 + pM[
SA24]*mDet2_35_02;
550 const Double_t mDet3_235_025 = pM[
SA20]*mDet2_35_25 - pM[
SA22]*mDet2_35_05 + pM[
SA25]*mDet2_35_02;
551 const Double_t mDet3_235_034 = pM[
SA20]*mDet2_35_34 - pM[
SA23]*mDet2_35_04 + pM[
SA24]*mDet2_35_03;
552 const Double_t mDet3_235_035 = pM[
SA20]*mDet2_35_35 - pM[
SA23]*mDet2_35_05 + pM[
SA25]*mDet2_35_03;
553 const Double_t mDet3_235_123 = pM[
SA21]*mDet2_35_23 - pM[
SA22]*mDet2_35_13 + pM[
SA23]*mDet2_35_12;
554 const Double_t mDet3_235_124 = pM[
SA21]*mDet2_35_24 - pM[
SA22]*mDet2_35_14 + pM[
SA24]*mDet2_35_12;
555 const Double_t mDet3_235_125 = pM[
SA21]*mDet2_35_25 - pM[
SA22]*mDet2_35_15 + pM[
SA25]*mDet2_35_12;
556 const Double_t mDet3_235_134 = pM[
SA21]*mDet2_35_34 - pM[
SA23]*mDet2_35_14 + pM[
SA24]*mDet2_35_13;
557 const Double_t mDet3_235_135 = pM[
SA21]*mDet2_35_35 - pM[
SA23]*mDet2_35_15 + pM[
SA25]*mDet2_35_13;
558 const Double_t mDet3_235_234 = pM[
SA22]*mDet2_35_34 - pM[
SA23]*mDet2_35_24 + pM[
SA24]*mDet2_35_23;
559 const Double_t mDet3_235_235 = pM[
SA22]*mDet2_35_35 - pM[
SA23]*mDet2_35_25 + pM[
SA25]*mDet2_35_23;
560 const Double_t mDet3_245_012 = pM[
SA20]*mDet2_45_12 - pM[
SA21]*mDet2_45_02 + pM[
SA22]*mDet2_45_01;
561 const Double_t mDet3_245_013 = pM[
SA20]*mDet2_45_13 - pM[
SA21]*mDet2_45_03 + pM[
SA23]*mDet2_45_01;
562 const Double_t mDet3_245_014 = pM[
SA20]*mDet2_45_14 - pM[
SA21]*mDet2_45_04 + pM[
SA24]*mDet2_45_01;
563 const Double_t mDet3_245_015 = pM[
SA20]*mDet2_45_15 - pM[
SA21]*mDet2_45_05 + pM[
SA25]*mDet2_45_01;
564 const Double_t mDet3_245_023 = pM[
SA20]*mDet2_45_23 - pM[
SA22]*mDet2_45_03 + pM[
SA23]*mDet2_45_02;
565 const Double_t mDet3_245_024 = pM[
SA20]*mDet2_45_24 - pM[
SA22]*mDet2_45_04 + pM[
SA24]*mDet2_45_02;
566 const Double_t mDet3_245_025 = pM[
SA20]*mDet2_45_25 - pM[
SA22]*mDet2_45_05 + pM[
SA25]*mDet2_45_02;
567 const Double_t mDet3_245_034 = pM[
SA20]*mDet2_45_34 - pM[
SA23]*mDet2_45_04 + pM[
SA24]*mDet2_45_03;
568 const Double_t mDet3_245_035 = pM[
SA20]*mDet2_45_35 - pM[
SA23]*mDet2_45_05 + pM[
SA25]*mDet2_45_03;
569 const Double_t mDet3_245_045 = pM[
SA20]*mDet2_45_45 - pM[
SA24]*mDet2_45_05 + pM[
SA25]*mDet2_45_04;
570 const Double_t mDet3_245_123 = pM[
SA21]*mDet2_45_23 - pM[
SA22]*mDet2_45_13 + pM[
SA23]*mDet2_45_12;
571 const Double_t mDet3_245_124 = pM[
SA21]*mDet2_45_24 - pM[
SA22]*mDet2_45_14 + pM[
SA24]*mDet2_45_12;
572 const Double_t mDet3_245_125 = pM[
SA21]*mDet2_45_25 - pM[
SA22]*mDet2_45_15 + pM[
SA25]*mDet2_45_12;
573 const Double_t mDet3_245_134 = pM[
SA21]*mDet2_45_34 - pM[
SA23]*mDet2_45_14 + pM[
SA24]*mDet2_45_13;
574 const Double_t mDet3_245_135 = pM[
SA21]*mDet2_45_35 - pM[
SA23]*mDet2_45_15 + pM[
SA25]*mDet2_45_13;
575 const Double_t mDet3_245_145 = pM[
SA21]*mDet2_45_45 - pM[
SA24]*mDet2_45_15 + pM[
SA25]*mDet2_45_14;
576 const Double_t mDet3_245_234 = pM[
SA22]*mDet2_45_34 - pM[
SA23]*mDet2_45_24 + pM[
SA24]*mDet2_45_23;
577 const Double_t mDet3_245_235 = pM[
SA22]*mDet2_45_35 - pM[
SA23]*mDet2_45_25 + pM[
SA25]*mDet2_45_23;
578 const Double_t mDet3_245_245 = pM[
SA22]*mDet2_45_45 - pM[
SA24]*mDet2_45_25 + pM[
SA25]*mDet2_45_24;
579 const Double_t mDet3_345_012 = pM[
SA30]*mDet2_45_12 - pM[
SA31]*mDet2_45_02 + pM[
SA32]*mDet2_45_01;
580 const Double_t mDet3_345_013 = pM[
SA30]*mDet2_45_13 - pM[
SA31]*mDet2_45_03 + pM[
SA33]*mDet2_45_01;
581 const Double_t mDet3_345_014 = pM[
SA30]*mDet2_45_14 - pM[
SA31]*mDet2_45_04 + pM[
SA34]*mDet2_45_01;
582 const Double_t mDet3_345_015 = pM[
SA30]*mDet2_45_15 - pM[
SA31]*mDet2_45_05 + pM[
SA35]*mDet2_45_01;
583 const Double_t mDet3_345_023 = pM[
SA30]*mDet2_45_23 - pM[
SA32]*mDet2_45_03 + pM[
SA33]*mDet2_45_02;
584 const Double_t mDet3_345_024 = pM[
SA30]*mDet2_45_24 - pM[
SA32]*mDet2_45_04 + pM[
SA34]*mDet2_45_02;
585 const Double_t mDet3_345_025 = pM[
SA30]*mDet2_45_25 - pM[
SA32]*mDet2_45_05 + pM[
SA35]*mDet2_45_02;
586 const Double_t mDet3_345_034 = pM[
SA30]*mDet2_45_34 - pM[
SA33]*mDet2_45_04 + pM[
SA34]*mDet2_45_03;
587 const Double_t mDet3_345_035 = pM[
SA30]*mDet2_45_35 - pM[
SA33]*mDet2_45_05 + pM[
SA35]*mDet2_45_03;
588 const Double_t mDet3_345_045 = pM[
SA30]*mDet2_45_45 - pM[
SA34]*mDet2_45_05 + pM[
SA35]*mDet2_45_04;
589 const Double_t mDet3_345_123 = pM[
SA31]*mDet2_45_23 - pM[
SA32]*mDet2_45_13 + pM[
SA33]*mDet2_45_12;
590 const Double_t mDet3_345_124 = pM[
SA31]*mDet2_45_24 - pM[
SA32]*mDet2_45_14 + pM[
SA34]*mDet2_45_12;
591 const Double_t mDet3_345_125 = pM[
SA31]*mDet2_45_25 - pM[
SA32]*mDet2_45_15 + pM[
SA35]*mDet2_45_12;
592 const Double_t mDet3_345_134 = pM[
SA31]*mDet2_45_34 - pM[
SA33]*mDet2_45_14 + pM[
SA34]*mDet2_45_13;
593 const Double_t mDet3_345_135 = pM[
SA31]*mDet2_45_35 - pM[
SA33]*mDet2_45_15 + pM[
SA35]*mDet2_45_13;
594 const Double_t mDet3_345_145 = pM[
SA31]*mDet2_45_45 - pM[
SA34]*mDet2_45_15 + pM[
SA35]*mDet2_45_14;
595 const Double_t mDet3_345_234 = pM[
SA32]*mDet2_45_34 - pM[
SA33]*mDet2_45_24 + pM[
SA34]*mDet2_45_23;
596 const Double_t mDet3_345_235 = pM[
SA32]*mDet2_45_35 - pM[
SA33]*mDet2_45_25 + pM[
SA35]*mDet2_45_23;
597 const Double_t mDet3_345_245 = pM[
SA32]*mDet2_45_45 - pM[
SA34]*mDet2_45_25 + pM[
SA35]*mDet2_45_24;
598 const Double_t mDet3_345_345 = pM[
SA33]*mDet2_45_45 - pM[
SA34]*mDet2_45_35 + pM[
SA35]*mDet2_45_34;
602 const Double_t mDet4_1234_0123 = pM[
SA10]*mDet3_234_123 - pM[
SA11]*mDet3_234_023
603 + pM[
SA12]*mDet3_234_013 - pM[
SA13]*mDet3_234_012;
604 const Double_t mDet4_1234_0124 = pM[
SA10]*mDet3_234_124 - pM[
SA11]*mDet3_234_024
605 + pM[
SA12]*mDet3_234_014 - pM[
SA14]*mDet3_234_012;
606 const Double_t mDet4_1234_0134 = pM[
SA10]*mDet3_234_134 - pM[
SA11]*mDet3_234_034
607 + pM[
SA13]*mDet3_234_014 - pM[
SA14]*mDet3_234_013;
608 const Double_t mDet4_1234_0234 = pM[
SA10]*mDet3_234_234 - pM[
SA12]*mDet3_234_034
609 + pM[
SA13]*mDet3_234_024 - pM[
SA14]*mDet3_234_023;
610 const Double_t mDet4_1234_1234 = pM[
SA11]*mDet3_234_234 - pM[
SA12]*mDet3_234_134
611 + pM[
SA13]*mDet3_234_124 - pM[
SA14]*mDet3_234_123;
612 const Double_t mDet4_1235_0123 = pM[
SA10]*mDet3_235_123 - pM[
SA11]*mDet3_235_023
613 + pM[
SA12]*mDet3_235_013 - pM[
SA13]*mDet3_235_012;
614 const Double_t mDet4_1235_0124 = pM[
SA10]*mDet3_235_124 - pM[
SA11]*mDet3_235_024
615 + pM[
SA12]*mDet3_235_014 - pM[
SA14]*mDet3_235_012;
616 const Double_t mDet4_1235_0125 = pM[
SA10]*mDet3_235_125 - pM[
SA11]*mDet3_235_025
617 + pM[
SA12]*mDet3_235_015 - pM[
SA15]*mDet3_235_012;
618 const Double_t mDet4_1235_0134 = pM[
SA10]*mDet3_235_134 - pM[
SA11]*mDet3_235_034
619 + pM[
SA13]*mDet3_235_014 - pM[
SA14]*mDet3_235_013;
620 const Double_t mDet4_1235_0135 = pM[
SA10]*mDet3_235_135 - pM[
SA11]*mDet3_235_035
621 + pM[
SA13]*mDet3_235_015 - pM[
SA15]*mDet3_235_013;
622 const Double_t mDet4_1235_0234 = pM[
SA10]*mDet3_235_234 - pM[
SA12]*mDet3_235_034
623 + pM[
SA13]*mDet3_235_024 - pM[
SA14]*mDet3_235_023;
624 const Double_t mDet4_1235_0235 = pM[
SA10]*mDet3_235_235 - pM[
SA12]*mDet3_235_035
625 + pM[
SA13]*mDet3_235_025 - pM[
SA15]*mDet3_235_023;
626 const Double_t mDet4_1235_1234 = pM[
SA11]*mDet3_235_234 - pM[
SA12]*mDet3_235_134
627 + pM[
SA13]*mDet3_235_124 - pM[
SA14]*mDet3_235_123;
628 const Double_t mDet4_1235_1235 = pM[
SA11]*mDet3_235_235 - pM[
SA12]*mDet3_235_135
629 + pM[
SA13]*mDet3_235_125 - pM[
SA15]*mDet3_235_123;
630 const Double_t mDet4_1245_0123 = pM[
SA10]*mDet3_245_123 - pM[
SA11]*mDet3_245_023
631 + pM[
SA12]*mDet3_245_013 - pM[
SA13]*mDet3_245_012;
632 const Double_t mDet4_1245_0124 = pM[
SA10]*mDet3_245_124 - pM[
SA11]*mDet3_245_024
633 + pM[
SA12]*mDet3_245_014 - pM[
SA14]*mDet3_245_012;
634 const Double_t mDet4_1245_0125 = pM[
SA10]*mDet3_245_125 - pM[
SA11]*mDet3_245_025
635 + pM[
SA12]*mDet3_245_015 - pM[
SA15]*mDet3_245_012;
636 const Double_t mDet4_1245_0134 = pM[
SA10]*mDet3_245_134 - pM[
SA11]*mDet3_245_034
637 + pM[
SA13]*mDet3_245_014 - pM[
SA14]*mDet3_245_013;
638 const Double_t mDet4_1245_0135 = pM[
SA10]*mDet3_245_135 - pM[
SA11]*mDet3_245_035
639 + pM[
SA13]*mDet3_245_015 - pM[
SA15]*mDet3_245_013;
640 const Double_t mDet4_1245_0145 = pM[
SA10]*mDet3_245_145 - pM[
SA11]*mDet3_245_045
641 + pM[
SA14]*mDet3_245_015 - pM[
SA15]*mDet3_245_014;
642 const Double_t mDet4_1245_0234 = pM[
SA10]*mDet3_245_234 - pM[
SA12]*mDet3_245_034
643 + pM[
SA13]*mDet3_245_024 - pM[
SA14]*mDet3_245_023;
644 const Double_t mDet4_1245_0235 = pM[
SA10]*mDet3_245_235 - pM[
SA12]*mDet3_245_035
645 + pM[
SA13]*mDet3_245_025 - pM[
SA15]*mDet3_245_023;
646 const Double_t mDet4_1245_0245 = pM[
SA10]*mDet3_245_245 - pM[
SA12]*mDet3_245_045
647 + pM[
SA14]*mDet3_245_025 - pM[
SA15]*mDet3_245_024;
648 const Double_t mDet4_1245_1234 = pM[
SA11]*mDet3_245_234 - pM[
SA12]*mDet3_245_134
649 + pM[
SA13]*mDet3_245_124 - pM[
SA14]*mDet3_245_123;
650 const Double_t mDet4_1245_1235 = pM[
SA11]*mDet3_245_235 - pM[
SA12]*mDet3_245_135
651 + pM[
SA13]*mDet3_245_125 - pM[
SA15]*mDet3_245_123;
652 const Double_t mDet4_1245_1245 = pM[
SA11]*mDet3_245_245 - pM[
SA12]*mDet3_245_145
653 + pM[
SA14]*mDet3_245_125 - pM[
SA15]*mDet3_245_124;
654 const Double_t mDet4_1345_0123 = pM[
SA10]*mDet3_345_123 - pM[
SA11]*mDet3_345_023
655 + pM[
SA12]*mDet3_345_013 - pM[
SA13]*mDet3_345_012;
656 const Double_t mDet4_1345_0124 = pM[
SA10]*mDet3_345_124 - pM[
SA11]*mDet3_345_024
657 + pM[
SA12]*mDet3_345_014 - pM[
SA14]*mDet3_345_012;
658 const Double_t mDet4_1345_0125 = pM[
SA10]*mDet3_345_125 - pM[
SA11]*mDet3_345_025
659 + pM[
SA12]*mDet3_345_015 - pM[
SA15]*mDet3_345_012;
660 const Double_t mDet4_1345_0134 = pM[
SA10]*mDet3_345_134 - pM[
SA11]*mDet3_345_034
661 + pM[
SA13]*mDet3_345_014 - pM[
SA14]*mDet3_345_013;
662 const Double_t mDet4_1345_0135 = pM[
SA10]*mDet3_345_135 - pM[
SA11]*mDet3_345_035
663 + pM[
SA13]*mDet3_345_015 - pM[
SA15]*mDet3_345_013;
664 const Double_t mDet4_1345_0145 = pM[
SA10]*mDet3_345_145 - pM[
SA11]*mDet3_345_045
665 + pM[
SA14]*mDet3_345_015 - pM[
SA15]*mDet3_345_014;
666 const Double_t mDet4_1345_0234 = pM[
SA10]*mDet3_345_234 - pM[
SA12]*mDet3_345_034
667 + pM[
SA13]*mDet3_345_024 - pM[
SA14]*mDet3_345_023;
668 const Double_t mDet4_1345_0235 = pM[
SA10]*mDet3_345_235 - pM[
SA12]*mDet3_345_035
669 + pM[
SA13]*mDet3_345_025 - pM[
SA15]*mDet3_345_023;
670 const Double_t mDet4_1345_0245 = pM[
SA10]*mDet3_345_245 - pM[
SA12]*mDet3_345_045
671 + pM[
SA14]*mDet3_345_025 - pM[
SA15]*mDet3_345_024;
672 const Double_t mDet4_1345_0345 = pM[
SA10]*mDet3_345_345 - pM[
SA13]*mDet3_345_045
673 + pM[
SA14]*mDet3_345_035 - pM[
SA15]*mDet3_345_034;
674 const Double_t mDet4_1345_1234 = pM[
SA11]*mDet3_345_234 - pM[
SA12]*mDet3_345_134
675 + pM[
SA13]*mDet3_345_124 - pM[
SA14]*mDet3_345_123;
676 const Double_t mDet4_1345_1235 = pM[
SA11]*mDet3_345_235 - pM[
SA12]*mDet3_345_135
677 + pM[
SA13]*mDet3_345_125 - pM[
SA15]*mDet3_345_123;
678 const Double_t mDet4_1345_1245 = pM[
SA11]*mDet3_345_245 - pM[
SA12]*mDet3_345_145
679 + pM[
SA14]*mDet3_345_125 - pM[
SA15]*mDet3_345_124;
680 const Double_t mDet4_1345_1345 = pM[
SA11]*mDet3_345_345 - pM[
SA13]*mDet3_345_145
681 + pM[
SA14]*mDet3_345_135 - pM[
SA15]*mDet3_345_134;
682 const Double_t mDet4_2345_0123 = pM[
SA20]*mDet3_345_123 - pM[
SA21]*mDet3_345_023
683 + pM[
SA22]*mDet3_345_013 - pM[
SA23]*mDet3_345_012;
684 const Double_t mDet4_2345_0124 = pM[
SA20]*mDet3_345_124 - pM[
SA21]*mDet3_345_024
685 + pM[
SA22]*mDet3_345_014 - pM[
SA24]*mDet3_345_012;
686 const Double_t mDet4_2345_0125 = pM[
SA20]*mDet3_345_125 - pM[
SA21]*mDet3_345_025
687 + pM[
SA22]*mDet3_345_015 - pM[
SA25]*mDet3_345_012;
688 const Double_t mDet4_2345_0134 = pM[
SA20]*mDet3_345_134 - pM[
SA21]*mDet3_345_034
689 + pM[
SA23]*mDet3_345_014 - pM[
SA24]*mDet3_345_013;
690 const Double_t mDet4_2345_0135 = pM[
SA20]*mDet3_345_135 - pM[
SA21]*mDet3_345_035
691 + pM[
SA23]*mDet3_345_015 - pM[
SA25]*mDet3_345_013;
692 const Double_t mDet4_2345_0145 = pM[
SA20]*mDet3_345_145 - pM[
SA21]*mDet3_345_045
693 + pM[
SA24]*mDet3_345_015 - pM[
SA25]*mDet3_345_014;
694 const Double_t mDet4_2345_0234 = pM[
SA20]*mDet3_345_234 - pM[
SA22]*mDet3_345_034
695 + pM[
SA23]*mDet3_345_024 - pM[
SA24]*mDet3_345_023;
696 const Double_t mDet4_2345_0235 = pM[
SA20]*mDet3_345_235 - pM[
SA22]*mDet3_345_035
697 + pM[
SA23]*mDet3_345_025 - pM[
SA25]*mDet3_345_023;
698 const Double_t mDet4_2345_0245 = pM[
SA20]*mDet3_345_245 - pM[
SA22]*mDet3_345_045
699 + pM[
SA24]*mDet3_345_025 - pM[
SA25]*mDet3_345_024;
700 const Double_t mDet4_2345_0345 = pM[
SA20]*mDet3_345_345 - pM[
SA23]*mDet3_345_045
701 + pM[
SA24]*mDet3_345_035 - pM[
SA25]*mDet3_345_034;
702 const Double_t mDet4_2345_1234 = pM[
SA21]*mDet3_345_234 - pM[
SA22]*mDet3_345_134
703 + pM[
SA23]*mDet3_345_124 - pM[
SA24]*mDet3_345_123;
704 const Double_t mDet4_2345_1235 = pM[
SA21]*mDet3_345_235 - pM[
SA22]*mDet3_345_135
705 + pM[
SA23]*mDet3_345_125 - pM[
SA25]*mDet3_345_123;
706 const Double_t mDet4_2345_1245 = pM[
SA21]*mDet3_345_245 - pM[
SA22]*mDet3_345_145
707 + pM[
SA24]*mDet3_345_125 - pM[
SA25]*mDet3_345_124;
708 const Double_t mDet4_2345_1345 = pM[
SA21]*mDet3_345_345 - pM[
SA23]*mDet3_345_145
709 + pM[
SA24]*mDet3_345_135 - pM[
SA25]*mDet3_345_134;
710 const Double_t mDet4_2345_2345 = pM[
SA22]*mDet3_345_345 - pM[
SA23]*mDet3_345_245
711 + pM[
SA24]*mDet3_345_235 - pM[
SA25]*mDet3_345_234;
715 const Double_t mDet5_01234_01234 = pM[
SA00]*mDet4_1234_1234 - pM[
SA01]*mDet4_1234_0234
716 + pM[
SA02]*mDet4_1234_0134 - pM[
SA03]*mDet4_1234_0124 + pM[
SA04]*mDet4_1234_0123;
717 const Double_t mDet5_01235_01234 = pM[
SA00]*mDet4_1235_1234 - pM[
SA01]*mDet4_1235_0234
718 + pM[
SA02]*mDet4_1235_0134 - pM[
SA03]*mDet4_1235_0124 + pM[
SA04]*mDet4_1235_0123;
719 const Double_t mDet5_01235_01235 = pM[
SA00]*mDet4_1235_1235 - pM[
SA01]*mDet4_1235_0235
720 + pM[
SA02]*mDet4_1235_0135 - pM[
SA03]*mDet4_1235_0125 + pM[
SA05]*mDet4_1235_0123;
721 const Double_t mDet5_01245_01234 = pM[
SA00]*mDet4_1245_1234 - pM[
SA01]*mDet4_1245_0234
722 + pM[
SA02]*mDet4_1245_0134 - pM[
SA03]*mDet4_1245_0124 + pM[
SA04]*mDet4_1245_0123;
723 const Double_t mDet5_01245_01235 = pM[
SA00]*mDet4_1245_1235 - pM[
SA01]*mDet4_1245_0235
724 + pM[
SA02]*mDet4_1245_0135 - pM[
SA03]*mDet4_1245_0125 + pM[
SA05]*mDet4_1245_0123;
725 const Double_t mDet5_01245_01245 = pM[
SA00]*mDet4_1245_1245 - pM[
SA01]*mDet4_1245_0245
726 + pM[
SA02]*mDet4_1245_0145 - pM[
SA04]*mDet4_1245_0125 + pM[
SA05]*mDet4_1245_0124;
727 const Double_t mDet5_01345_01234 = pM[
SA00]*mDet4_1345_1234 - pM[
SA01]*mDet4_1345_0234
728 + pM[
SA02]*mDet4_1345_0134 - pM[
SA03]*mDet4_1345_0124 + pM[
SA04]*mDet4_1345_0123;
729 const Double_t mDet5_01345_01235 = pM[
SA00]*mDet4_1345_1235 - pM[
SA01]*mDet4_1345_0235
730 + pM[
SA02]*mDet4_1345_0135 - pM[
SA03]*mDet4_1345_0125 + pM[
SA05]*mDet4_1345_0123;
731 const Double_t mDet5_01345_01245 = pM[
SA00]*mDet4_1345_1245 - pM[
SA01]*mDet4_1345_0245
732 + pM[
SA02]*mDet4_1345_0145 - pM[
SA04]*mDet4_1345_0125 + pM[
SA05]*mDet4_1345_0124;
733 const Double_t mDet5_01345_01345 = pM[
SA00]*mDet4_1345_1345 - pM[
SA01]*mDet4_1345_0345
734 + pM[
SA03]*mDet4_1345_0145 - pM[
SA04]*mDet4_1345_0135 + pM[
SA05]*mDet4_1345_0134;
735 const Double_t mDet5_02345_01234 = pM[
SA00]*mDet4_2345_1234 - pM[
SA01]*mDet4_2345_0234
736 + pM[
SA02]*mDet4_2345_0134 - pM[
SA03]*mDet4_2345_0124 + pM[
SA04]*mDet4_2345_0123;
737 const Double_t mDet5_02345_01235 = pM[
SA00]*mDet4_2345_1235 - pM[
SA01]*mDet4_2345_0235
738 + pM[
SA02]*mDet4_2345_0135 - pM[
SA03]*mDet4_2345_0125 + pM[
SA05]*mDet4_2345_0123;
739 const Double_t mDet5_02345_01245 = pM[
SA00]*mDet4_2345_1245 - pM[
SA01]*mDet4_2345_0245
740 + pM[
SA02]*mDet4_2345_0145 - pM[
SA04]*mDet4_2345_0125 + pM[
SA05]*mDet4_2345_0124;
741 const Double_t mDet5_02345_01345 = pM[
SA00]*mDet4_2345_1345 - pM[
SA01]*mDet4_2345_0345
742 + pM[
SA03]*mDet4_2345_0145 - pM[
SA04]*mDet4_2345_0135 + pM[
SA05]*mDet4_2345_0134;
743 const Double_t mDet5_02345_02345 = pM[
SA00]*mDet4_2345_2345 - pM[
SA02]*mDet4_2345_0345
744 + pM[
SA03]*mDet4_2345_0245 - pM[
SA04]*mDet4_2345_0235 + pM[
SA05]*mDet4_2345_0234;
745 const Double_t mDet5_12345_01234 = pM[
SA10]*mDet4_2345_1234 - pM[
SA11]*mDet4_2345_0234
746 + pM[
SA12]*mDet4_2345_0134 - pM[
SA13]*mDet4_2345_0124 + pM[
SA14]*mDet4_2345_0123;
747 const Double_t mDet5_12345_01235 = pM[
SA10]*mDet4_2345_1235 - pM[
SA11]*mDet4_2345_0235
748 + pM[
SA12]*mDet4_2345_0135 - pM[
SA13]*mDet4_2345_0125 + pM[
SA15]*mDet4_2345_0123;
749 const Double_t mDet5_12345_01245 = pM[
SA10]*mDet4_2345_1245 - pM[
SA11]*mDet4_2345_0245
750 + pM[
SA12]*mDet4_2345_0145 - pM[
SA14]*mDet4_2345_0125 + pM[
SA15]*mDet4_2345_0124;
751 const Double_t mDet5_12345_01345 = pM[
SA10]*mDet4_2345_1345 - pM[
SA11]*mDet4_2345_0345
752 + pM[
SA13]*mDet4_2345_0145 - pM[
SA14]*mDet4_2345_0135 + pM[
SA15]*mDet4_2345_0134;
753 const Double_t mDet5_12345_02345 = pM[
SA10]*mDet4_2345_2345 - pM[
SA12]*mDet4_2345_0345
754 + pM[
SA13]*mDet4_2345_0245 - pM[
SA14]*mDet4_2345_0235 + pM[
SA15]*mDet4_2345_0234;
755 const Double_t mDet5_12345_12345 = pM[
SA11]*mDet4_2345_2345 - pM[
SA12]*mDet4_2345_1345
756 + pM[
SA13]*mDet4_2345_1245 - pM[
SA14]*mDet4_2345_1235 + pM[
SA15]*mDet4_2345_1234;
760 const Double_t det = pM[
SA00]*mDet5_12345_12345 - pM[
SA01]*mDet5_12345_02345 + pM[
SA02]*mDet5_12345_01345
761 - pM[
SA03]*mDet5_12345_01245 + pM[
SA04]*mDet5_12345_01235 - pM[
SA05]*mDet5_12345_01234;
767 Error(
"Inv6x6",
"matrix is singular");
771 const Double_t oneOverDet = 1.0/det;
772 const Double_t mn1OverDet = - oneOverDet;
774 pM[
SA00] = mDet5_12345_12345*oneOverDet;
775 pM[
SA01] = mDet5_12345_02345*mn1OverDet;
776 pM[
SA02] = mDet5_12345_01345*oneOverDet;
777 pM[
SA03] = mDet5_12345_01245*mn1OverDet;
778 pM[
SA04] = mDet5_12345_01235*oneOverDet;
779 pM[
SA05] = mDet5_12345_01234*mn1OverDet;
781 pM[
SA11] = mDet5_02345_02345*oneOverDet;
782 pM[
SA12] = mDet5_02345_01345*mn1OverDet;
783 pM[
SA13] = mDet5_02345_01245*oneOverDet;
784 pM[
SA14] = mDet5_02345_01235*mn1OverDet;
785 pM[
SA15] = mDet5_02345_01234*oneOverDet;
787 pM[
SA22] = mDet5_01345_01345*oneOverDet;
788 pM[
SA23] = mDet5_01345_01245*mn1OverDet;
789 pM[
SA24] = mDet5_01345_01235*oneOverDet;
790 pM[
SA25] = mDet5_01345_01234*mn1OverDet;
792 pM[
SA33] = mDet5_01245_01245*oneOverDet;
793 pM[
SA34] = mDet5_01245_01235*mn1OverDet;
794 pM[
SA35] = mDet5_01245_01234*oneOverDet;
796 pM[
SA44] = mDet5_01235_01235*oneOverDet;
797 pM[
SA45] = mDet5_01235_01234*mn1OverDet;
799 pM[
SA55] = mDet5_01234_01234*oneOverDet;
801 for (
Int_t irow = 0; irow < 6; irow++) {
802 const Int_t rowOff1 = irow*6;
803 for (
Int_t icol = 0; icol < irow; icol++) {
804 const Int_t rowOff2 = icol*6;
805 pM[rowOff1+icol] = pM[rowOff2+irow];
812 #ifndef ROOT_TMatrixFSymfwd
822 #ifndef ROOT_TMatrixDSymfwd
Bool_t Inv6x6(TMatrixTSym< Element > &m, Double_t *determ)
NamespaceImp(TMatrixTSymCramerInv)
Bool_t Inv3x3(TMatrixTSym< Element > &m, Double_t *determ)
void Error(const char *location, const char *msgfmt,...)
virtual const Element * GetMatrixArray() const
Bool_t Inv4x4(TMatrixTSym< Element > &m, Double_t *determ)
Bool_t Inv5x5(TMatrixTSym< Element > &m, Double_t *determ)
Bool_t Inv2x2(TMatrixTSym< Element > &m, Double_t *determ)