This bugzilla service is closed. All entries have been migrated to https://gitlab.com/libeigen/eigen
View | Details | Raw Unified | Return to bug 359 | Differences between
and this patch

Collapse All | Expand All

(-)a/Eigen/src/Core/products/CoeffBasedProduct.h (-1 / +2 lines)
Lines 80-96 struct traits<CoeffBasedProduct<LhsNeste Link Here
80
80
81
      EvalToRowMajor = (MaxRowsAtCompileTime==1&&MaxColsAtCompileTime!=1) ? 1
81
      EvalToRowMajor = (MaxRowsAtCompileTime==1&&MaxColsAtCompileTime!=1) ? 1
82
                     : (MaxColsAtCompileTime==1&&MaxRowsAtCompileTime!=1) ? 0
82
                     : (MaxColsAtCompileTime==1&&MaxRowsAtCompileTime!=1) ? 0
83
                     : (RhsRowMajor && !CanVectorizeLhs),
83
                     : (RhsRowMajor && !CanVectorizeLhs),
84
84
85
      Flags = ((unsigned int)(LhsFlags | RhsFlags) & HereditaryBits & ~RowMajorBit)
85
      Flags = ((unsigned int)(LhsFlags | RhsFlags) & HereditaryBits & ~RowMajorBit)
86
            | (EvalToRowMajor ? RowMajorBit : 0)
86
            | (EvalToRowMajor ? RowMajorBit : 0)
87
            | NestingFlags
87
            | NestingFlags
88
            | (LhsFlags & RhsFlags & AlignedBit)
88
            | (CanVectorizeLhs ? (LhsFlags & AlignedBit) : 0)
89
            | (CanVectorizeRhs ? (RhsFlags & AlignedBit) : 0)
89
            // TODO enable vectorization for mixed types
90
            // TODO enable vectorization for mixed types
90
            | (SameType && (CanVectorizeLhs || CanVectorizeRhs) ? PacketAccessBit : 0),
91
            | (SameType && (CanVectorizeLhs || CanVectorizeRhs) ? PacketAccessBit : 0),
91
92
92
      CoeffReadCost = InnerSize == Dynamic ? Dynamic
93
      CoeffReadCost = InnerSize == Dynamic ? Dynamic
93
                    : InnerSize * (NumTraits<Scalar>::MulCost + LhsCoeffReadCost + RhsCoeffReadCost)
94
                    : InnerSize * (NumTraits<Scalar>::MulCost + LhsCoeffReadCost + RhsCoeffReadCost)
94
                      + (InnerSize - 1) * NumTraits<Scalar>::AddCost,
95
                      + (InnerSize - 1) * NumTraits<Scalar>::AddCost,
95
96
96
      /* CanVectorizeInner deserves special explanation. It does not affect the product flags. It is not used outside
97
      /* CanVectorizeInner deserves special explanation. It does not affect the product flags. It is not used outside

Return to bug 359