/// <inheritdoc/>
 public override T?Subtract(T?value1, T?value2)
 {
     if (!NullIsZero && (!value1.HasValue || !value2.HasValue))
     {
         return(null);
     }
     return(BaseArithmetic.Subtract(value1.GetValueOrDefault(), value2.GetValueOrDefault()));
 }
 /// <inheritdoc/>
 public override T?Divide(T?value, double factor)
 {
     if (!NullIsZero && !value.HasValue)
     {
         return(null);
     }
     return(BaseArithmetic.Divide(value.GetValueOrDefault(), factor));
 }
 /// <inheritdoc/>
 public override T?Negation(T?value)
 {
     if (!NullIsZero && !value.HasValue)
     {
         return(null);
     }
     return(BaseArithmetic.Negation(value.GetValueOrDefault()));
 }