anchor.diff:  {$POINTERMATH ON}
   
   {$IFDEF NORECORDHELPERS}
  -function GetPlainMantissa(const AValue: Single): UInt32; overload;
  +function GetRawMantissa(const AValue: Single): UInt32; overload;
   begin
     Result := PUInt32(@AValue)^ and CSingleMantissaMask;
   end;
   
  -function GetPlainMantissa(const AValue: Double): UInt64; overload;
  +function GetRawMantissa(const AValue: Double): UInt64; overload;
   begin
     Result := PUInt64(@AValue)^ and CDoubleMantissaMask;
   end;
   
  -function GetPlainExp(const AValue: Single): Integer; overload;
  +function GetRawExp(const AValue: Single): Integer; overload;
   begin
     Result := PUInt32(@AValue)^ shr CSingleExponentShift and CSingleExponentMask;
   end;
   
  -function GetPlainExp(const AValue: Double): Integer; overload;
  +function GetRawExp(const AValue: Double): Integer; overload;
   begin
     Result := PUInt16(@AValue)[3] shr 4 and CDoubleExponentMask;
   //  Result := PUInt64(@AValue)^ shr CDoubleExponentShift and CDoubleExponentMask;
   end;
   
  -function GetPlainExp(const AValue: Extended): Integer; overload;
  +function GetRawExp(const AValue: Extended): Integer; overload;
   begin
     Result := PUInt16(@AValue)[4] and CExtendedExponentMask;
   end;
  
positive.code:   E: UInt32;
  begin
    M := PUInt64(@AValue)^;
    E := GetPlainExp(AValue);
    if (0 < E) and (E < CExtendedExponentMask) then
      Result := E - CExtendedBias
    else if E = 0 then
  
negative.code: var
    M, E: UInt32;
  begin
    M := GetRawMantissa(AValue);
    E := GetRawExp(AValue);
    if (0 < E) and (E < CSingleExponentMask) then
      Result := E - CSingleBias
    else if E = 0 then
  