@@ -22,6 +22,8 @@ public interface IDynamicNumber
22
22
object mod ( object lhs , object rhs ) ;
23
23
object pow ( object lhs , object rhs ) ;
24
24
object log ( object lhs , object rhs ) ;
25
+ object min ( object lhs , object rhs ) ;
26
+ object max ( object lhs , object rhs ) ;
25
27
int compareTo ( object lhs , object rhs ) ;
26
28
27
29
object bitwiseAnd ( object lhs , object rhs ) ;
@@ -62,6 +64,8 @@ public bool TryParse(string str, out object result)
62
64
public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
63
65
public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
64
66
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 ) ) ;
65
69
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
66
70
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
67
71
public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -104,6 +108,8 @@ public bool TryParse(string str, out object result)
104
108
public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
105
109
public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
106
110
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 ) ) ;
107
113
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
108
114
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
109
115
public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -146,6 +152,8 @@ public bool TryParse(string str, out object result)
146
152
public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
147
153
public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
148
154
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 ) ) ;
149
157
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
150
158
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
151
159
public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -188,6 +196,8 @@ public bool TryParse(string str, out object result)
188
196
public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
189
197
public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
190
198
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 ) ) ;
191
201
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
192
202
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
193
203
public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -230,6 +240,8 @@ public bool TryParse(string str, out object result)
230
240
public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
231
241
public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
232
242
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 ) ) ;
233
245
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
234
246
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
235
247
public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -272,6 +284,8 @@ public bool TryParse(string str, out object result)
272
284
public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
273
285
public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
274
286
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 ) ) ;
275
289
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
276
290
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
277
291
public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -314,6 +328,8 @@ public bool TryParse(string str, out object result)
314
328
public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
315
329
public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
316
330
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 ) ) ;
317
333
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
318
334
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
319
335
public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -356,6 +372,8 @@ public bool TryParse(string str, out object result)
356
372
public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
357
373
public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
358
374
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 ) ) ;
359
377
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
360
378
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
361
379
public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -398,6 +416,8 @@ public bool TryParse(string str, out object result)
398
416
public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
399
417
public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
400
418
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 ) ) ;
401
421
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
402
422
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
403
423
public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -440,6 +460,8 @@ public bool TryParse(string str, out object result)
440
460
public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
441
461
public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
442
462
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 ) ) ;
443
465
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
444
466
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
445
467
public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
@@ -482,6 +504,8 @@ public bool TryParse(string str, out object result)
482
504
public object mul ( object lhs , object rhs ) => Convert ( lhs ) * Convert ( rhs ) ;
483
505
public object div ( object lhs , object rhs ) => Convert ( lhs ) / Convert ( rhs ) ;
484
506
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 ) ) ;
485
509
public object pow ( object lhs , object rhs ) => Math . Pow ( ( double ) Convert ( lhs ) , ( double ) Convert ( rhs ) ) ;
486
510
public object log ( object lhs , object rhs ) => Math . Log ( ( double ) Convert ( lhs ) , ( double ) Convert ( rhs ) ) ;
487
511
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)
635
659
[ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
636
660
public static object Mod ( object lhs , object rhs ) => AssertNumbers ( nameof ( Mod ) , lhs , rhs ) . mod ( lhs , rhs ) ;
637
661
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
+
638
668
[ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
639
669
public static object Pow ( object lhs , object rhs ) => AssertNumbers ( nameof ( Pow ) , lhs , rhs ) . pow ( lhs , rhs ) ;
640
670
0 commit comments