mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-11 07:31:48 +08:00
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
This commit is contained in:
parent
8860203e6a
commit
11fa2ae2c6
@ -73,16 +73,18 @@ public:
|
|||||||
Traversal = int(MayInnerVectorize) ? int(InnerVectorizedTraversal)
|
Traversal = int(MayInnerVectorize) ? int(InnerVectorizedTraversal)
|
||||||
: int(MayLinearVectorize) ? int(LinearVectorizedTraversal)
|
: int(MayLinearVectorize) ? int(LinearVectorizedTraversal)
|
||||||
: int(MaySliceVectorize) ? int(SliceVectorizedTraversal)
|
: int(MaySliceVectorize) ? int(SliceVectorizedTraversal)
|
||||||
: int(MayLinearize) ? int(LinearTraversal)
|
// : int(MayLinearize) ? int(LinearTraversal)
|
||||||
: int(DefaultTraversal),
|
: int(DefaultTraversal),
|
||||||
Vectorized = int(Traversal) != LinearTraversal && int(Traversal) == DefaultTraversal
|
Vectorized = int(Traversal) == InnerVectorizedTraversal
|
||||||
|
|| int(Traversal) == LinearVectorizedTraversal
|
||||||
|
|| int(Traversal) == SliceVectorizedTraversal
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum {
|
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),
|
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:
|
public:
|
||||||
@ -91,7 +93,7 @@ public:
|
|||||||
? (
|
? (
|
||||||
int(MayUnrollCompletely) ? int(CompleteUnrolling)
|
int(MayUnrollCompletely) ? int(CompleteUnrolling)
|
||||||
: int(MayUnrollInner) ? int(InnerUnrolling)
|
: int(MayUnrollInner) ? int(InnerUnrolling)
|
||||||
: int(NoUnrolling)
|
: int(NoUnrolling)
|
||||||
)
|
)
|
||||||
: int(Traversal) == int(LinearVectorizedTraversal)
|
: int(Traversal) == int(LinearVectorizedTraversal)
|
||||||
? ( int(MayUnrollCompletely) && int(DstIsAligned) ? int(CompleteUnrolling) : int(NoUnrolling) )
|
? ( int(MayUnrollCompletely) && int(DstIsAligned) ? int(CompleteUnrolling) : int(NoUnrolling) )
|
||||||
|
Loading…
x
Reference in New Issue
Block a user