@@ -31,6 +31,7 @@ See the \ref Matrix page for the documentation of the linear algebra package
3131#include " TMatrixDEigen.h"
3232#include " TMath.h"
3333
34+
3435// //////////////////////////////////////////////////////////////////////////////
3536// / Constructor for (nrows x ncols) matrix
3637
@@ -3076,68 +3077,22 @@ TMatrixT<Element> &TMatrixTAutoloadOps::ElementDiv(TMatrixT<Element> &target, co
30763077// / Elementary routine to calculate matrix multiplication A*B
30773078
30783079template <class Element >
3079- void TMatrixTAutoloadOps::AMultB (const Element *const ap, Int_t na, Int_t ncolsa, const Element *const bp, Int_t /* nb */ ,
3080+ void TMatrixTAutoloadOps::AMultB (const Element *const ap, Int_t na, Int_t ncolsa, const Element *const bp, Int_t nb ,
30803081 Int_t ncolsb, Element *cp)
30813082{
3082- const Int_t M = na / ncolsa;
3083- const Int_t N = ncolsa;
3084- const Int_t P = ncolsb;
3085-
3086- if (M <= 12 && N <= 12 && P <= 12 ) {
3087- for (Int_t i = 0 ; i < M; ++i) {
3088- for (Int_t j = 0 ; j < P; ++j) {
3089- Element sum = Element (0 );
3090- for (Int_t k = 0 ; k < N; ++k) {
3091- sum += ap[i * N + k] * bp[k * P + j];
3092- }
3093- cp[i * P + j] = sum;
3094- }
3095- }
3096- return ;
3097- }
3098- const Int_t BLOCK = (M >= 192 && N >= 192 && P >= 192 ) ? 48 : 32 ;
3099- #ifdef _OPENMP
3100- #pragma omp parallel for collapse(2) if (M * P > 10000)
3101- #endif
3102- for (Int_t i0 = 0 ; i0 < M; i0 += BLOCK) {
3103- for (Int_t j0 = 0 ; j0 < P; j0 += BLOCK) {
3104- const Int_t i1 = (i0 + BLOCK < M) ? i0 + BLOCK : M;
3105- const Int_t j1 = (j0 + BLOCK < P) ? j0 + BLOCK : P;
3106- for (Int_t i = i0; i < i1; ++i) {
3107- Int_t j = j0;
3108- for (; j <= j1 - 4 ; j += 4 ) {
3109- cp[i * P + j + 0 ] = Element (0 );
3110- cp[i * P + j + 1 ] = Element (0 );
3111- cp[i * P + j + 2 ] = Element (0 );
3112- cp[i * P + j + 3 ] = Element (0 );
3113- }
3114- for (; j < j1; ++j)
3115- cp[i * P + j] = Element (0 );
3116- }
3117-
3118- // ────────────────────── Accumulate over k blocks ──────────────────────
3119- for (Int_t k0 = 0 ; k0 < N; k0 += BLOCK) {
3120- const Int_t k1 = (k0 + BLOCK < N) ? k0 + BLOCK : N;
3121-
3122- for (Int_t i = i0; i < i1; ++i) {
3123- for (Int_t k = k0; k < k1; ++k) {
3124- const Element aik = ap[i * N + k];
3125-
3126- Int_t j = j0;
3127- // Main 4-wide accumulation
3128- for (; j <= j1 - 4 ; j += 4 ) {
3129- cp[i * P + j + 0 ] += aik * bp[k * P + j + 0 ];
3130- cp[i * P + j + 1 ] += aik * bp[k * P + j + 1 ];
3131- cp[i * P + j + 2 ] += aik * bp[k * P + j + 2 ];
3132- cp[i * P + j + 3 ] += aik * bp[k * P + j + 3 ];
3133- }
3134- // Remainder
3135- for (; j < j1; ++j)
3136- cp[i * P + j] += aik * bp[k * P + j];
3137- }
3138- }
3083+ const Element *arp0 = ap; // Pointer to A[i,0];
3084+ while (arp0 < ap + na) {
3085+ for (const Element *bcp = bp; bcp < bp + ncolsb;) { // Pointer to the j-th column of B, Start bcp = B[0,0]
3086+ const Element *arp = arp0; // Pointer to the i-th row of A, reset to A[i,0]
3087+ Element cij = 0 ;
3088+ while (bcp < bp + nb) { // Scan the i-th row of A and
3089+ cij += *arp++ * *bcp; // the j-th col of B
3090+ bcp += ncolsb;
31393091 }
3092+ *cp++ = cij;
3093+ bcp -= nb - 1 ; // Set bcp to the (j+1)-th col
31403094 }
3095+ arp0 += ncolsa; // Set ap to the (i+1)-th row
31413096 }
31423097}
31433098
@@ -3259,43 +3214,43 @@ template class TMatrixT<Float_t>;
32593214#include " TMatrixFfwd.h"
32603215#include " TMatrixFSymfwd.h"
32613216
3262- template TMatrixF TMatrixTAutoloadOps::operator + <Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3263- template TMatrixF TMatrixTAutoloadOps::operator + <Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3264- template TMatrixF TMatrixTAutoloadOps::operator + <Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3265- template TMatrixF TMatrixTAutoloadOps::operator + <Float_t>(const TMatrixF &source, Float_t val);
3266- template TMatrixF TMatrixTAutoloadOps::operator + <Float_t>(Float_t val, const TMatrixF &source);
3267- template TMatrixF TMatrixTAutoloadOps::operator - <Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3268- template TMatrixF TMatrixTAutoloadOps::operator - <Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3269- template TMatrixF TMatrixTAutoloadOps::operator - <Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3270- template TMatrixF TMatrixTAutoloadOps::operator - <Float_t>(const TMatrixF &source, Float_t val);
3271- template TMatrixF TMatrixTAutoloadOps::operator - <Float_t>(Float_t val, const TMatrixF &source);
3272- template TMatrixF TMatrixTAutoloadOps::operator * <Float_t>(Float_t val, const TMatrixF &source);
3273- template TMatrixF TMatrixTAutoloadOps::operator * <Float_t>(const TMatrixF &source, Float_t val);
3274- template TMatrixF TMatrixTAutoloadOps::operator * <Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3275- template TMatrixF TMatrixTAutoloadOps::operator * <Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3276- template TMatrixF TMatrixTAutoloadOps::operator * <Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3277- template TMatrixF TMatrixTAutoloadOps::operator * <Float_t>(const TMatrixFSym &source1, const TMatrixFSym &source2);
3278- template TMatrixF TMatrixTAutoloadOps::operator && <Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3279- template TMatrixF TMatrixTAutoloadOps::operator && <Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3280- template TMatrixF TMatrixTAutoloadOps::operator && <Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3281- template TMatrixF TMatrixTAutoloadOps::operator || <Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3282- template TMatrixF TMatrixTAutoloadOps::operator || <Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3283- template TMatrixF TMatrixTAutoloadOps::operator || <Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3284- template TMatrixF TMatrixTAutoloadOps::operator ><Float_t>(const TMatrixF & source1, const TMatrixF & source2);
3285- template TMatrixF TMatrixTAutoloadOps::operator ><Float_t>(const TMatrixF & source1, const TMatrixFSym & source2);
3286- template TMatrixF TMatrixTAutoloadOps::operator ><Float_t>(const TMatrixFSym & source1, const TMatrixF & source2);
3287- template TMatrixF TMatrixTAutoloadOps::operator >= <Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3288- template TMatrixF TMatrixTAutoloadOps::operator >= <Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3289- template TMatrixF TMatrixTAutoloadOps::operator >= <Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3290- template TMatrixF TMatrixTAutoloadOps::operator <= <Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3291- template TMatrixF TMatrixTAutoloadOps::operator <= <Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3292- template TMatrixF TMatrixTAutoloadOps::operator <= <Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3217+ template TMatrixF TMatrixTAutoloadOps::operator +<Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3218+ template TMatrixF TMatrixTAutoloadOps::operator +<Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3219+ template TMatrixF TMatrixTAutoloadOps::operator +<Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3220+ template TMatrixF TMatrixTAutoloadOps::operator +<Float_t>(const TMatrixF &source, Float_t val);
3221+ template TMatrixF TMatrixTAutoloadOps::operator +<Float_t>(Float_t val, const TMatrixF &source);
3222+ template TMatrixF TMatrixTAutoloadOps::operator -<Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3223+ template TMatrixF TMatrixTAutoloadOps::operator -<Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3224+ template TMatrixF TMatrixTAutoloadOps::operator -<Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3225+ template TMatrixF TMatrixTAutoloadOps::operator -<Float_t>(const TMatrixF &source, Float_t val);
3226+ template TMatrixF TMatrixTAutoloadOps::operator -<Float_t>(Float_t val, const TMatrixF &source);
3227+ template TMatrixF TMatrixTAutoloadOps::operator *<Float_t>(Float_t val, const TMatrixF &source);
3228+ template TMatrixF TMatrixTAutoloadOps::operator *<Float_t>(const TMatrixF &source, Float_t val);
3229+ template TMatrixF TMatrixTAutoloadOps::operator *<Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3230+ template TMatrixF TMatrixTAutoloadOps::operator *<Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3231+ template TMatrixF TMatrixTAutoloadOps::operator *<Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3232+ template TMatrixF TMatrixTAutoloadOps::operator *<Float_t>(const TMatrixFSym &source1, const TMatrixFSym &source2);
3233+ template TMatrixF TMatrixTAutoloadOps::operator &&<Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3234+ template TMatrixF TMatrixTAutoloadOps::operator &&<Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3235+ template TMatrixF TMatrixTAutoloadOps::operator &&<Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3236+ template TMatrixF TMatrixTAutoloadOps::operator ||<Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3237+ template TMatrixF TMatrixTAutoloadOps::operator ||<Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3238+ template TMatrixF TMatrixTAutoloadOps::operator ||<Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3239+ template TMatrixF TMatrixTAutoloadOps::operator ><Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3240+ template TMatrixF TMatrixTAutoloadOps::operator ><Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3241+ template TMatrixF TMatrixTAutoloadOps::operator ><Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3242+ template TMatrixF TMatrixTAutoloadOps::operator >=<Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3243+ template TMatrixF TMatrixTAutoloadOps::operator >=<Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3244+ template TMatrixF TMatrixTAutoloadOps::operator >=<Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3245+ template TMatrixF TMatrixTAutoloadOps::operator <=<Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3246+ template TMatrixF TMatrixTAutoloadOps::operator <=<Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3247+ template TMatrixF TMatrixTAutoloadOps::operator <=<Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
32933248template TMatrixF TMatrixTAutoloadOps::operator < <Float_t>(const TMatrixF &source1, const TMatrixF &source2);
32943249template TMatrixF TMatrixTAutoloadOps::operator < <Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
32953250template TMatrixF TMatrixTAutoloadOps::operator < <Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3296- template TMatrixF TMatrixTAutoloadOps::operator != <Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3297- template TMatrixF TMatrixTAutoloadOps::operator != <Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3298- template TMatrixF TMatrixTAutoloadOps::operator != <Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
3251+ template TMatrixF TMatrixTAutoloadOps::operator !=<Float_t>(const TMatrixF &source1, const TMatrixF &source2);
3252+ template TMatrixF TMatrixTAutoloadOps::operator !=<Float_t>(const TMatrixF &source1, const TMatrixFSym &source2);
3253+ template TMatrixF TMatrixTAutoloadOps::operator !=<Float_t>(const TMatrixFSym &source1, const TMatrixF &source2);
32993254
33003255template TMatrixF &TMatrixTAutoloadOps::Add<Float_t>(TMatrixF &target, Float_t scalar, const TMatrixF &source);
33013256template TMatrixF &TMatrixTAutoloadOps::Add<Float_t>(TMatrixF &target, Float_t scalar, const TMatrixFSym &source);
@@ -3316,43 +3271,43 @@ template void TMatrixTAutoloadOps::AMultBt<Float_t>(const Float_t *const ap, Int
33163271
33173272template class TMatrixT <Double_t>;
33183273
3319- template TMatrixD TMatrixTAutoloadOps::operator + <Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3320- template TMatrixD TMatrixTAutoloadOps::operator + <Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3321- template TMatrixD TMatrixTAutoloadOps::operator + <Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3322- template TMatrixD TMatrixTAutoloadOps::operator + <Double_t>(const TMatrixD &source, Double_t val);
3323- template TMatrixD TMatrixTAutoloadOps::operator + <Double_t>(Double_t val, const TMatrixD &source);
3324- template TMatrixD TMatrixTAutoloadOps::operator - <Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3325- template TMatrixD TMatrixTAutoloadOps::operator - <Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3326- template TMatrixD TMatrixTAutoloadOps::operator - <Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3327- template TMatrixD TMatrixTAutoloadOps::operator - <Double_t>(const TMatrixD &source, Double_t val);
3328- template TMatrixD TMatrixTAutoloadOps::operator - <Double_t>(Double_t val, const TMatrixD &source);
3329- template TMatrixD TMatrixTAutoloadOps::operator * <Double_t>(Double_t val, const TMatrixD &source);
3330- template TMatrixD TMatrixTAutoloadOps::operator * <Double_t>(const TMatrixD &source, Double_t val);
3331- template TMatrixD TMatrixTAutoloadOps::operator * <Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3332- template TMatrixD TMatrixTAutoloadOps::operator * <Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3333- template TMatrixD TMatrixTAutoloadOps::operator * <Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3334- template TMatrixD TMatrixTAutoloadOps::operator * <Double_t>(const TMatrixDSym &source1, const TMatrixDSym &source2);
3335- template TMatrixD TMatrixTAutoloadOps::operator && <Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3336- template TMatrixD TMatrixTAutoloadOps::operator && <Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3337- template TMatrixD TMatrixTAutoloadOps::operator && <Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3338- template TMatrixD TMatrixTAutoloadOps::operator || <Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3339- template TMatrixD TMatrixTAutoloadOps::operator || <Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3340- template TMatrixD TMatrixTAutoloadOps::operator || <Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3341- template TMatrixD TMatrixTAutoloadOps::operator ><Double_t>(const TMatrixD & source1, const TMatrixD & source2);
3342- template TMatrixD TMatrixTAutoloadOps::operator ><Double_t>(const TMatrixD & source1, const TMatrixDSym & source2);
3343- template TMatrixD TMatrixTAutoloadOps::operator ><Double_t>(const TMatrixDSym & source1, const TMatrixD & source2);
3344- template TMatrixD TMatrixTAutoloadOps::operator >= <Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3345- template TMatrixD TMatrixTAutoloadOps::operator >= <Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3346- template TMatrixD TMatrixTAutoloadOps::operator >= <Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3347- template TMatrixD TMatrixTAutoloadOps::operator <= <Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3348- template TMatrixD TMatrixTAutoloadOps::operator <= <Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3349- template TMatrixD TMatrixTAutoloadOps::operator <= <Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3274+ template TMatrixD TMatrixTAutoloadOps::operator +<Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3275+ template TMatrixD TMatrixTAutoloadOps::operator +<Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3276+ template TMatrixD TMatrixTAutoloadOps::operator +<Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3277+ template TMatrixD TMatrixTAutoloadOps::operator +<Double_t>(const TMatrixD &source, Double_t val);
3278+ template TMatrixD TMatrixTAutoloadOps::operator +<Double_t>(Double_t val, const TMatrixD &source);
3279+ template TMatrixD TMatrixTAutoloadOps::operator -<Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3280+ template TMatrixD TMatrixTAutoloadOps::operator -<Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3281+ template TMatrixD TMatrixTAutoloadOps::operator -<Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3282+ template TMatrixD TMatrixTAutoloadOps::operator -<Double_t>(const TMatrixD &source, Double_t val);
3283+ template TMatrixD TMatrixTAutoloadOps::operator -<Double_t>(Double_t val, const TMatrixD &source);
3284+ template TMatrixD TMatrixTAutoloadOps::operator *<Double_t>(Double_t val, const TMatrixD &source);
3285+ template TMatrixD TMatrixTAutoloadOps::operator *<Double_t>(const TMatrixD &source, Double_t val);
3286+ template TMatrixD TMatrixTAutoloadOps::operator *<Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3287+ template TMatrixD TMatrixTAutoloadOps::operator *<Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3288+ template TMatrixD TMatrixTAutoloadOps::operator *<Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3289+ template TMatrixD TMatrixTAutoloadOps::operator *<Double_t>(const TMatrixDSym &source1, const TMatrixDSym &source2);
3290+ template TMatrixD TMatrixTAutoloadOps::operator &&<Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3291+ template TMatrixD TMatrixTAutoloadOps::operator &&<Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3292+ template TMatrixD TMatrixTAutoloadOps::operator &&<Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3293+ template TMatrixD TMatrixTAutoloadOps::operator ||<Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3294+ template TMatrixD TMatrixTAutoloadOps::operator ||<Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3295+ template TMatrixD TMatrixTAutoloadOps::operator ||<Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3296+ template TMatrixD TMatrixTAutoloadOps::operator ><Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3297+ template TMatrixD TMatrixTAutoloadOps::operator ><Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3298+ template TMatrixD TMatrixTAutoloadOps::operator ><Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3299+ template TMatrixD TMatrixTAutoloadOps::operator >=<Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3300+ template TMatrixD TMatrixTAutoloadOps::operator >=<Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3301+ template TMatrixD TMatrixTAutoloadOps::operator >=<Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3302+ template TMatrixD TMatrixTAutoloadOps::operator <=<Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3303+ template TMatrixD TMatrixTAutoloadOps::operator <=<Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3304+ template TMatrixD TMatrixTAutoloadOps::operator <=<Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
33503305template TMatrixD TMatrixTAutoloadOps::operator < <Double_t>(const TMatrixD &source1, const TMatrixD &source2);
33513306template TMatrixD TMatrixTAutoloadOps::operator < <Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
33523307template TMatrixD TMatrixTAutoloadOps::operator < <Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3353- template TMatrixD TMatrixTAutoloadOps::operator != <Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3354- template TMatrixD TMatrixTAutoloadOps::operator != <Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3355- template TMatrixD TMatrixTAutoloadOps::operator != <Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
3308+ template TMatrixD TMatrixTAutoloadOps::operator !=<Double_t>(const TMatrixD &source1, const TMatrixD &source2);
3309+ template TMatrixD TMatrixTAutoloadOps::operator !=<Double_t>(const TMatrixD &source1, const TMatrixDSym &source2);
3310+ template TMatrixD TMatrixTAutoloadOps::operator !=<Double_t>(const TMatrixDSym &source1, const TMatrixD &source2);
33563311
33573312template TMatrixD &TMatrixTAutoloadOps::Add<Double_t>(TMatrixD &target, Double_t scalar, const TMatrixD &source);
33583313template TMatrixD &TMatrixTAutoloadOps::Add<Double_t>(TMatrixD &target, Double_t scalar, const TMatrixDSym &source);
0 commit comments