Example #1
0
 public static MInteger AddOptimized(MInteger firstInteger, MInteger secondInteger, bool carry)
 {
     if (firstInteger.IsNull() || secondInteger.IsNull())
     {
         if (firstInteger.IsNull())
         {
             return(MayAddOneToLast(secondInteger, carry));
         }
         else
         {
             return(MayAddOneToLast(firstInteger, carry));
         }
     }
     (bool resultCarry, bool bit) = AddBits(firstInteger.FirstBit(), secondInteger.FirstBit(), carry);
     return((new MInteger(bit)).Append(AddOptimized(firstInteger.RemoveFirst(), secondInteger.RemoveFirst(), resultCarry)));
 }
Example #2
0
 public bool EqualsInteger(MInteger integer)
 {
     if (IsNull())
     {
         if (integer.IsNull())
         {
             return(true);
         }
         return(false);
     }
     if (integer.IsNull())
     {
         return(false);
     }
     if (FirstBit() == integer.FirstBit())
     {
         return(RemoveFirst().EqualsInteger(integer.RemoveFirst()));
     }
     return(false);
 }