anchor.diff:  { Language:   Delphi version XE2 or later                                    }
   { Author:     Rudy Velthuis                                                  }
   { Copyright:  (c) 2015,2016,2017 Rudy Velthuis                               }
  -{----------------------------------------------------------------------------}
  -{             Schönhage-Strasssen algorithm:                                 }
  -{             Copyright (c) 2011, Tim Buktu                                  }
  -{             All rights reserved.                                           }
  -{             https://github.com/tbuktu/ntru/blob/master/src/main/java/      }
  -{               net/sf/ntru/arith/Sch%C3%B6nhageStrassen.java                }
  -{             License as below                                               }
  -{----------------------------------------------------------------------------}
  -{ Notes:      See http://praxis-velthuis.de/rdc/programs/bigintegers.html    }
   {                                                                            }
   {             For tests, see BigIntegerDevelopmentTests.dproj. The data      }
   {             for these tests are generated by a C# program, in the          }
  
positive.code:       // a partial flag stall.
        FInternalAdd: TBinaryOperator;
        FInternalSubtract: TBinaryOperator;
    {$ENDREGION}
  
    {$REGION 'private functions'}
  
negative.code:   Compact;
  end;
  
  constructor BigInteger.Create(const Value: PAnsiChar);
  begin
    if not TryParse(string(AnsiString(Value)), Self) then
      Error(ecParse, [string(AnsiString(Value)), 'BigInteger']);
  end;
  
  constructor BigInteger.Create(const Value: PWideChar);
  begin
    if not TryParse(Value, Self) then
      Error(ecParse, [Value, 'BigInteger']);
  end;
  
  // Bytes are considered to contain value in two's complement format.
  constructor BigInteger.Create(const Bytes: array of Byte);
  var
  