@@ -22,6 +22,7 @@ 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+ int compareTo ( object lhs , object rhs ) ;
2526
2627 object bitwiseAnd ( object lhs , object rhs ) ;
2728 object bitwiseOr ( object lhs , object rhs ) ;
@@ -63,6 +64,7 @@ public bool TryParse(string str, out object result)
6364 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
6465 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
6566 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 ) ) ;
6668
6769 public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
6870 public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -104,6 +106,7 @@ public bool TryParse(string str, out object result)
104106 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
105107 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
106108 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 ) ) ;
107110
108111 public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
109112 public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -145,6 +148,7 @@ public bool TryParse(string str, out object result)
145148 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
146149 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
147150 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 ) ) ;
148152
149153 public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
150154 public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -186,6 +190,7 @@ public bool TryParse(string str, out object result)
186190 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
187191 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
188192 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 ) ) ;
189194
190195 public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
191196 public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -227,6 +232,7 @@ public bool TryParse(string str, out object result)
227232 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
228233 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
229234 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 ) ) ;
230236
231237 public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
232238 public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -268,6 +274,7 @@ public bool TryParse(string str, out object result)
268274 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
269275 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
270276 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 ) ) ;
271278
272279 public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
273280 public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -309,6 +316,7 @@ public bool TryParse(string str, out object result)
309316 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
310317 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
311318 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 ) ) ;
312320
313321 public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
314322 public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -350,6 +358,7 @@ public bool TryParse(string str, out object result)
350358 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
351359 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
352360 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 ) ) ;
353362
354363 public object bitwiseAnd ( object lhs , object rhs ) => Convert ( lhs ) & Convert ( rhs ) ;
355364 public object bitwiseOr ( object lhs , object rhs ) => Convert ( lhs ) | Convert ( rhs ) ;
@@ -391,6 +400,7 @@ public bool TryParse(string str, out object result)
391400 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
392401 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
393402 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 ) ) ;
394404
395405 public object bitwiseAnd ( object lhs , object rhs ) => throw new NotSupportedException ( "Bitwise operators only supported on integer types" ) ;
396406 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)
432442 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
433443 public object pow ( object lhs , object rhs ) => Math . Pow ( Convert ( lhs ) , Convert ( rhs ) ) ;
434444 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 ) ) ;
435446
436447 public object bitwiseAnd ( object lhs , object rhs ) => throw new NotSupportedException ( "Bitwise operators only supported on integer types" ) ;
437448 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)
473484 public object mod ( object lhs , object rhs ) => Convert ( lhs ) % Convert ( rhs ) ;
474485 public object pow ( object lhs , object rhs ) => Math . Pow ( ( double ) Convert ( lhs ) , ( double ) Convert ( rhs ) ) ;
475486 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 ) ) ;
476488
477489 public object bitwiseAnd ( object lhs , object rhs ) => throw new NotSupportedException ( "Bitwise operators only supported on integer types" ) ;
478490 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)
629641 [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
630642 public static object Log ( object lhs , object rhs ) => AssertNumbers ( nameof ( Log ) , lhs , rhs ) . log ( lhs , rhs ) ;
631643
644+ [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
645+ public static object CompareTo ( object lhs , object rhs ) => AssertNumbers ( nameof ( CompareTo ) , lhs , rhs ) . compareTo ( lhs , rhs ) ;
646+
632647 [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
633648 public static object BitwiseAnd ( object lhs , object rhs ) => AssertNumbers ( nameof ( BitwiseAnd ) , lhs , rhs ) . bitwiseAnd ( lhs , rhs ) ;
634649
0 commit comments