J'ai le code numpy suivant:Eigen tenseur syntaxe de diffusion
# q.shape == (fxs, ks)
# E.shape == (fxs, fxs)
C = q[:, np.newaxis, :] * E[:, :, np.newaxis] * q[np.newaxis, :, :]
# C.shape == (fxs, fxs, ks)
que je Réimplémenter dans Eigen.
Voici ce que je suis venu avec:
Eigen::Tensor<T, 3> C =
q.reshape(Eigen::array<int, 3> {fxs, 1, ks}).broadcast(Eigen::array<int, 3> {1, fxs, 1})
* E.reshape(Eigen::array<int, 3> {fxs, fxs, 1 }).broadcast(Eigen::array<int, 3> {1, 1, ks})
* q.reshape(Eigen::array<int, 3> {1, fxs, ks}).broadcast(Eigen::array<int, 3> {fxs, 1, 1});
mais cela semble assez bavard. Est-ce la bonne traduction?