[3/3] gdiplus: Make GdipInvertMatrix test pass on native

Reece Dunn msclrhd at googlemail.com
Sat Jul 12 17:56:55 CDT 2008


2008/7/12 Michael Karcher <wine at mkarcher.dialup.fu-berlin.de>:
> Am Samstag, den 12.07.2008, 16:55 -0500 schrieb James Hawkins:
>> > GDI+ uses floating
>> > point values for matrix elements so don't you think the result could be
>> > slightly different due different calculation algorithms?
> As they say: Never compare floating point numbers for equality. So I
> understand your point. Especially if unrepresentable values are
> involved.

Agreed. There could also be issues depending on the compiler used
(msvc vs gcc), different CPUs or instruction sets (e.g. using
MMX/SSE/SSE2 to optimise the calculations).

> Nikolay: Please write a test whether the matrix
>  1.0/131072, 2.0/131072, 4.0/131072, -1/131072, 0, 0
> is invertible. According to your criterion, it is *not* invertible, as
> the determinant will be 9.0/17179869184, which is way below 1e-5, but
> this matrix still *is* invertible. What happens on Windows?

The identity matrix would also be a nice test case - for the other GDI
and DirectX matrix operations as well.

- Reece



More information about the wine-devel mailing list