Skip to content

Commit ac747dc

Browse files
committed
Vectorized norm
1 parent 192795d commit ac747dc

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

cpp/lib/PrepareDerivatives.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ void PrepareDerivatives::operator()(View::C_XY const &in, DxDy<View::C_XY> out)
1515
void PrepareDerivativesVector::operator()(View::C_XY const &in, DxDy<View::C_XY> out) const {
1616
eve::logical<VIdx> const even_mask{[](int idx, int) { return idx % 2 == 0; }};
1717
VReal const kx_v_init{[](int idx, int) { return Real(idx / 2); }};
18+
VReal const norm_v{XYNorm};
19+
1820
for (Dim ky = 0; ky < grid.KY; ky += KY_TILE) {
1921
// broadcast ky values
2022
using TileReal = std::array<VReal, KY_TILE>;
@@ -40,7 +42,7 @@ void PrepareDerivativesVector::operator()(View::C_XY const &in, DxDy<View::C_XY>
4042
// selectively negate
4143
auto mul_with_i = eve::minus[even_mask](swapped);
4244
// normalize
43-
auto in_norm = mul_with_i * XYNorm;
45+
auto in_norm = mul_with_i * norm_v;
4446

4547
eve::store(kx_v * in_norm, out_dx(i));
4648
eve::store(ky_v[i] * in_norm, out_dy(i));

0 commit comments

Comments
 (0)