А>
А>__forceinline bool fdcmp ( double v1, double v2, char o ) // v1 eq v2
А>{
А> return ( ( ((__int64)( (*(unsigned __int64 *)&v1) - (*(unsigned __int64 *)&v2))) ) & 0x7FFFFFFFFFFFFFFF )<= o ;
А>}
А>
Поправьте —
__forceinline bool fdcmp ( double v1, double v2, char o ) // v1 eq v2
{
return abs( ((__int64)( (*(unsigned __int64 *)&v1) - (*(unsigned __int64 *)&v2))) ) <= o ;
}
Переоптимизировал. Ага.
Кстати, проверил — действительно быстрее чем просто сравнение даблов
, даже без всякого приведения — просто быстрее.
Здравствуйте, Аноним
Запарил уже писать ответы мимо форума.