public static void SubtractUnchecked(CanonicalIntegerBoolean borrow, TIntT first, TIntT second, out TIntT result)
 {
     result = unchecked (first - (TIntT)borrow - second);
 }
 public static CanonicalIntegerBoolean AddUnsigned(CanonicalIntegerBoolean carry, TIntT first, TIntT second, out TIntT result)
 {
     return(ConditionalIncreaseUnsigned(carry, first, out var result_) | AddUnsigned(result_, second, out result));
 }
        public static CanonicalIntegerBoolean DecreaseUnsigned(CanonicalIntegerBoolean borrow, TIntT value, out TIntT result)
        {
            var t = value - 1;

            return(CanonicalIntegerBooleanModule.Equals(0, value) | ConditionalDecreaseUnsigned(borrow, t, out result));
        }
 public static void AddUnchecked(CanonicalIntegerBoolean carry, TIntT first, TIntT second, out TIntT result)
 {
     result = unchecked ((TIntT)carry + first + second);
 }
        public static CanonicalIntegerBoolean IncreaseUnsigned(CanonicalIntegerBoolean carry, TIntT value, out TIntT result)
        {
            var t = 1 + value;

            return(CanonicalIntegerBooleanModule.Equals(-1, value.ToSignedUnchecked()) | ConditionalIncreaseUnsigned(carry, t, out result));
        }
 public static CanonicalIntegerBoolean ConditionalDecreaseUnsigned(CanonicalIntegerBoolean borrow, TIntT value, out TIntT result)
 {
     ConditionalDecreaseUnchecked(borrow, value, out result);
     return(borrow & CanonicalIntegerBooleanModule.Equals(0, value));
 }
 public static void ConditionalDecreaseUnchecked(CanonicalIntegerBoolean borrow, TIntT value, out TIntT result)
 {
     result = unchecked (value - (TIntT)borrow.ToUInteger());
 }
 public static void ConditionalIncreaseUnchecked(CanonicalIntegerBoolean carry, TIntT value, out TIntT result)
 {
     result = unchecked (value + (TIntT)carry.ToUInteger());
 }
 public static CanonicalIntegerBoolean SubtractUnsigned(CanonicalIntegerBoolean borrow, TIntT first, TIntT second, out TIntT result)
 {
     return(ConditionalDecreaseUnsigned(borrow, first, out var result_) | SubtractUnsigned(result_, second, out result));
 }