Warning, /RecoTracker/MkFitCore/standalone/CFMatrix33Vector3.ah is written in an unsupported language. File is not indexed.
0001 #ifdef MPLEX_INTRINSICS
0002
0003 for (int n = 0; n < N; n += MPLEX_INTRINSICS_WIDTH_BYTES / sizeof(T))
0004 {
0005 IntrVec_t a_0 = LD(a, 0);
0006 IntrVec_t b_0 = LD(b, 0);
0007 IntrVec_t c_0 = MUL(a_0, b_0);
0008
0009 IntrVec_t a_1 = LD(a, 1);
0010 IntrVec_t b_1 = LD(b, 1);
0011 c_0 = FMA(a_1, b_1, c_0);
0012
0013 IntrVec_t a_2 = LD(a, 2);
0014 IntrVec_t b_2 = LD(b, 2);
0015 c_0 = FMA(a_2, b_2, c_0);
0016
0017 IntrVec_t a_3 = LD(a, 3);
0018 IntrVec_t c_1 = MUL(a_3, b_0);
0019
0020 IntrVec_t a_4 = LD(a, 4);
0021 c_1 = FMA(a_4, b_1, c_1);
0022 ST(c, 0, c_0);
0023
0024 IntrVec_t a_5 = LD(a, 5);
0025 c_1 = FMA(a_5, b_2, c_1);
0026
0027 IntrVec_t a_6 = LD(a, 6);
0028 IntrVec_t c_2 = MUL(a_6, b_0);
0029
0030 IntrVec_t a_7 = LD(a, 7);
0031 c_2 = FMA(a_7, b_1, c_2);
0032 ST(c, 1, c_1);
0033
0034 IntrVec_t a_8 = LD(a, 8);
0035 c_2 = FMA(a_8, b_2, c_2);
0036 ST(c, 2, c_2);
0037 }
0038
0039 #else
0040
0041 #pragma omp simd
0042 for (int n = 0; n < N; ++n)
0043 {
0044 c[ 0*N+n] = a[ 0*N+n]*b[ 0*N+n] + a[ 1*N+n]*b[ 1*N+n] + a[ 2*N+n]*b[ 2*N+n];
0045 c[ 1*N+n] = a[ 3*N+n]*b[ 0*N+n] + a[ 4*N+n]*b[ 1*N+n] + a[ 5*N+n]*b[ 2*N+n];
0046 c[ 2*N+n] = a[ 6*N+n]*b[ 0*N+n] + a[ 7*N+n]*b[ 1*N+n] + a[ 8*N+n]*b[ 2*N+n];
0047 }
0048 #endif