40 #if !defined(R__SOLARIS) && !defined(R__ACC) && !defined(R__FBSD) 46 template<
class Element>
50 Error(
"Inv2x2",
"matrix should be square 2x2");
56 const Double_t det = pM[0] * pM[3] - pM[2] * pM[1];
63 Error(
"Inv2x2",
"matrix is singular");
78 template<
class Element>
82 Error(
"Inv3x3",
"matrix should be square 3x3");
88 const Double_t c00 = pM[4] * pM[8] - pM[5] * pM[7];
89 const Double_t c01 = pM[5] * pM[6] - pM[3] * pM[8];
90 const Double_t c02 = pM[3] * pM[7] - pM[4] * pM[6];
91 const Double_t c10 = pM[7] * pM[2] - pM[8] * pM[1];
92 const Double_t c11 = pM[8] * pM[0] - pM[6] * pM[2];
93 const Double_t c12 = pM[6] * pM[1] - pM[7] * pM[0];
94 const Double_t c20 = pM[1] * pM[5] - pM[2] * pM[4];
95 const Double_t c21 = pM[2] * pM[3] - pM[0] * pM[5];
96 const Double_t c22 = pM[0] * pM[4] - pM[1] * pM[3];
106 det = c12*c01-c11*c02;
109 det = c11*c22-c12*c21;
111 }
else if (t2 >= t1) {
113 det = c12*c01-c11*c02;
116 det = c02*c21-c01*c22;
119 if ( det == 0 || tmp == 0) {
120 Error(
"Inv3x3",
"matrix is singular");
165 template<
class Element>
169 Error(
"Inv4x4",
"matrix should be square 4x4");
199 + pM[
GF02]*det2_12_01;
201 + pM[
GF03]*det2_12_01;
203 + pM[
GF03]*det2_12_02;
205 + pM[
GF03]*det2_12_12;
207 + pM[
GF02]*det2_13_01;
209 + pM[
GF03]*det2_13_01;
211 + pM[
GF03]*det2_13_02;
213 + pM[
GF03]*det2_13_12;
215 + pM[
GF02]*det2_23_01;
217 + pM[
GF03]*det2_23_01;
219 + pM[
GF03]*det2_23_02;
221 + pM[
GF03]*det2_23_12;
223 + pM[
GF12]*det2_23_01;
225 + pM[
GF13]*det2_23_01;
227 + pM[
GF13]*det2_23_02;
229 + pM[
GF13]*det2_23_12;
234 + pM[
GF02]*det3_123_013 - pM[
GF03]*det3_123_012;
239 Error(
"Inv4x4",
"matrix is singular");
243 const Double_t oneOverDet = 1.0/det;
244 const Double_t mn1OverDet = - oneOverDet;
246 pM[
GF00] = det3_123_123 * oneOverDet;
247 pM[
GF01] = det3_023_123 * mn1OverDet;
248 pM[
GF02] = det3_013_123 * oneOverDet;
249 pM[
GF03] = det3_012_123 * mn1OverDet;
251 pM[
GF10] = det3_123_023 * mn1OverDet;
252 pM[
GF11] = det3_023_023 * oneOverDet;
253 pM[
GF12] = det3_013_023 * mn1OverDet;
254 pM[
GF13] = det3_012_023 * oneOverDet;
256 pM[
GF20] = det3_123_013 * oneOverDet;
257 pM[
GF21] = det3_023_013 * mn1OverDet;
258 pM[
GF22] = det3_013_013 * oneOverDet;
259 pM[
GF23] = det3_012_013 * mn1OverDet;
261 pM[
GF30] = det3_123_012 * mn1OverDet;
262 pM[
GF31] = det3_023_012 * oneOverDet;
263 pM[
GF32] = det3_013_012 * mn1OverDet;
264 pM[
GF33] = det3_012_012 * oneOverDet;
303 template<
class Element>
307 Error(
"Inv5x5",
"matrix should be square 5x5");
391 const Double_t det4_0123_0123 = pM[
GM00]*det3_123_123 - pM[
GM01]*det3_123_023
392 + pM[
GM02]*det3_123_013 - pM[
GM03]*det3_123_012;
393 const Double_t det4_0123_0124 = pM[
GM00]*det3_123_124 - pM[
GM01]*det3_123_024
394 + pM[
GM02]*det3_123_014 - pM[
GM04]*det3_123_012;
395 const Double_t det4_0123_0134 = pM[
GM00]*det3_123_134 - pM[
GM01]*det3_123_034
396 + pM[
GM03]*det3_123_014 - pM[
GM04]*det3_123_013;
397 const Double_t det4_0123_0234 = pM[
GM00]*det3_123_234 - pM[
GM02]*det3_123_034
398 + pM[
GM03]*det3_123_024 - pM[
GM04]*det3_123_023;
399 const Double_t det4_0123_1234 = pM[
GM01]*det3_123_234 - pM[
GM02]*det3_123_134
400 + pM[
GM03]*det3_123_124 - pM[
GM04]*det3_123_123;
401 const Double_t det4_0124_0123 = pM[
GM00]*det3_124_123 - pM[
GM01]*det3_124_023
402 + pM[
GM02]*det3_124_013 - pM[
GM03]*det3_124_012;
403 const Double_t det4_0124_0124 = pM[
GM00]*det3_124_124 - pM[
GM01]*det3_124_024
404 + pM[
GM02]*det3_124_014 - pM[
GM04]*det3_124_012;
405 const Double_t det4_0124_0134 = pM[
GM00]*det3_124_134 - pM[
GM01]*det3_124_034
406 + pM[
GM03]*det3_124_014 - pM[
GM04]*det3_124_013;
407 const Double_t det4_0124_0234 = pM[
GM00]*det3_124_234 - pM[
GM02]*det3_124_034
408 + pM[
GM03]*det3_124_024 - pM[
GM04]*det3_124_023;
409 const Double_t det4_0124_1234 = pM[
GM01]*det3_124_234 - pM[
GM02]*det3_124_134
410 + pM[
GM03]*det3_124_124 - pM[
GM04]*det3_124_123;
411 const Double_t det4_0134_0123 = pM[
GM00]*det3_134_123 - pM[
GM01]*det3_134_023
412 + pM[
GM02]*det3_134_013 - pM[
GM03]*det3_134_012;
413 const Double_t det4_0134_0124 = pM[
GM00]*det3_134_124 - pM[
GM01]*det3_134_024
414 + pM[
GM02]*det3_134_014 - pM[
GM04]*det3_134_012;
415 const Double_t det4_0134_0134 = pM[
GM00]*det3_134_134 - pM[
GM01]*det3_134_034
416 + pM[
GM03]*det3_134_014 - pM[
GM04]*det3_134_013;
417 const Double_t det4_0134_0234 = pM[
GM00]*det3_134_234 - pM[
GM02]*det3_134_034
418 + pM[
GM03]*det3_134_024 - pM[
GM04]*det3_134_023;
419 const Double_t det4_0134_1234 = pM[
GM01]*det3_134_234 - pM[
GM02]*det3_134_134
420 + pM[
GM03]*det3_134_124 - pM[
GM04]*det3_134_123;
421 const Double_t det4_0234_0123 = pM[
GM00]*det3_234_123 - pM[
GM01]*det3_234_023
422 + pM[
GM02]*det3_234_013 - pM[
GM03]*det3_234_012;
423 const Double_t det4_0234_0124 = pM[
GM00]*det3_234_124 - pM[
GM01]*det3_234_024
424 + pM[
GM02]*det3_234_014 - pM[
GM04]*det3_234_012;
425 const Double_t det4_0234_0134 = pM[
GM00]*det3_234_134 - pM[
GM01]*det3_234_034
426 + pM[
GM03]*det3_234_014 - pM[
GM04]*det3_234_013;
427 const Double_t det4_0234_0234 = pM[
GM00]*det3_234_234 - pM[
GM02]*det3_234_034
428 + pM[
GM03]*det3_234_024 - pM[
GM04]*det3_234_023;
429 const Double_t det4_0234_1234 = pM[
GM01]*det3_234_234 - pM[
GM02]*det3_234_134
430 + pM[
GM03]*det3_234_124 - pM[
GM04]*det3_234_123;
431 const Double_t det4_1234_0123 = pM[
GM10]*det3_234_123 - pM[
GM11]*det3_234_023
432 + pM[
GM12]*det3_234_013 - pM[
GM13]*det3_234_012;
433 const Double_t det4_1234_0124 = pM[
GM10]*det3_234_124 - pM[
GM11]*det3_234_024
434 + pM[
GM12]*det3_234_014 - pM[
GM14]*det3_234_012;
435 const Double_t det4_1234_0134 = pM[
GM10]*det3_234_134 - pM[
GM11]*det3_234_034
436 + pM[
GM13]*det3_234_014 - pM[
GM14]*det3_234_013;
437 const Double_t det4_1234_0234 = pM[
GM10]*det3_234_234 - pM[
GM12]*det3_234_034
438 + pM[
GM13]*det3_234_024 - pM[
GM14]*det3_234_023;
439 const Double_t det4_1234_1234 = pM[
GM11]*det3_234_234 - pM[
GM12]*det3_234_134
440 + pM[
GM13]*det3_234_124 - pM[
GM14]*det3_234_123;
444 const Double_t det = pM[
GM00]*det4_1234_1234 - pM[
GM01]*det4_1234_0234 + pM[
GM02]*det4_1234_0134
445 - pM[
GM03]*det4_1234_0124 + pM[
GM04]*det4_1234_0123;
450 Error(
"Inv5x5",
"matrix is singular");
454 const Double_t oneOverDet = 1.0/det;
455 const Double_t mn1OverDet = - oneOverDet;
457 pM[
GM00] = det4_1234_1234 * oneOverDet;
458 pM[
GM01] = det4_0234_1234 * mn1OverDet;
459 pM[
GM02] = det4_0134_1234 * oneOverDet;
460 pM[
GM03] = det4_0124_1234 * mn1OverDet;
461 pM[
GM04] = det4_0123_1234 * oneOverDet;
463 pM[
GM10] = det4_1234_0234 * mn1OverDet;
464 pM[
GM11] = det4_0234_0234 * oneOverDet;
465 pM[
GM12] = det4_0134_0234 * mn1OverDet;
466 pM[
GM13] = det4_0124_0234 * oneOverDet;
467 pM[
GM14] = det4_0123_0234 * mn1OverDet;
469 pM[
GM20] = det4_1234_0134 * oneOverDet;
470 pM[
GM21] = det4_0234_0134 * mn1OverDet;
471 pM[
GM22] = det4_0134_0134 * oneOverDet;
472 pM[
GM23] = det4_0124_0134 * mn1OverDet;
473 pM[
GM24] = det4_0123_0134 * oneOverDet;
475 pM[
GM30] = det4_1234_0124 * mn1OverDet;
476 pM[
GM31] = det4_0234_0124 * oneOverDet;
477 pM[
GM32] = det4_0134_0124 * mn1OverDet;
478 pM[
GM33] = det4_0124_0124 * oneOverDet;
479 pM[
GM34] = det4_0123_0124 * mn1OverDet;
481 pM[
GM40] = det4_1234_0123 * oneOverDet;
482 pM[
GM41] = det4_0234_0123 * mn1OverDet;
483 pM[
GM42] = det4_0134_0123 * oneOverDet;
484 pM[
GM43] = det4_0124_0123 * mn1OverDet;
485 pM[
GM44] = det4_0123_0123 * oneOverDet;
536 template<
class Element>
540 Error(
"Inv6x6",
"matrix should be square 6x6");
679 const Double_t det4_1234_0123 = pM[
GA10]*det3_234_123 - pM[
GA11]*det3_234_023
680 + pM[
GA12]*det3_234_013 - pM[
GA13]*det3_234_012;
681 const Double_t det4_1234_0124 = pM[
GA10]*det3_234_124 - pM[
GA11]*det3_234_024
682 + pM[
GA12]*det3_234_014 - pM[
GA14]*det3_234_012;
683 const Double_t det4_1234_0125 = pM[
GA10]*det3_234_125 - pM[
GA11]*det3_234_025
684 + pM[
GA12]*det3_234_015 - pM[
GA15]*det3_234_012;
685 const Double_t det4_1234_0134 = pM[
GA10]*det3_234_134 - pM[
GA11]*det3_234_034
686 + pM[
GA13]*det3_234_014 - pM[
GA14]*det3_234_013;
687 const Double_t det4_1234_0135 = pM[
GA10]*det3_234_135 - pM[
GA11]*det3_234_035
688 + pM[
GA13]*det3_234_015 - pM[
GA15]*det3_234_013;
689 const Double_t det4_1234_0145 = pM[
GA10]*det3_234_145 - pM[
GA11]*det3_234_045
690 + pM[
GA14]*det3_234_015 - pM[
GA15]*det3_234_014;
691 const Double_t det4_1234_0234 = pM[
GA10]*det3_234_234 - pM[
GA12]*det3_234_034
692 + pM[
GA13]*det3_234_024 - pM[
GA14]*det3_234_023;
693 const Double_t det4_1234_0235 = pM[
GA10]*det3_234_235 - pM[
GA12]*det3_234_035
694 + pM[
GA13]*det3_234_025 - pM[
GA15]*det3_234_023;
695 const Double_t det4_1234_0245 = pM[
GA10]*det3_234_245 - pM[
GA12]*det3_234_045
696 + pM[
GA14]*det3_234_025 - pM[
GA15]*det3_234_024;
697 const Double_t det4_1234_0345 = pM[
GA10]*det3_234_345 - pM[
GA13]*det3_234_045
698 + pM[
GA14]*det3_234_035 - pM[
GA15]*det3_234_034;
699 const Double_t det4_1234_1234 = pM[
GA11]*det3_234_234 - pM[
GA12]*det3_234_134
700 + pM[
GA13]*det3_234_124 - pM[
GA14]*det3_234_123;
701 const Double_t det4_1234_1235 = pM[
GA11]*det3_234_235 - pM[
GA12]*det3_234_135
702 + pM[
GA13]*det3_234_125 - pM[
GA15]*det3_234_123;
703 const Double_t det4_1234_1245 = pM[
GA11]*det3_234_245 - pM[
GA12]*det3_234_145
704 + pM[
GA14]*det3_234_125 - pM[
GA15]*det3_234_124;
705 const Double_t det4_1234_1345 = pM[
GA11]*det3_234_345 - pM[
GA13]*det3_234_145
706 + pM[
GA14]*det3_234_135 - pM[
GA15]*det3_234_134;
707 const Double_t det4_1234_2345 = pM[
GA12]*det3_234_345 - pM[
GA13]*det3_234_245
708 + pM[
GA14]*det3_234_235 - pM[
GA15]*det3_234_234;
709 const Double_t det4_1235_0123 = pM[
GA10]*det3_235_123 - pM[
GA11]*det3_235_023
710 + pM[
GA12]*det3_235_013 - pM[
GA13]*det3_235_012;
711 const Double_t det4_1235_0124 = pM[
GA10]*det3_235_124 - pM[
GA11]*det3_235_024
712 + pM[
GA12]*det3_235_014 - pM[
GA14]*det3_235_012;
713 const Double_t det4_1235_0125 = pM[
GA10]*det3_235_125 - pM[
GA11]*det3_235_025
714 + pM[
GA12]*det3_235_015 - pM[
GA15]*det3_235_012;
715 const Double_t det4_1235_0134 = pM[
GA10]*det3_235_134 - pM[
GA11]*det3_235_034
716 + pM[
GA13]*det3_235_014 - pM[
GA14]*det3_235_013;
717 const Double_t det4_1235_0135 = pM[
GA10]*det3_235_135 - pM[
GA11]*det3_235_035
718 + pM[
GA13]*det3_235_015 - pM[
GA15]*det3_235_013;
719 const Double_t det4_1235_0145 = pM[
GA10]*det3_235_145 - pM[
GA11]*det3_235_045
720 + pM[
GA14]*det3_235_015 - pM[
GA15]*det3_235_014;
721 const Double_t det4_1235_0234 = pM[
GA10]*det3_235_234 - pM[
GA12]*det3_235_034
722 + pM[
GA13]*det3_235_024 - pM[
GA14]*det3_235_023;
723 const Double_t det4_1235_0235 = pM[
GA10]*det3_235_235 - pM[
GA12]*det3_235_035
724 + pM[
GA13]*det3_235_025 - pM[
GA15]*det3_235_023;
725 const Double_t det4_1235_0245 = pM[
GA10]*det3_235_245 - pM[
GA12]*det3_235_045
726 + pM[
GA14]*det3_235_025 - pM[
GA15]*det3_235_024;
727 const Double_t det4_1235_0345 = pM[
GA10]*det3_235_345 - pM[
GA13]*det3_235_045
728 + pM[
GA14]*det3_235_035 - pM[
GA15]*det3_235_034;
729 const Double_t det4_1235_1234 = pM[
GA11]*det3_235_234 - pM[
GA12]*det3_235_134
730 + pM[
GA13]*det3_235_124 - pM[
GA14]*det3_235_123;
731 const Double_t det4_1235_1235 = pM[
GA11]*det3_235_235 - pM[
GA12]*det3_235_135
732 + pM[
GA13]*det3_235_125 - pM[
GA15]*det3_235_123;
733 const Double_t det4_1235_1245 = pM[
GA11]*det3_235_245 - pM[
GA12]*det3_235_145
734 + pM[
GA14]*det3_235_125 - pM[
GA15]*det3_235_124;
735 const Double_t det4_1235_1345 = pM[
GA11]*det3_235_345 - pM[
GA13]*det3_235_145
736 + pM[
GA14]*det3_235_135 - pM[
GA15]*det3_235_134;
737 const Double_t det4_1235_2345 = pM[
GA12]*det3_235_345 - pM[
GA13]*det3_235_245
738 + pM[
GA14]*det3_235_235 - pM[
GA15]*det3_235_234;
739 const Double_t det4_1245_0123 = pM[
GA10]*det3_245_123 - pM[
GA11]*det3_245_023
740 + pM[
GA12]*det3_245_013 - pM[
GA13]*det3_245_012;
741 const Double_t det4_1245_0124 = pM[
GA10]*det3_245_124 - pM[
GA11]*det3_245_024
742 + pM[
GA12]*det3_245_014 - pM[
GA14]*det3_245_012;
743 const Double_t det4_1245_0125 = pM[
GA10]*det3_245_125 - pM[
GA11]*det3_245_025
744 + pM[
GA12]*det3_245_015 - pM[
GA15]*det3_245_012;
745 const Double_t det4_1245_0134 = pM[
GA10]*det3_245_134 - pM[
GA11]*det3_245_034
746 + pM[
GA13]*det3_245_014 - pM[
GA14]*det3_245_013;
747 const Double_t det4_1245_0135 = pM[
GA10]*det3_245_135 - pM[
GA11]*det3_245_035
748 + pM[
GA13]*det3_245_015 - pM[
GA15]*det3_245_013;
749 const Double_t det4_1245_0145 = pM[
GA10]*det3_245_145 - pM[
GA11]*det3_245_045
750 + pM[
GA14]*det3_245_015 - pM[
GA15]*det3_245_014;
751 const Double_t det4_1245_0234 = pM[
GA10]*det3_245_234 - pM[
GA12]*det3_245_034
752 + pM[
GA13]*det3_245_024 - pM[
GA14]*det3_245_023;
753 const Double_t det4_1245_0235 = pM[
GA10]*det3_245_235 - pM[
GA12]*det3_245_035
754 + pM[
GA13]*det3_245_025 - pM[
GA15]*det3_245_023;
755 const Double_t det4_1245_0245 = pM[
GA10]*det3_245_245 - pM[
GA12]*det3_245_045
756 + pM[
GA14]*det3_245_025 - pM[
GA15]*det3_245_024;
757 const Double_t det4_1245_0345 = pM[
GA10]*det3_245_345 - pM[
GA13]*det3_245_045
758 + pM[
GA14]*det3_245_035 - pM[
GA15]*det3_245_034;
759 const Double_t det4_1245_1234 = pM[
GA11]*det3_245_234 - pM[
GA12]*det3_245_134
760 + pM[
GA13]*det3_245_124 - pM[
GA14]*det3_245_123;
761 const Double_t det4_1245_1235 = pM[
GA11]*det3_245_235 - pM[
GA12]*det3_245_135
762 + pM[
GA13]*det3_245_125 - pM[
GA15]*det3_245_123;
763 const Double_t det4_1245_1245 = pM[
GA11]*det3_245_245 - pM[
GA12]*det3_245_145
764 + pM[
GA14]*det3_245_125 - pM[
GA15]*det3_245_124;
765 const Double_t det4_1245_1345 = pM[
GA11]*det3_245_345 - pM[
GA13]*det3_245_145
766 + pM[
GA14]*det3_245_135 - pM[
GA15]*det3_245_134;
767 const Double_t det4_1245_2345 = pM[
GA12]*det3_245_345 - pM[
GA13]*det3_245_245
768 + pM[
GA14]*det3_245_235 - pM[
GA15]*det3_245_234;
769 const Double_t det4_1345_0123 = pM[
GA10]*det3_345_123 - pM[
GA11]*det3_345_023
770 + pM[
GA12]*det3_345_013 - pM[
GA13]*det3_345_012;
771 const Double_t det4_1345_0124 = pM[
GA10]*det3_345_124 - pM[
GA11]*det3_345_024
772 + pM[
GA12]*det3_345_014 - pM[
GA14]*det3_345_012;
773 const Double_t det4_1345_0125 = pM[
GA10]*det3_345_125 - pM[
GA11]*det3_345_025
774 + pM[
GA12]*det3_345_015 - pM[
GA15]*det3_345_012;
775 const Double_t det4_1345_0134 = pM[
GA10]*det3_345_134 - pM[
GA11]*det3_345_034
776 + pM[
GA13]*det3_345_014 - pM[
GA14]*det3_345_013;
777 const Double_t det4_1345_0135 = pM[
GA10]*det3_345_135 - pM[
GA11]*det3_345_035
778 + pM[
GA13]*det3_345_015 - pM[
GA15]*det3_345_013;
779 const Double_t det4_1345_0145 = pM[
GA10]*det3_345_145 - pM[
GA11]*det3_345_045
780 + pM[
GA14]*det3_345_015 - pM[
GA15]*det3_345_014;
781 const Double_t det4_1345_0234 = pM[
GA10]*det3_345_234 - pM[
GA12]*det3_345_034
782 + pM[
GA13]*det3_345_024 - pM[
GA14]*det3_345_023;
783 const Double_t det4_1345_0235 = pM[
GA10]*det3_345_235 - pM[
GA12]*det3_345_035
784 + pM[
GA13]*det3_345_025 - pM[
GA15]*det3_345_023;
785 const Double_t det4_1345_0245 = pM[
GA10]*det3_345_245 - pM[
GA12]*det3_345_045
786 + pM[
GA14]*det3_345_025 - pM[
GA15]*det3_345_024;
787 const Double_t det4_1345_0345 = pM[
GA10]*det3_345_345 - pM[
GA13]*det3_345_045
788 + pM[
GA14]*det3_345_035 - pM[
GA15]*det3_345_034;
789 const Double_t det4_1345_1234 = pM[
GA11]*det3_345_234 - pM[
GA12]*det3_345_134
790 + pM[
GA13]*det3_345_124 - pM[
GA14]*det3_345_123;
791 const Double_t det4_1345_1235 = pM[
GA11]*det3_345_235 - pM[
GA12]*det3_345_135
792 + pM[
GA13]*det3_345_125 - pM[
GA15]*det3_345_123;
793 const Double_t det4_1345_1245 = pM[
GA11]*det3_345_245 - pM[
GA12]*det3_345_145
794 + pM[
GA14]*det3_345_125 - pM[
GA15]*det3_345_124;
795 const Double_t det4_1345_1345 = pM[
GA11]*det3_345_345 - pM[
GA13]*det3_345_145
796 + pM[
GA14]*det3_345_135 - pM[
GA15]*det3_345_134;
797 const Double_t det4_1345_2345 = pM[
GA12]*det3_345_345 - pM[
GA13]*det3_345_245
798 + pM[
GA14]*det3_345_235 - pM[
GA15]*det3_345_234;
799 const Double_t det4_2345_0123 = pM[
GA20]*det3_345_123 - pM[
GA21]*det3_345_023
800 + pM[
GA22]*det3_345_013 - pM[
GA23]*det3_345_012;
801 const Double_t det4_2345_0124 = pM[
GA20]*det3_345_124 - pM[
GA21]*det3_345_024
802 + pM[
GA22]*det3_345_014 - pM[
GA24]*det3_345_012;
803 const Double_t det4_2345_0125 = pM[
GA20]*det3_345_125 - pM[
GA21]*det3_345_025
804 + pM[
GA22]*det3_345_015 - pM[
GA25]*det3_345_012;
805 const Double_t det4_2345_0134 = pM[
GA20]*det3_345_134 - pM[
GA21]*det3_345_034
806 + pM[
GA23]*det3_345_014 - pM[
GA24]*det3_345_013;
807 const Double_t det4_2345_0135 = pM[
GA20]*det3_345_135 - pM[
GA21]*det3_345_035
808 + pM[
GA23]*det3_345_015 - pM[
GA25]*det3_345_013;
809 const Double_t det4_2345_0145 = pM[
GA20]*det3_345_145 - pM[
GA21]*det3_345_045
810 + pM[
GA24]*det3_345_015 - pM[
GA25]*det3_345_014;
811 const Double_t det4_2345_0234 = pM[
GA20]*det3_345_234 - pM[
GA22]*det3_345_034
812 + pM[
GA23]*det3_345_024 - pM[
GA24]*det3_345_023;
813 const Double_t det4_2345_0235 = pM[
GA20]*det3_345_235 - pM[
GA22]*det3_345_035
814 + pM[
GA23]*det3_345_025 - pM[
GA25]*det3_345_023;
815 const Double_t det4_2345_0245 = pM[
GA20]*det3_345_245 - pM[
GA22]*det3_345_045
816 + pM[
GA24]*det3_345_025 - pM[
GA25]*det3_345_024;
817 const Double_t det4_2345_0345 = pM[
GA20]*det3_345_345 - pM[
GA23]*det3_345_045
818 + pM[
GA24]*det3_345_035 - pM[
GA25]*det3_345_034;
819 const Double_t det4_2345_1234 = pM[
GA21]*det3_345_234 - pM[
GA22]*det3_345_134
820 + pM[
GA23]*det3_345_124 - pM[
GA24]*det3_345_123;
821 const Double_t det4_2345_1235 = pM[
GA21]*det3_345_235 - pM[
GA22]*det3_345_135
822 + pM[
GA23]*det3_345_125 - pM[
GA25]*det3_345_123;
823 const Double_t det4_2345_1245 = pM[
GA21]*det3_345_245 - pM[
GA22]*det3_345_145
824 + pM[
GA24]*det3_345_125 - pM[
GA25]*det3_345_124;
825 const Double_t det4_2345_1345 = pM[
GA21]*det3_345_345 - pM[
GA23]*det3_345_145
826 + pM[
GA24]*det3_345_135 - pM[
GA25]*det3_345_134;
827 const Double_t det4_2345_2345 = pM[
GA22]*det3_345_345 - pM[
GA23]*det3_345_245
828 + pM[
GA24]*det3_345_235 - pM[
GA25]*det3_345_234;
832 const Double_t det5_01234_01234 = pM[
GA00]*det4_1234_1234 - pM[
GA01]*det4_1234_0234
833 + pM[
GA02]*det4_1234_0134 - pM[
GA03]*det4_1234_0124 + pM[
GA04]*det4_1234_0123;
834 const Double_t det5_01234_01235 = pM[
GA00]*det4_1234_1235 - pM[
GA01]*det4_1234_0235
835 + pM[
GA02]*det4_1234_0135 - pM[
GA03]*det4_1234_0125 + pM[
GA05]*det4_1234_0123;
836 const Double_t det5_01234_01245 = pM[
GA00]*det4_1234_1245 - pM[
GA01]*det4_1234_0245
837 + pM[
GA02]*det4_1234_0145 - pM[
GA04]*det4_1234_0125 + pM[
GA05]*det4_1234_0124;
838 const Double_t det5_01234_01345 = pM[
GA00]*det4_1234_1345 - pM[
GA01]*det4_1234_0345
839 + pM[
GA03]*det4_1234_0145 - pM[
GA04]*det4_1234_0135 + pM[
GA05]*det4_1234_0134;
840 const Double_t det5_01234_02345 = pM[
GA00]*det4_1234_2345 - pM[
GA02]*det4_1234_0345
841 + pM[
GA03]*det4_1234_0245 - pM[
GA04]*det4_1234_0235 + pM[
GA05]*det4_1234_0234;
842 const Double_t det5_01234_12345 = pM[
GA01]*det4_1234_2345 - pM[
GA02]*det4_1234_1345
843 + pM[
GA03]*det4_1234_1245 - pM[
GA04]*det4_1234_1235 + pM[
GA05]*det4_1234_1234;
844 const Double_t det5_01235_01234 = pM[
GA00]*det4_1235_1234 - pM[
GA01]*det4_1235_0234
845 + pM[
GA02]*det4_1235_0134 - pM[
GA03]*det4_1235_0124 + pM[
GA04]*det4_1235_0123;
846 const Double_t det5_01235_01235 = pM[
GA00]*det4_1235_1235 - pM[
GA01]*det4_1235_0235
847 + pM[
GA02]*det4_1235_0135 - pM[
GA03]*det4_1235_0125 + pM[
GA05]*det4_1235_0123;
848 const Double_t det5_01235_01245 = pM[
GA00]*det4_1235_1245 - pM[
GA01]*det4_1235_0245
849 + pM[
GA02]*det4_1235_0145 - pM[
GA04]*det4_1235_0125 + pM[
GA05]*det4_1235_0124;
850 const Double_t det5_01235_01345 = pM[
GA00]*det4_1235_1345 - pM[
GA01]*det4_1235_0345
851 + pM[
GA03]*det4_1235_0145 - pM[
GA04]*det4_1235_0135 + pM[
GA05]*det4_1235_0134;
852 const Double_t det5_01235_02345 = pM[
GA00]*det4_1235_2345 - pM[
GA02]*det4_1235_0345
853 + pM[
GA03]*det4_1235_0245 - pM[
GA04]*det4_1235_0235 + pM[
GA05]*det4_1235_0234;
854 const Double_t det5_01235_12345 = pM[
GA01]*det4_1235_2345 - pM[
GA02]*det4_1235_1345
855 + pM[
GA03]*det4_1235_1245 - pM[
GA04]*det4_1235_1235 + pM[
GA05]*det4_1235_1234;
856 const Double_t det5_01245_01234 = pM[
GA00]*det4_1245_1234 - pM[
GA01]*det4_1245_0234
857 + pM[
GA02]*det4_1245_0134 - pM[
GA03]*det4_1245_0124 + pM[
GA04]*det4_1245_0123;
858 const Double_t det5_01245_01235 = pM[
GA00]*det4_1245_1235 - pM[
GA01]*det4_1245_0235
859 + pM[
GA02]*det4_1245_0135 - pM[
GA03]*det4_1245_0125 + pM[
GA05]*det4_1245_0123;
860 const Double_t det5_01245_01245 = pM[
GA00]*det4_1245_1245 - pM[
GA01]*det4_1245_0245
861 + pM[
GA02]*det4_1245_0145 - pM[
GA04]*det4_1245_0125 + pM[
GA05]*det4_1245_0124;
862 const Double_t det5_01245_01345 = pM[
GA00]*det4_1245_1345 - pM[
GA01]*det4_1245_0345
863 + pM[
GA03]*det4_1245_0145 - pM[
GA04]*det4_1245_0135 + pM[
GA05]*det4_1245_0134;
864 const Double_t det5_01245_02345 = pM[
GA00]*det4_1245_2345 - pM[
GA02]*det4_1245_0345
865 + pM[
GA03]*det4_1245_0245 - pM[
GA04]*det4_1245_0235 + pM[
GA05]*det4_1245_0234;
866 const Double_t det5_01245_12345 = pM[
GA01]*det4_1245_2345 - pM[
GA02]*det4_1245_1345
867 + pM[
GA03]*det4_1245_1245 - pM[
GA04]*det4_1245_1235 + pM[
GA05]*det4_1245_1234;
868 const Double_t det5_01345_01234 = pM[
GA00]*det4_1345_1234 - pM[
GA01]*det4_1345_0234
869 + pM[
GA02]*det4_1345_0134 - pM[
GA03]*det4_1345_0124 + pM[
GA04]*det4_1345_0123;
870 const Double_t det5_01345_01235 = pM[
GA00]*det4_1345_1235 - pM[
GA01]*det4_1345_0235
871 + pM[
GA02]*det4_1345_0135 - pM[
GA03]*det4_1345_0125 + pM[
GA05]*det4_1345_0123;
872 const Double_t det5_01345_01245 = pM[
GA00]*det4_1345_1245 - pM[
GA01]*det4_1345_0245
873 + pM[
GA02]*det4_1345_0145 - pM[
GA04]*det4_1345_0125 + pM[
GA05]*det4_1345_0124;
874 const Double_t det5_01345_01345 = pM[
GA00]*det4_1345_1345 - pM[
GA01]*det4_1345_0345
875 + pM[
GA03]*det4_1345_0145 - pM[
GA04]*det4_1345_0135 + pM[
GA05]*det4_1345_0134;
876 const Double_t det5_01345_02345 = pM[
GA00]*det4_1345_2345 - pM[
GA02]*det4_1345_0345
877 + pM[
GA03]*det4_1345_0245 - pM[
GA04]*det4_1345_0235 + pM[
GA05]*det4_1345_0234;
878 const Double_t det5_01345_12345 = pM[
GA01]*det4_1345_2345 - pM[
GA02]*det4_1345_1345
879 + pM[
GA03]*det4_1345_1245 - pM[
GA04]*det4_1345_1235 + pM[
GA05]*det4_1345_1234;
880 const Double_t det5_02345_01234 = pM[
GA00]*det4_2345_1234 - pM[
GA01]*det4_2345_0234
881 + pM[
GA02]*det4_2345_0134 - pM[
GA03]*det4_2345_0124 + pM[
GA04]*det4_2345_0123;
882 const Double_t det5_02345_01235 = pM[
GA00]*det4_2345_1235 - pM[
GA01]*det4_2345_0235
883 + pM[
GA02]*det4_2345_0135 - pM[
GA03]*det4_2345_0125 + pM[
GA05]*det4_2345_0123;
884 const Double_t det5_02345_01245 = pM[
GA00]*det4_2345_1245 - pM[
GA01]*det4_2345_0245
885 + pM[
GA02]*det4_2345_0145 - pM[
GA04]*det4_2345_0125 + pM[
GA05]*det4_2345_0124;
886 const Double_t det5_02345_01345 = pM[
GA00]*det4_2345_1345 - pM[
GA01]*det4_2345_0345
887 + pM[
GA03]*det4_2345_0145 - pM[
GA04]*det4_2345_0135 + pM[
GA05]*det4_2345_0134;
888 const Double_t det5_02345_02345 = pM[
GA00]*det4_2345_2345 - pM[
GA02]*det4_2345_0345
889 + pM[
GA03]*det4_2345_0245 - pM[
GA04]*det4_2345_0235 + pM[
GA05]*det4_2345_0234;
890 const Double_t det5_02345_12345 = pM[
GA01]*det4_2345_2345 - pM[
GA02]*det4_2345_1345
891 + pM[
GA03]*det4_2345_1245 - pM[
GA04]*det4_2345_1235 + pM[
GA05]*det4_2345_1234;
892 const Double_t det5_12345_01234 = pM[
GA10]*det4_2345_1234 - pM[
GA11]*det4_2345_0234
893 + pM[
GA12]*det4_2345_0134 - pM[
GA13]*det4_2345_0124 + pM[
GA14]*det4_2345_0123;
894 const Double_t det5_12345_01235 = pM[
GA10]*det4_2345_1235 - pM[
GA11]*det4_2345_0235
895 + pM[
GA12]*det4_2345_0135 - pM[
GA13]*det4_2345_0125 + pM[
GA15]*det4_2345_0123;
896 const Double_t det5_12345_01245 = pM[
GA10]*det4_2345_1245 - pM[
GA11]*det4_2345_0245
897 + pM[
GA12]*det4_2345_0145 - pM[
GA14]*det4_2345_0125 + pM[
GA15]*det4_2345_0124;
898 const Double_t det5_12345_01345 = pM[
GA10]*det4_2345_1345 - pM[
GA11]*det4_2345_0345
899 + pM[
GA13]*det4_2345_0145 - pM[
GA14]*det4_2345_0135 + pM[
GA15]*det4_2345_0134;
900 const Double_t det5_12345_02345 = pM[
GA10]*det4_2345_2345 - pM[
GA12]*det4_2345_0345
901 + pM[
GA13]*det4_2345_0245 - pM[
GA14]*det4_2345_0235 + pM[
GA15]*det4_2345_0234;
902 const Double_t det5_12345_12345 = pM[
GA11]*det4_2345_2345 - pM[
GA12]*det4_2345_1345
903 + pM[
GA13]*det4_2345_1245 - pM[
GA14]*det4_2345_1235 + pM[
GA15]*det4_2345_1234;
907 const Double_t det = pM[
GA00]*det5_12345_12345 - pM[
GA01]*det5_12345_02345 + pM[
GA02]*det5_12345_01345
908 - pM[
GA03]*det5_12345_01245 + pM[
GA04]*det5_12345_01235 - pM[
GA05]*det5_12345_01234;
913 Error(
"Inv6x6",
"matrix is singular");
917 const Double_t oneOverDet = 1.0/det;
918 const Double_t mn1OverDet = - oneOverDet;
920 pM[
GA00] = det5_12345_12345*oneOverDet;
921 pM[
GA01] = det5_02345_12345*mn1OverDet;
922 pM[
GA02] = det5_01345_12345*oneOverDet;
923 pM[
GA03] = det5_01245_12345*mn1OverDet;
924 pM[
GA04] = det5_01235_12345*oneOverDet;
925 pM[
GA05] = det5_01234_12345*mn1OverDet;
927 pM[
GA10] = det5_12345_02345*mn1OverDet;
928 pM[
GA11] = det5_02345_02345*oneOverDet;
929 pM[
GA12] = det5_01345_02345*mn1OverDet;
930 pM[
GA13] = det5_01245_02345*oneOverDet;
931 pM[
GA14] = det5_01235_02345*mn1OverDet;
932 pM[
GA15] = det5_01234_02345*oneOverDet;
934 pM[
GA20] = det5_12345_01345*oneOverDet;
935 pM[
GA21] = det5_02345_01345*mn1OverDet;
936 pM[
GA22] = det5_01345_01345*oneOverDet;
937 pM[
GA23] = det5_01245_01345*mn1OverDet;
938 pM[
GA24] = det5_01235_01345*oneOverDet;
939 pM[
GA25] = det5_01234_01345*mn1OverDet;
941 pM[
GA30] = det5_12345_01245*mn1OverDet;
942 pM[
GA31] = det5_02345_01245*oneOverDet;
943 pM[
GA32] = det5_01345_01245*mn1OverDet;
944 pM[
GA33] = det5_01245_01245*oneOverDet;
945 pM[
GA34] = det5_01235_01245*mn1OverDet;
946 pM[
GA35] = det5_01234_01245*oneOverDet;
948 pM[
GA40] = det5_12345_01235*oneOverDet;
949 pM[
GA41] = det5_02345_01235*mn1OverDet;
950 pM[
GA42] = det5_01345_01235*oneOverDet;
951 pM[
GA43] = det5_01245_01235*mn1OverDet;
952 pM[
GA44] = det5_01235_01235*oneOverDet;
953 pM[
GA45] = det5_01234_01235*mn1OverDet;
955 pM[
GA50] = det5_12345_01234*mn1OverDet;
956 pM[
GA51] = det5_02345_01234*oneOverDet;
957 pM[
GA52] = det5_01345_01234*mn1OverDet;
958 pM[
GA53] = det5_01245_01234*oneOverDet;
959 pM[
GA54] = det5_01235_01234*mn1OverDet;
960 pM[
GA55] = det5_01234_01234*oneOverDet;
965 #ifndef ROOT_TMatrixFfwd 970 template Bool_t TMatrixTCramerInv::Inv3x3<Float_t>(TMatrixF&,
Double_t*);
971 template Bool_t TMatrixTCramerInv::Inv4x4<Float_t>(TMatrixF&,
Double_t*);
972 template Bool_t TMatrixTCramerInv::Inv5x5<Float_t>(TMatrixF&,
Double_t*);
973 template Bool_t TMatrixTCramerInv::Inv6x6<Float_t>(TMatrixF&,
Double_t*);
975 #ifndef ROOT_TMatrixDfwd 980 template Bool_t TMatrixTCramerInv::Inv3x3<Double_t>(TMatrixD&,
Double_t*);
981 template Bool_t TMatrixTCramerInv::Inv4x4<Double_t>(TMatrixD&,
Double_t*);
982 template Bool_t TMatrixTCramerInv::Inv5x5<Double_t>(TMatrixD&,
Double_t*);
983 template Bool_t TMatrixTCramerInv::Inv6x6<Double_t>(TMatrixD&,
Double_t*);
Bool_t Inv5x5(TMatrixT< Element > &m, Double_t *determ)
virtual const Element * GetMatrixArray() const
Bool_t Inv3x3(TMatrixT< Element > &m, Double_t *determ)
void Error(const char *location, const char *msgfmt,...)
#define NamespaceImp(name)
Bool_t Inv2x2(TMatrixT< Element > &m, Double_t *determ)
Bool_t Inv6x6(TMatrixT< Element > &m, Double_t *determ)
Bool_t Inv4x4(TMatrixT< Element > &m, Double_t *determ)