First part of a big refactoring of alignment control to enable the handling of arbitrarily aligned buffers. It includes:

- AlignedBit flag is deprecated. Alignment is now specified by the evaluator through the 'Alignment' enum, e.g., evaluator<Xpr>::Alignment. Its value is in Bytes.
 - Add several enums to specify alignment: Aligned8, Aligned16, Aligned32, Aligned64, Aligned128. AlignedMax corresponds to EIGEN_MAX_ALIGN_BYTES. Such enums are used to define the above Alignment value, and as the 'Options' template parameter of Map<> and Ref<>.
 - The Aligned enum is now deprecated. It is now an alias for Aligned16.
 - Currently, traits<Matrix<>>, traits<Array<>>, traits<Ref<>>, traits<Map<>>, and traits<Block<>> also expose the Alignment enum.
This commit is contained in:
Gael Guennebaud
2015-08-06 15:31:07 +02:00
parent 65186ef18d
commit 1f5024332e
24 changed files with 231 additions and 200 deletions

View File

@@ -162,12 +162,12 @@ void unalignedassert()
}
for(int b=8; b<EIGEN_MAX_ALIGN_BYTES; b+=8)
{
VERIFY_RAISES_ASSERT(construct_at_boundary<Vector8f>(b));
VERIFY_RAISES_ASSERT(construct_at_boundary<Matrix4f>(b));
VERIFY_RAISES_ASSERT(construct_at_boundary<Vector4d>(b));
VERIFY_RAISES_ASSERT(construct_at_boundary<Matrix2d>(b));
VERIFY_RAISES_ASSERT(construct_at_boundary<Matrix4d>(b));
VERIFY_RAISES_ASSERT(construct_at_boundary<Vector2cd>(b));
if(b<32) VERIFY_RAISES_ASSERT(construct_at_boundary<Vector8f>(b));
if(b<64) VERIFY_RAISES_ASSERT(construct_at_boundary<Matrix4f>(b));
if(b<32) VERIFY_RAISES_ASSERT(construct_at_boundary<Vector4d>(b));
if(b<32) VERIFY_RAISES_ASSERT(construct_at_boundary<Matrix2d>(b));
if(b<128) VERIFY_RAISES_ASSERT(construct_at_boundary<Matrix4d>(b));
if(b<32) VERIFY_RAISES_ASSERT(construct_at_boundary<Vector2cd>(b));
}
#endif
}