#ifndef ACTION_HPP_ #define ACTION_HPP_ #include "common.hpp" #include "array.hpp" template <typename Scalar, typename Shape> inline Scalar S_2(array::Array<Scalar, Shape> Q) { size_t nx = Q.dim(0); size_t ny = Q.dim(1); for (size_t i = 0; i < nx; ++i) { for (size_t j = 0; j < ny; ++j) { auto Q1 = Q.part(i,j).matrix(); /* Sum over neighbors */ for (int di = -1; di <= 1; ++di) { for (int dj = -1; dj <= 1; ++dj) { if (i == 0 && di < 0) continue; if (i == nx-1 && di > 0) continue; if (j == 0 && dj < 0) continue; if (j == ny-1 && dj > 0) continue; if (di == 0 && dj == 0) continue; size_t i2 = i + di; size_t j2 = j + dj; auto Q2 = Q.part(i2,j2).matrix(); } } } } return Scalar(0); } #endif