Marked a few functions as EIGEN_DEVICE_FUNC to enable the use of tensors in cuda kernels.

This commit is contained in:
Benoit Steiner
2015-02-10 14:29:47 -08:00
parent fefec723aa
commit f669f5656a
4 changed files with 29 additions and 29 deletions

View File

@@ -350,7 +350,7 @@ class Tensor : public TensorBase<Tensor<Scalar_, NumIndices_, Options_> >
}
#endif
void resize(const array<Index, NumIndices>& dimensions)
EIGEN_DEVICE_FUNC void resize(const array<Index, NumIndices>& dimensions)
{
std::size_t i;
Index size = Index(1);
@@ -367,7 +367,7 @@ class Tensor : public TensorBase<Tensor<Scalar_, NumIndices_, Options_> >
#endif
}
void resize(const DSizes<Index, NumIndices>& dimensions) {
EIGEN_DEVICE_FUNC void resize(const DSizes<Index, NumIndices>& dimensions) {
array<Index, NumIndices> dims;
for (std::size_t i = 0; i < NumIndices; ++i) {
dims[i] = dimensions[i];

View File

@@ -275,7 +275,7 @@ struct DSizes : array<DenseIndex, NumDims> {
}
#endif
DSizes& operator = (const array<DenseIndex, NumDims>& other) {
EIGEN_DEVICE_FUNC DSizes& operator = (const array<DenseIndex, NumDims>& other) {
*static_cast<Base*>(this) = other;
return *this;
}

View File

@@ -112,9 +112,9 @@ class TensorStorage<T, NumIndices_, Dynamic, Options_, typename internal::gen_nu
void swap(Self_& other)
{ std::swap(m_data,other.m_data); std::swap(m_dimensions,other.m_dimensions); }
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DSizes<DenseIndex, NumIndices_>& dimensions() const {return m_dimensions;}
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DSizes<DenseIndex, NumIndices_>& dimensions() const {return m_dimensions;}
void resize(DenseIndex size, const array<DenseIndex, NumIndices_>& nbDimensions)
EIGEN_DEVICE_FUNC void resize(DenseIndex size, const array<DenseIndex, NumIndices_>& nbDimensions)
{
const DenseIndex currentSz = internal::array_prod(m_dimensions);
if(size != currentSz)