Skip to content

Commit 192795d

Browse files
committed
Manually extract common subexpression
1 parent b9aa679 commit 192795d

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

cpp/lib/PrepareDerivatives.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ namespace ahr {
66

77
void PrepareDerivatives::operator()(View::C_XY const &in, DxDy<View::C_XY> out) const {
88
grid.for_each_kxky([&](Dim kx, Dim ky) {
9-
out.DX(kx, ky) = kx_(kx) * 1i * in(kx, ky) * XYNorm;
10-
out.DY(kx, ky) = ky_(ky) * 1i * in(kx, ky) * XYNorm;
9+
Complex in_norm = 1i * in(kx, ky) * XYNorm;
10+
out.DX(kx, ky) = kx_(kx) * in_norm;
11+
out.DY(kx, ky) = ky_(ky) * in_norm;
1112
});
1213
}
1314

@@ -49,8 +50,9 @@ void PrepareDerivativesVector::operator()(View::C_XY const &in, DxDy<View::C_XY>
4950
// tail
5051
for (; kx < grid.KX; ++kx) {
5152
for (int i = 0; i < KY_TILE; ++i) {
52-
out.DX(kx, ky + i) = kx_(kx) * 1i * in(kx, ky + i) * XYNorm;
53-
out.DY(kx, ky + i) = ky_(ky + i) * 1i * in(kx, ky + i) * XYNorm;
53+
Complex in_norm = 1i * in(kx, ky + i) * XYNorm;
54+
out.DX(kx, ky + i) = kx_(kx) * in_norm;
55+
out.DY(kx, ky + i) = ky_(ky + i) * in_norm;
5456
}
5557
}
5658
}

0 commit comments

Comments
 (0)