anchor.diff:    SInvalidOperation          = 'Invalid operation';
     SConversionFailedFmt       = 'BigInteger value too large for conversion to %s';
     SOverflow                  = 'Double parameter may not be NaN or +/- Infinity';
  -  SInvalidArgumentBase       = 'Base parameter must be in the range 2..36.';
  +  SInvalidArgumentBase       = 'Base parameter must be in the range 2..36';
     SInvalidArgumentFmt        = 'Invalid Argument: %s';
     SSqrtBigInteger            = 'Negative values not allowed for Sqrt';
  +  SNoInverse                 = 'No modular inverse possible';
   
   {$RANGECHECKS OFF}
   {$OVERFLOWCHECKS OFF}
  
positive.code:       begin
          ShallowCopy(Left, Remainder);
          ShallowCopy(Zero, Quotient);
          Exit; // $$RV
        end;
      0:
        begin
  
negative.code:   private
    {$REGION 'private constants, types and variables'}
      type
        TErrorCode = (ecParse, ecDivbyZero, ecConversion, ecInvalidBase, ecOverflow, ecInvalidArg, ecNoInverse);
        TDyadicOperator = procedure(Left, Right, Result: PLimb; LSize, RSize: Integer);
      var
        FData: TMagnitude;                        // The limbs of the magnitude, least significant limb at lowest address.
  