anchor.diff:  
   uses
     System.SysUtils;
  -{$IF NOT DECLARED(TSingleHelper)}
  -  {$DEFINE NORECORDHELPERS}
  -{$IFEND}
   
   {$IF CompilerVersion >= 24.0}
     {$LEGACYIFEND ON}
  
positive.code:     // NaN or +/-Infinity
      Result := 0;
  end;
  {$ELSE}
  begin
    Result := AValue.Exponent;
  end;
  {$ENDIF}
  
  function GetExponent(const AValue: Extended): Integer; overload;
  {$IFDEF NORECORDHELPERS}
  var
    M: UInt64;
    E: UInt32;
  begin
    M := PUInt64(@AValue)^;
    E := GetRawExp(AValue);
    if (0 < E) and (E < CExtendedExponentMask) then
      Result := E - CExtendedBias
    else if E = 0 then
  
negative.code:     // NaN or +/-Infinity
      Result := 0;
  end;
  
  function GetExponent(const AValue: Double): Integer; overload;
  var
    M: UInt64;
    E: UInt32;
  begin
    M := GetRawMantissa(AValue);
    E := GetRawExponent(AValue);
    if (0 < E) and (E < CDoubleExponentMask) then
      Result := E - CDoubleBias
    else if E = 0 then
  