anchor.diff:  interface
   
   uses
  -  Velthuis.RandomNumbers, System.Types, System.SysUtils, System.Math;
  +  CompilerAndRTLVersions, Velthuis.RandomNumbers, System.Types, System.SysUtils, System.Math;
   
   // --- User settings ---
   
  
positive.code:   {$IFEND}
  {$IFEND}
  
  // For Delphi XE and up:
  {$IF CompilerVersion >= 22.0}
    {$CODEALIGN 16}
    {$ALIGN 16}
  {$IFEND}
  
  // For Win32:
  {$IF SizeOf(Extended) > SizeOf(Double)}
    {$DEFINE HasExtended}
  {$IFEND}
  
  // For PAnsiChar:
  {$IF NOT DECLARED(PAnsiChar)}
    {$DEFINE NoAnsi}
  {$IFEND}
  
  // Assembler is only supplied for Windows targets.
  // For other targets, PUREPASCAL must be defined.
  {$IFNDEF PUREPASCAL}
    {$IFNDEF MSWINDOWS}
      {$DEFINE PUREPASCAL}
    {$ENDIF}
  {$ENDIF}
  
  // To account for bad code generation for fifth parameter in Win64 in Rio.
  // TODO: Remove, if fixed.
  {$IF (CompilerVersion = 33) and defined(WIN64)}
    {$DEFINE RIO64}
  {$IFEND}
  
  const
  {$IFDEF PUREPASCAL}
  
negative.code:   I: Integer;
    J: Integer;
    LPower: BigInteger;
    LMaxPower: BigInteger;
  begin
    for I := Low(ValueCache) to High(ValueCache) do
    begin
  