diff --git a/include/eigenpy/alignment.hpp b/include/eigenpy/alignment.hpp index 4bca14d36954ab744cde25a23ba4cb55f3ea95da..d37af7006bfb3124d3b6c4bfb3816ccf56b022bf 100644 --- a/include/eigenpy/alignment.hpp +++ b/include/eigenpy/alignment.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023, INRIA + * Copyright 2023 INRIA */ #ifndef __eigenpy_alignment_hpp__ @@ -67,6 +67,23 @@ struct referent_storage< typename eigenpy::aligned_storage<referent_size<T &>::value>::type type; }; +#ifdef EIGENPY_WITH_TENSOR_SUPPORT +template <typename Scalar, int Rank, int Options, typename IndexType> +struct referent_storage<Eigen::Tensor<Scalar, Rank, Options, IndexType> &> { + typedef Eigen::Tensor<Scalar, Rank, Options, IndexType> T; + typedef + typename eigenpy::aligned_storage<referent_size<T &>::value>::type type; +}; + +template <typename Scalar, int Rank, int Options, typename IndexType> +struct referent_storage< + const Eigen::Tensor<Scalar, Rank, Options, IndexType> &> { + typedef Eigen::Tensor<Scalar, Rank, Options, IndexType> T; + typedef + typename eigenpy::aligned_storage<referent_size<T &>::value>::type type; +}; +#endif + template <typename Scalar, int Options> struct referent_storage<Eigen::Quaternion<Scalar, Options> &> { typedef Eigen::Quaternion<Scalar, Options> T;