anchor.diff:      class function InternalDivideByBase(Mag: PLimb; Base: Integer; var Size: Integer): UInt32; static;
       // Internal function multiplying by 16 bit integer and then adding 16 bit value. Used by parser.
       class procedure InternalMultiply16(const Left: TMagnitude; var Result: TMagnitude; LSize: Integer; Right: Word); static;
  +    // Internal function multiplying by a base and adding a digit. Condition: ADigit < ABase. Size is updated if necessary.
  +    class procedure InternalMultiplyAndAdd16(Value: PLimb; ABase, ADigit: Word; var Size: Integer); static;
       // Internal function negating magnitude (treating it as two's complement).
       class procedure InternalNegate(Source, Dest: PLimb; Size: Integer); static;
   
  
positive.code: unit Velthuis.BigIntegers;
  
  { TODO:
    - Remove local BigIntegers where possible. Removing Res from class function BigInteger.Add sped
      it up by 15%. Instead of a local BigInteger, Add now uses ResData and ResSize local variables.
  }
  
negative.code:     Exit;
    LIsNegative := False;
  
    AValue.MakeSize(Length(S) div CStringMinLengths[ABase] + 1);
    AValue.FSize := 0;
  
    P := PChar(LTrimmed);
    if (P^ = '-') or (P^ = '+') then
  