mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-14 12:46:00 +08:00
Properly detect the type of the result of a contraction.
This commit is contained in:
parent
59bacfe520
commit
2b17f34574
@ -25,8 +25,8 @@ template<typename Dimensions, typename LhsXprType, typename RhsXprType>
|
|||||||
struct traits<TensorContractionOp<Dimensions, LhsXprType, RhsXprType> >
|
struct traits<TensorContractionOp<Dimensions, LhsXprType, RhsXprType> >
|
||||||
{
|
{
|
||||||
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
||||||
typedef typename internal::promote_storage_type<typename LhsXprType::Scalar,
|
typedef typename gebp_traits<typename LhsXprType::Scalar, typename RhsXprType::Scalar>::ResScalar Scalar;
|
||||||
typename RhsXprType::Scalar>::ret Scalar;
|
|
||||||
typedef typename promote_storage_type<typename traits<LhsXprType>::StorageKind,
|
typedef typename promote_storage_type<typename traits<LhsXprType>::StorageKind,
|
||||||
typename traits<RhsXprType>::StorageKind>::ret StorageKind;
|
typename traits<RhsXprType>::StorageKind>::ret StorageKind;
|
||||||
typedef typename promote_index_type<typename traits<LhsXprType>::Index,
|
typedef typename promote_index_type<typename traits<LhsXprType>::Index,
|
||||||
@ -75,8 +75,8 @@ class TensorContractionOp : public TensorBase<TensorContractionOp<Indices, LhsXp
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorContractionOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorContractionOp>::Scalar Scalar;
|
||||||
typedef typename internal::promote_storage_type<typename LhsXprType::CoeffReturnType,
|
typedef typename internal::gebp_traits<typename LhsXprType::CoeffReturnType,
|
||||||
typename RhsXprType::CoeffReturnType>::ret CoeffReturnType;
|
typename RhsXprType::CoeffReturnType>::ResScalar CoeffReturnType;
|
||||||
typedef typename Eigen::internal::nested<TensorContractionOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorContractionOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorContractionOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorContractionOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorContractionOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorContractionOp>::Index Index;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user