mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-22 13:39:30 +02:00
TAChart: Add rounding-error-tolerant comparison functions to TAMath.
(cherry picked from commit ac7dc35162
)
This commit is contained in:
parent
223c71d6b4
commit
70a68d6bea
@ -24,7 +24,11 @@ procedure EnsureOrder(var A, B: Double); overload; inline;
|
||||
|
||||
procedure ExpandRange(var ALo, AHi: Double; ACoeff: Double);
|
||||
|
||||
function GreaterEqual(X, Y: Double; AEpsilon: Double = 0.0): boolean;
|
||||
function GreaterThan(X, Y: Double; AEpsilon: Double = 0.0): boolean;
|
||||
function InRangeUlps(AX, ALo, AHi: Double; AMaxUlps: Word): Boolean;
|
||||
function LessEqual(X, Y: Double; AEpsilon: Double = 0.0): boolean;
|
||||
function LessThan(X, Y: Double; AEpsilon: Double = 0.0): boolean;
|
||||
|
||||
function SafeInfinity: Double; inline;
|
||||
function SafeInRange(AValue, ABound1, ABound2: Double): Boolean;
|
||||
@ -143,11 +147,31 @@ begin
|
||||
AHi += d * ACoeff;
|
||||
end;
|
||||
|
||||
function GreaterEqual(X, Y: Double; AEpsilon: Double = 0.0): boolean;
|
||||
begin
|
||||
Result := (X > Y) or SameValue(X, Y, AEpsilon);
|
||||
end;
|
||||
|
||||
function GreaterThan(X, Y: Double; AEpsilon: Double = 0.0): boolean;
|
||||
begin
|
||||
Result := (X > Y) and not SameValue(X, Y, AEpsilon);
|
||||
end;
|
||||
|
||||
function InRangeUlps(AX, ALo, AHi: Double; AMaxUlps: Word): Boolean;
|
||||
begin
|
||||
Result := InRange(Ulps(AX), Ulps(ALo) - AMaxUlps, Ulps(AHi) + AMaxUlps);
|
||||
end;
|
||||
|
||||
function LessEqual(X, Y: Double; AEpsilon: Double = 0.0): boolean;
|
||||
begin
|
||||
Result := (X < Y) or SameValue(X, Y, AEpsilon);
|
||||
end;
|
||||
|
||||
function LessThan(X, Y: Double; AEpsilon: Double = 0.0): boolean;
|
||||
begin
|
||||
Result := (X < Y) and not SameValue(X, Y, AEpsilon);
|
||||
end;
|
||||
|
||||
function SafeInfinity: Double;
|
||||
begin
|
||||
{$PUSH}{$R-}{$Q-}
|
||||
|
Loading…
Reference in New Issue
Block a user