mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-17 21:30:04 +02:00
TAChart: Add SafeEqual to TAMath for non-crashing number comparison with NaN.
git-svn-id: trunk@51484 -
This commit is contained in:
parent
1ba9e71315
commit
0a110ac10e
@ -30,6 +30,7 @@ function SafeInfinity: Double; inline;
|
||||
function SafeInRange(AValue, ABound1, ABound2: Double): Boolean;
|
||||
function SafeMin(A, B: Double): Double;
|
||||
function SafeNan: Double; inline;
|
||||
function SafeEqual(A, B: Double): Boolean;
|
||||
|
||||
implementation
|
||||
|
||||
@ -177,6 +178,20 @@ begin
|
||||
{$POP}
|
||||
end;
|
||||
|
||||
function SafeEqual(A, B: Double): Boolean;
|
||||
var
|
||||
ANaN, BNaN: Boolean;
|
||||
begin
|
||||
ANaN := IsNaN(A);
|
||||
BNaN := IsNaN(B);
|
||||
if ANaN and BNaN then
|
||||
Result := true
|
||||
else if ANaN or BNaN then
|
||||
Result := false
|
||||
else
|
||||
Result := A = B;
|
||||
end;
|
||||
|
||||
// Convert double value to integer 2's complement representation.
|
||||
// Difference between resulting integers can be interpreted as distance in ulps.
|
||||
function Ulps(AX: Double): Int64; inline;
|
||||
|
Loading…
Reference in New Issue
Block a user