diff options
author | 2009-11-18 16:31:14 -0500 | |
---|---|---|
committer | 2009-11-18 16:31:14 -0500 | |
commit | 11fa2ae2c602a9771fadee6f5162e82d5d29cd85 (patch) | |
tree | cb6c416dd7745dd9ec95309f1b58afdde7f272ee /Eigen | |
parent | 8860203e6a29d7cc5f19097ca57aa458ee449777 (diff) |
temporarily disable linear traversal.
Actually I don't think it's buggy. But it probably triggers existing bugs, I suspect that
some xprs have LinearAccessBit and shouldn't have it.
Also this fixes the "bugs" with JacobiSVD ---> now it works again
Diffstat (limited to 'Eigen')
-rw-r--r-- | Eigen/src/Core/Assign.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Eigen/src/Core/Assign.h b/Eigen/src/Core/Assign.h index 86ba45481..32f9623e8 100644 --- a/Eigen/src/Core/Assign.h +++ b/Eigen/src/Core/Assign.h @@ -73,16 +73,18 @@ public: Traversal = int(MayInnerVectorize) ? int(InnerVectorizedTraversal) : int(MayLinearVectorize) ? int(LinearVectorizedTraversal) : int(MaySliceVectorize) ? int(SliceVectorizedTraversal) - : int(MayLinearize) ? int(LinearTraversal) +// : int(MayLinearize) ? int(LinearTraversal) : int(DefaultTraversal), - Vectorized = int(Traversal) != LinearTraversal && int(Traversal) == DefaultTraversal + Vectorized = int(Traversal) == InnerVectorizedTraversal + || int(Traversal) == LinearVectorizedTraversal + || int(Traversal) == SliceVectorizedTraversal }; private: enum { - UnrollingLimit = EIGEN_UNROLLING_LIMIT * (Vectorized ? 1 : int(PacketSize)), + UnrollingLimit = EIGEN_UNROLLING_LIMIT * (Vectorized ? int(PacketSize) : 1), MayUnrollCompletely = int(Derived::SizeAtCompileTime) * int(OtherDerived::CoeffReadCost) <= int(UnrollingLimit), - MayUnrollInner = int(InnerSize * OtherDerived::CoeffReadCost) <= int(UnrollingLimit) + MayUnrollInner = int(InnerSize) * int(OtherDerived::CoeffReadCost) <= int(UnrollingLimit) }; public: @@ -91,7 +93,7 @@ public: ? ( int(MayUnrollCompletely) ? int(CompleteUnrolling) : int(MayUnrollInner) ? int(InnerUnrolling) - : int(NoUnrolling) + : int(NoUnrolling) ) : int(Traversal) == int(LinearVectorizedTraversal) ? ( int(MayUnrollCompletely) && int(DstIsAligned) ? int(CompleteUnrolling) : int(NoUnrolling) ) |