Re: [eigen] 3.0.4 coming soon, testing appreciated

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


After changes one test failed  - qtvector, all others are passed (in x86).

System: MSVC 2010 SP1 + Win 7 x64 Ultimate + Qt 4.8.0 (beta) 

I'm not sure but maybe qtvector has failed cause I have very beta version of Qt  - 4.8.0.

One note though, compiler screams on 130 line in XprHelper.h with (warnings):

C4308: negative integral constant converted to unsigned type
C4307: integral constant overflow

Correct me if I am wrong but MaxCols and MaxRows could be negative. 
In spite of that in 130 line we do size estimation based on them: 

 ... ((!is_dynamic_size_storage) && (((MaxCols*MaxRows*sizeof(Scalar)) % 16) == 0)) ...


On Tue, Nov 22, 2011 at 11:14 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
This is now fixed in both branches: f7e4c54e8c44 in default branch,
dfea1f0cbf7a in 3.0 branch.

Can you please retry?

The fix is very nontrivial so I would like to discuss it here.

We used to have 2 different ways of computing whether we statically
align types: one for the actual static alignment stuff in
DenseStorage.h, checking if the byte size is a multiple of 16 bytes,
and one for the AlignedBit flag computation in compute_matrix_flags in
XprHelper.h, checking if the Scalar type is vectorizable and if
Rows*Cols is a multiple of the vectorization packet size.

For example, when vectorization is disabled, Matrix4d is still
statically aligned (we need that to preserve the ABI) but its Flags do
not have the AlignedBit.

The bug you hit was because when I wrote the patch for bug 369, I
didn't realize that.

In addition, we were overloading operator new and delete both in
PlainObjectBase, and again in the child classes Matrix and Array.

All that should be fixed by above-mentioned changesets, but please
test and check if that change sounds OK.

Cheers,
Benoit

2011/11/22 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> This looks like a regression from Bug 369. Investigating.
>
> Benoit
>
> 2011/11/21 Pavel Holoborodko <pavel@xxxxxxxxxxxxxxx>:
>> Visual Studio 2010-SP1, x86:
>> 99% tests passed, 1 tests failed out of 543
>> Log for failed test - 366:
>> 366/543 Testing: geo_quaternion_2
>> 366/543 Test: geo_quaternion_2
>> Command: "U:/Temp/eigen.3.0.4/build/test/Release/geo_quaternion_2.exe"
>> Directory: U:/Temp/eigen.3.0.4/build/test
>> "geo_quaternion_2" start time: Nov 22 11:09 Tokyo Standard Time
>> Output:
>> ----------------------------------------------------------
>> Initializing random number generator with seed 1321927741
>> Repeating each test 10 times
>> Assertion failed: (reinterpret_cast<size_t>(array) & 0xf) == 0 && "this
>> assertion is explained here: "
>> "http://eigen.tuxfamily.org/dox-devel/TopicUnalignedArrayAssert.html" " ****
>> READ THIS WEB PAGE !!! ****", file
>> u:\temp\eigen.3.0.4\eigen\src/Core/DenseStorage.h, line 69
>> <end of output>
>> Test time =   1.85 sec
>> ----------------------------------------------------------
>> Test Failed.
>> "geo_quaternion_2" end time: Nov 22 11:09 Tokyo Standard Time
>> "geo_quaternion_2" time elapsed: 00:00:01
>> ----------------------------------------------------------
>>
>> On Mon, Nov 21, 2011 at 11:45 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
>> wrote:
>>>
>>> Hi,
>>>
>>> We would like to release Eigen 3.0.4 next week, so testing would be
>>> much appreciated on all supported platforms, with a special mention
>>> for Clang 3.0 on ARM since Eigen 3.0.4 brings fixes specifically for
>>> it.
>>>
>>> The fixes since 3.0.3 are: support for Clang 3.0 on ARM; check for
>>> integer overflow in size computations; a SelfAdjointEigenSolver bug
>>> fix; a quaternion alignment fix; fix unsupported modules docs.
>>>
>>> How to run the tests:
>>> http://eigen.tuxfamily.org/index.php?title=Tests
>>>
>>> Cheers,
>>> Benoit
>>>
>>>
>>
>>
>





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/