aboutsummaryrefslogtreecommitdiff
path: root/Eigen/src/Core/products/TriangularMatrixVector.h
diff options
context:
space:
mode:
Diffstat (limited to 'Eigen/src/Core/products/TriangularMatrixVector.h')
-rw-r--r--Eigen/src/Core/products/TriangularMatrixVector.h22
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);
- }
}
};