@@ -22,6 +22,7 @@ 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
+ int compareTo ( object lhs , object rhs ) ;
25
26
26
27
object bitwiseAnd ( object lhs , object rhs ) ;
27
28
object bitwiseOr ( object lhs , object rhs ) ;
@@ -63,6 +64,7 @@ public bool TryParse(string str, out object result)
63
64
public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
64
65
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
65
66
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
67
+ public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
66
68
67
69
public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
68
70
public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -104,6 +106,7 @@ public bool TryParse(string str, out object result)
104
106
public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
105
107
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
106
108
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
109
+ public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
107
110
108
111
public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
109
112
public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -145,6 +148,7 @@ public bool TryParse(string str, out object result)
145
148
public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
146
149
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
147
150
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
151
+ public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
148
152
149
153
public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
150
154
public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -186,6 +190,7 @@ public bool TryParse(string str, out object result)
186
190
public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
187
191
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
188
192
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
193
+ public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
189
194
190
195
public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
191
196
public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -227,6 +232,7 @@ public bool TryParse(string str, out object result)
227
232
public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
228
233
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
229
234
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
235
+ public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
230
236
231
237
public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
232
238
public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -268,6 +274,7 @@ public bool TryParse(string str, out object result)
268
274
public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
269
275
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
270
276
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
277
+ public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
271
278
272
279
public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
273
280
public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -309,6 +316,7 @@ public bool TryParse(string str, out object result)
309
316
public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
310
317
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
311
318
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
319
+ public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
312
320
313
321
public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
314
322
public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -350,6 +358,7 @@ public bool TryParse(string str, out object result)
350
358
public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
351
359
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
352
360
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
361
+ public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
353
362
354
363
public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
355
364
public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -391,6 +400,7 @@ public bool TryParse(string str, out object result)
391
400
public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
392
401
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
393
402
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
403
+ public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
394
404
395
405
public object bitwiseAnd ( object lhs , object rhs ) => throw new NotSupportedException ( "Bitwise operators only supported on integer types" ) ;
396
406
public object bitwiseOr ( object lhs , object rhs ) => throw new NotSupportedException ( "Bitwise operators only supported on integer types" ) ;
@@ -432,6 +442,7 @@ public bool TryParse(string str, out object result)
432
442
public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
433
443
public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
434
444
public object log ( object lhs , object rhs ) => Math . Log ( Convert ( lhs ) , Convert ( rhs ) ) ;
445
+ public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
435
446
436
447
public object bitwiseAnd ( object lhs , object rhs ) => throw new NotSupportedException ( "Bitwise operators only supported on integer types" ) ;
437
448
public object bitwiseOr ( object lhs , object rhs ) => throw new NotSupportedException ( "Bitwise operators only supported on integer types" ) ;
@@ -473,6 +484,7 @@ public bool TryParse(string str, out object result)
473
484
public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
474
485
public object pow ( object lhs , object rhs ) => Math . Pow ( ( double ) Convert ( lhs ) , ( double ) Convert ( rhs ) ) ;
475
486
public object log ( object lhs , object rhs ) => Math . Log ( ( double ) Convert ( lhs ) , ( double ) Convert ( rhs ) ) ;
487
+ public int compareTo ( object lhs , object rhs ) => Convert ( lhs ) . CompareTo ( Convert ( rhs ) ) ;
476
488
477
489
public object bitwiseAnd ( object lhs , object rhs ) => throw new NotSupportedException ( "Bitwise operators only supported on integer types" ) ;
478
490
public object bitwiseOr ( object lhs , object rhs ) => throw new NotSupportedException ( "Bitwise operators only supported on integer types" ) ;
@@ -629,6 +641,9 @@ public static IDynamicNumber AssertNumbers(string name, object lhs, object rhs)
629
641
[ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
630
642
public static object Log ( object lhs , object rhs ) => AssertNumbers ( nameof ( Log ) , lhs , rhs ) . log ( lhs , rhs ) ;
631
643
644
+ [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
645
+ public static object CompareTo ( object lhs , object rhs ) => AssertNumbers ( nameof ( CompareTo ) , lhs , rhs ) . compareTo ( lhs , rhs ) ;
646
+
632
647
[ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
633
648
public static object BitwiseAnd ( object lhs , object rhs ) => AssertNumbers ( nameof ( BitwiseAnd ) , lhs , rhs ) . bitwiseAnd ( lhs , rhs ) ;
634
649
0 commit comments