40 #ifdef DEBUG_LinearGridInterpolator3D
44 cout <<
"LinearGridInterpolator3D called with a,b,c " << a <<
"," << b <<
"," << c << endl;
45 cout <<
" i,j,k = " << i <<
"," << j <<
"," << k <<
" s,t,u = " << s <<
"," << t <<
"," << u << endl;
46 cout <<
"Node positions for " << i <<
"," << j <<
"," << k <<
" : " <<
grida.
node(i) <<
"," <<
gridb.
node(j) <<
","
48 cout <<
"Node positions for " << i + 1 <<
"," << j + 1 <<
"," << k + 1 <<
" : " <<
grida.
node(i + 1) <<
","
50 cout <<
"Grid(" << i <<
"," << j <<
"," << k <<
") = " <<
grid(i, j, k) <<
" ";
51 cout <<
"Grid(" << i <<
"," << j <<
"," << k + 1 <<
") = " <<
grid(i, j, k + 1) << endl;
52 cout <<
"Grid(" << i <<
"," << j + 1 <<
"," << k <<
") = " <<
grid(i, j + 1, k) <<
" ";
53 cout <<
"Grid(" << i <<
"," << j + 1 <<
"," << k + 1 <<
") = " <<
grid(i, j + 1, k + 1) << endl;
54 cout <<
"Grid(" << i + 1 <<
"," << j <<
"," << k <<
") = " <<
grid(i + 1, j, k) <<
" ";
55 cout <<
"Grid(" << i + 1 <<
"," << j <<
"," << k + 1 <<
") = " <<
grid(i + 1, j, k + 1) << endl;
56 cout <<
"Grid(" << i + 1 <<
"," << j + 1 <<
"," << k <<
") = " <<
grid(i + 1, j + 1, k) <<
" ";
57 cout <<
"Grid(" << i + 1 <<
"," << j + 1 <<
"," << k + 1 <<
") = " <<
grid(i + 1, j + 1, k + 1) << endl;
75 #if defined(CMS_TEST_RAWSSE)
78 _mm_mul_ps(_mm_set1_ps((1.
f - s) * (1.
f - t) * u), _mm_sub_ps(
grid(ind + s3).
v.vec,
grid(ind).
v.vec));
79 resultSIMD = _mm_add_ps(
81 _mm_mul_ps(_mm_set1_ps((1.
f - s) * t * u), _mm_sub_ps(
grid(ind + s2 + s3).
v.vec,
grid(ind + s2).
v.vec)));
82 resultSIMD = _mm_add_ps(
84 _mm_mul_ps(_mm_set1_ps(s * (1.
f - t) * u), _mm_sub_ps(
grid(ind + s1 + s3).
v.vec,
grid(ind + s1).
v.vec)));
85 resultSIMD = _mm_add_ps(
87 _mm_mul_ps(_mm_set1_ps(s * t * u), _mm_sub_ps(
grid(ind + s1 + s2 + s3).
v.vec,
grid(ind + s1 + s2).
v.vec)));
89 _mm_add_ps(resultSIMD, _mm_mul_ps(_mm_set1_ps((1.
f - s) * t), _mm_sub_ps(
grid(ind + s2).
v.vec,
grid(ind).
v.vec)));
90 resultSIMD = _mm_add_ps(resultSIMD,
91 _mm_mul_ps(_mm_set1_ps(s * t), _mm_sub_ps(
grid(ind + s1 + s2).
v.vec,
grid(ind + s1).
v.vec)));
92 resultSIMD = _mm_add_ps(resultSIMD, _mm_mul_ps(_mm_set1_ps(s), _mm_sub_ps(
grid(ind + s1).
v.vec,
grid(ind).
v.vec)));
93 resultSIMD = _mm_add_ps(resultSIMD,
grid(ind).
v.vec);
96 result.
v = resultSIMD;
101 result = result + ((1.f -
s) * t * u) * (
grid(ind + s2 + s3) -
grid(ind + s2));
102 result = result + (s * (1.f -
t) * u) * (
grid(ind + s1 + s3) -
grid(ind + s1));
103 result = result + (s * t * u) * (
grid(ind + s1 + s2 + s3) -
grid(ind + s1 + s2));
104 result = result + ((1.f -
s) * t) * (
grid(ind + s2) -
grid(ind));
105 result = result + (s *
t) * (
grid(ind + s1 + s2) -
grid(ind + s1));
106 result = result + (
s) * (
grid(ind + s1) -
grid(ind));
107 result = result +
grid(ind);
const edm::EventSetup & c
void throwGridInterpolator3DException(void)
ReturnType interpolate(Scalar a, Scalar b, Scalar c)
int index(int i, int j, int k) const
void normalize(int &ind, Scalar &f) const
int index(Scalar a, Scalar &f) const