action.hpp 1.07 KiB
#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