Merge with eigen/default

This commit is contained in:
Eugene Zhulenev 2018-08-10 17:18:42 -07:00
commit 855b68896b
4 changed files with 9 additions and 17 deletions

View File

@ -320,7 +320,7 @@ template<typename _MatrixType> class FullPivLU
return m_usePrescribedThreshold ? m_prescribedThreshold return m_usePrescribedThreshold ? m_prescribedThreshold
// this formula comes from experimenting (see "LU precision tuning" thread on the list) // this formula comes from experimenting (see "LU precision tuning" thread on the list)
// and turns out to be identical to Higham's formula used already in LDLt. // and turns out to be identical to Higham's formula used already in LDLt.
: NumTraits<Scalar>::epsilon() * m_lu.diagonalSize(); : NumTraits<Scalar>::epsilon() * RealScalar(m_lu.diagonalSize());
} }
/** \returns the rank of the matrix of which *this is the LU decomposition. /** \returns the rank of the matrix of which *this is the LU decomposition.

View File

@ -60,7 +60,7 @@ struct cond<RowMajor> {
* - kSkewedInnerDims: 100 blocks of size 100x1 (or 1x100 depending on a column * - kSkewedInnerDims: 100 blocks of size 100x1 (or 1x100 depending on a column
* or row major layout) * or row major layout)
*/ */
enum class TensorBlockShapeType { enum TensorBlockShapeType {
kUniformAllDims, kUniformAllDims,
kSkewedInnerDims, kSkewedInnerDims,
}; };

View File

@ -113,12 +113,9 @@ class TensorExecutor<Expression, DefaultDevice, Vectorizable,
EIGEN_DEVICE_FUNC EIGEN_DEVICE_FUNC
static EIGEN_STRONG_INLINE void run(const Expression& expr, static EIGEN_STRONG_INLINE void run(const Expression& expr,
const DefaultDevice& device = DefaultDevice()) { const DefaultDevice& device = DefaultDevice()) {
typedef TensorBlock<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout> typedef TensorBlock<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout> TensorBlock;
TensorBlock; typedef TensorBlockMapper<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout> TensorBlockMapper;
typedef typename TensorBlock::Dimensions TensorBlockDimensions; typedef typename TensorBlock::Dimensions TensorBlockDimensions;
typedef TensorBlockMapper<ScalarNoConst, StorageIndex, NumDims,
Evaluator::Layout>
TensorBlockMapper;
Evaluator evaluator(expr, device); Evaluator evaluator(expr, device);
Index total_size = array_prod(evaluator.dimensions()); Index total_size = array_prod(evaluator.dimensions());
@ -262,11 +259,8 @@ class TensorExecutor<Expression, ThreadPoolDevice, Vectorizable, /*Tileable*/ tr
static EIGEN_STRONG_INLINE void run(const Expression& expr, static EIGEN_STRONG_INLINE void run(const Expression& expr,
const ThreadPoolDevice& device) { const ThreadPoolDevice& device) {
typedef TensorBlock<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout> typedef TensorBlock<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout> TensorBlock;
TensorBlock; typedef TensorBlockMapper<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout> TensorBlockMapper;
typedef TensorBlockMapper<ScalarNoConst, StorageIndex, NumDims,
Evaluator::Layout>
TensorBlockMapper;
Evaluator evaluator(expr, device); Evaluator evaluator(expr, device);
StorageIndex total_size = array_prod(evaluator.dimensions()); StorageIndex total_size = array_prod(evaluator.dimensions());

View File

@ -521,8 +521,7 @@ struct TensorEvaluator<const TensorSlicingOp<StartIndices, Sizes, ArgType>, Devi
typedef typename internal::remove_const<Scalar>::type ScalarNoConst; typedef typename internal::remove_const<Scalar>::type ScalarNoConst;
typedef internal::TensorBlock<ScalarNoConst, Index, NumDims, Layout> typedef internal::TensorBlock<ScalarNoConst, Index, NumDims, Layout> TensorBlock;
TensorBlock;
typedef typename TensorBlock::Dimensions TensorBlockDimensions; typedef typename TensorBlock::Dimensions TensorBlockDimensions;
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorEvaluator(const XprType& op, const Device& device) EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorEvaluator(const XprType& op, const Device& device)
@ -799,8 +798,7 @@ struct TensorEvaluator<TensorSlicingOp<StartIndices, Sizes, ArgType>, Device>
typedef typename internal::remove_const<Scalar>::type ScalarNoConst; typedef typename internal::remove_const<Scalar>::type ScalarNoConst;
typedef internal::TensorBlock<ScalarNoConst, Index, NumDims, Layout> typedef internal::TensorBlock<ScalarNoConst, Index, NumDims, Layout> TensorBlock;
TensorBlock;
typedef typename TensorBlock::Dimensions TensorBlockDimensions; typedef typename TensorBlock::Dimensions TensorBlockDimensions;
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorEvaluator(const XprType& op, const Device& device) EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorEvaluator(const XprType& op, const Device& device)