2#include <muda/atomic.h>
3#include <muda/ext/eigen/eigen_core_cxx20.h>
7template <
typename T,
int M,
int N>
8MUDA_GENERIC Eigen::Matrix<T, M, N> atomic_add(Eigen::Matrix<T, M, N>& dst,
9 const Eigen::Matrix<T, M, N>& src)
11 Eigen::Matrix<T, M, N> ret;
14 for(
int j = 0; j < N; ++j)
16 for(
int i = 0; i < M; ++i)
18 ret(i, j) = muda::atomic_add(&dst(i, j), src(i, j));
22template <
typename T,
int M,
int N>
23MUDA_GENERIC Eigen::Matrix<T, M, N> atomic_add(Eigen::Map<Eigen::Matrix<T, M, N>>& dst,
24 const Eigen::Matrix<T, M, N>& src)
26 Eigen::Matrix<T, M, N> ret;
29 for(
int j = 0; j < N; ++j)
31 for(
int i = 0; i < M; ++i)
33 ret(i, j) = muda::atomic_add(&dst(i, j), src(i, j));