anchor.diff:  
   class operator BigInteger.Multiply(Left: Word; const Right: BigInteger): BigInteger;
   begin
  -  Result := Right * Left;
  +  if (Left = 0) or ((Right.FSize and SizeMask) = 0) then
  +    Exit(Zero);
  +  Result.MakeSize((Right.FSize and SizeMask) + 2);
  +  InternalMultiplyAndAdd16(Right.FData, Left, 0, Result.FData);
  +  Result.FSize := (Right.FSize and SignMask) or (Result.FSize and SizeMask);
  +  Result.Compact;
   end;
   
   class function BigInteger.MultiplyKaratsuba(const Left, Right: BigInteger): BigInteger;
  
positive.code:     class operator Modulus(const Left: BigInteger; Right: UInt16): BigInteger; inline;
  
      /// <summary>Unary minus. Negates the value of the specified BigInteger.</summary>
      class operator Negative(const Value: BigInteger): BigInteger; inline;
  
  {$IFDEF BIGINTEGERIMMUTABLE}
    private
  
negative.code:     v1 := t1;
      u3 := v3;
      v3 := t3;
      Inc(iter);
    end;
    // Ensure u3, i.e. gcd(Value, Modulus) = 1
    if u3 <> One then
      Error(ecNoInverse);
    if Odd(iter) then
      Result := Subtract(Abs(Modulus), u1)
    else
      Result := u1;
  