@@ -22,6 +22,8 @@ public interface IDynamicNumber
2222 object mod ( object lhs , object rhs ) ;
2323 object pow ( object lhs , object rhs ) ;
2424 object log ( object lhs , object rhs ) ;
25+ object min ( object lhs , object rhs ) ;
26+ object max ( object lhs , object rhs ) ;
2527 int compareTo ( object lhs , object rhs ) ;
2628
2729 object bitwiseAnd ( object lhs , object rhs ) ;
@@ -62,6 +64,8 @@ public bool TryParse(string str, out object result)
6264 public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
6365 public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
6466 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
67+ public object min ( object lhs , object rhs ) => Math . Min ( Convert ( lhs ) , Convert ( rhs ) ) ;
68+ public object max ( object lhs , object rhs ) => Math . Max ( Convert ( lhs ) , Convert ( rhs ) ) ;
6569 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
6670 public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
6771 public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -104,6 +108,8 @@ public bool TryParse(string str, out object result)
104108 public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
105109 public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
106110 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
111+ public object min ( object lhs , object rhs ) => Math . Min ( Convert ( lhs ) , Convert ( rhs ) ) ;
112+ public object max ( object lhs , object rhs ) => Math . Max ( Convert ( lhs ) , Convert ( rhs ) ) ;
107113 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
108114 public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
109115 public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -146,6 +152,8 @@ public bool TryParse(string str, out object result)
146152 public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
147153 public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
148154 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
155+ public object min ( object lhs , object rhs ) => Math . Min ( Convert ( lhs ) , Convert ( rhs ) ) ;
156+ public object max ( object lhs , object rhs ) => Math . Max ( Convert ( lhs ) , Convert ( rhs ) ) ;
149157 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
150158 public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
151159 public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -188,6 +196,8 @@ public bool TryParse(string str, out object result)
188196 public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
189197 public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
190198 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
199+ public object min ( object lhs , object rhs ) => Math . Min ( Convert ( lhs ) , Convert ( rhs ) ) ;
200+ public object max ( object lhs , object rhs ) => Math . Max ( Convert ( lhs ) , Convert ( rhs ) ) ;
191201 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
192202 public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
193203 public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -230,6 +240,8 @@ public bool TryParse(string str, out object result)
230240 public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
231241 public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
232242 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
243+ public object min ( object lhs , object rhs ) => Math . Min ( Convert ( lhs ) , Convert ( rhs ) ) ;
244+ public object max ( object lhs , object rhs ) => Math . Max ( Convert ( lhs ) , Convert ( rhs ) ) ;
233245 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
234246 public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
235247 public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -272,6 +284,8 @@ public bool TryParse(string str, out object result)
272284 public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
273285 public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
274286 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
287+ public object min ( object lhs , object rhs ) => Math . Min ( Convert ( lhs ) , Convert ( rhs ) ) ;
288+ public object max ( object lhs , object rhs ) => Math . Max ( Convert ( lhs ) , Convert ( rhs ) ) ;
275289 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
276290 public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
277291 public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -314,6 +328,8 @@ public bool TryParse(string str, out object result)
314328 public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
315329 public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
316330 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
331+ public object min ( object lhs , object rhs ) => Math . Min ( Convert ( lhs ) , Convert ( rhs ) ) ;
332+ public object max ( object lhs , object rhs ) => Math . Max ( Convert ( lhs ) , Convert ( rhs ) ) ;
317333 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
318334 public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
319335 public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -356,6 +372,8 @@ public bool TryParse(string str, out object result)
356372 public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
357373 public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
358374 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
375+ public object min ( object lhs , object rhs ) => Math . Min ( Convert ( lhs ) , Convert ( rhs ) ) ;
376+ public object max ( object lhs , object rhs ) => Math . Max ( Convert ( lhs ) , Convert ( rhs ) ) ;
359377 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
360378 public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
361379 public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -398,6 +416,8 @@ public bool TryParse(string str, out object result)
398416 public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
399417 public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
400418 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
419+ public object min ( object lhs , object rhs ) => Math . Min ( Convert ( lhs ) , Convert ( rhs ) ) ;
420+ public object max ( object lhs , object rhs ) => Math . Max ( Convert ( lhs ) , Convert ( rhs ) ) ;
401421 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
402422 public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
403423 public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -440,6 +460,8 @@ public bool TryParse(string str, out object result)
440460 public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
441461 public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
442462 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
463+ public object min ( object lhs , object rhs ) => Math . Min ( Convert ( lhs ) , Convert ( rhs ) ) ;
464+ public object max ( object lhs , object rhs ) => Math . Max ( Convert ( lhs ) , Convert ( rhs ) ) ;
443465 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
444466 public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
445467 public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -482,6 +504,8 @@ public bool TryParse(string str, out object result)
482504 public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
483505 public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
484506 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
507+ public object min ( object lhs , object rhs ) => Math . Min ( Convert ( lhs ) , Convert ( rhs ) ) ;
508+ public object max ( object lhs , object rhs ) => Math . Max ( Convert ( lhs ) , Convert ( rhs ) ) ;
485509 public object pow ( object lhs , object rhs ) => Math . Pow ( ( double ) Convert ( lhs ) , ( double ) Convert ( rhs ) ) ;
486510 public object log ( object lhs , object rhs ) => Math . Log ( ( double ) Convert ( lhs ) , ( double ) Convert ( rhs ) ) ;
487511 public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -635,6 +659,12 @@ public static IDynamicNumber AssertNumbers(string name, object lhs, object rhs)
635659 [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
636660 public static object Mod ( object lhs , object rhs ) => AssertNumbers ( nameof ( Mod ) , lhs , rhs ) . mod ( lhs , rhs ) ;
637661
662+ [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
663+ public static object Min ( object lhs , object rhs ) => AssertNumbers ( nameof ( Min ) , lhs , rhs ) . min ( lhs , rhs ) ;
664+
665+ [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
666+ public static object Max ( object lhs , object rhs ) => AssertNumbers ( nameof ( Max ) , lhs , rhs ) . max ( lhs , rhs ) ;
667+
638668 [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
639669 public static object Pow ( object lhs , object rhs ) => AssertNumbers ( nameof ( Pow ) , lhs , rhs ) . pow ( lhs , rhs ) ;
640670
0 commit comments