diff options
Diffstat (limited to 'Eigen/src/Core/products/TriangularMatrixVector.h')
-rw-r--r-- | Eigen/src/Core/products/TriangularMatrixVector.h | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/Eigen/src/Core/products/TriangularMatrixVector.h b/Eigen/src/Core/products/TriangularMatrixVector.h index 76bfa159c..4b292e74d 100644 --- a/Eigen/src/Core/products/TriangularMatrixVector.h +++ b/Eigen/src/Core/products/TriangularMatrixVector.h @@ -221,9 +221,8 @@ template<int Mode> struct trmv_selector<Mode,ColMajor> typename internal::add_const_on_value_type<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(lhs); typename internal::add_const_on_value_type<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(rhs); - LhsScalar lhs_alpha = LhsBlasTraits::extractScalarFactor(lhs); - RhsScalar rhs_alpha = RhsBlasTraits::extractScalarFactor(rhs); - ResScalar actualAlpha = alpha * lhs_alpha * rhs_alpha; + ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(lhs) + * RhsBlasTraits::extractScalarFactor(rhs); enum { // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1 @@ -275,12 +274,6 @@ template<int Mode> struct trmv_selector<Mode,ColMajor> else dest = MappedDest(actualDestPtr, dest.size()); } - - if ( ((Mode&UnitDiag)==UnitDiag) && (lhs_alpha!=LhsScalar(1)) ) - { - Index diagSize = (std::min)(lhs.rows(),lhs.cols()); - dest.head(diagSize) -= (lhs_alpha-LhsScalar(1))*rhs.head(diagSize); - } } }; @@ -302,9 +295,8 @@ template<int Mode> struct trmv_selector<Mode,RowMajor> typename add_const<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(lhs); typename add_const<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(rhs); - LhsScalar lhs_alpha = LhsBlasTraits::extractScalarFactor(lhs); - RhsScalar rhs_alpha = RhsBlasTraits::extractScalarFactor(rhs); - ResScalar actualAlpha = alpha * lhs_alpha * rhs_alpha; + ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(lhs) + * RhsBlasTraits::extractScalarFactor(rhs); enum { DirectlyUseRhs = ActualRhsTypeCleaned::InnerStrideAtCompileTime==1 @@ -334,12 +326,6 @@ template<int Mode> struct trmv_selector<Mode,RowMajor> actualRhsPtr,1, dest.data(),dest.innerStride(), actualAlpha); - - if ( ((Mode&UnitDiag)==UnitDiag) && (lhs_alpha!=LhsScalar(1)) ) - { - Index diagSize = (std::min)(lhs.rows(),lhs.cols()); - dest.head(diagSize) -= (lhs_alpha-LhsScalar(1))*rhs.head(diagSize); - } } }; |