Commit fae5676
authored
[integer] Enhance the comparison operations of
This pull request includes significant changes to the `BigInt` and
`BigUInt` benchmarks and arithmetic operations. The changes improve the
initialization and handling of `BigInt` objects, update the benchmarks
to use more descriptive commands, and enhance the comparison operations.
Below are the most important changes:
### Benchmark Improvements:
*
[`benches/bigint/bench.mojo`](diffhunk://#diff-2a97f8dc8465f7a88d361dcee4dcb3020bd75f18a3a189e817fb9af8996bbb75R2):
Added the import for `bench_bigint_multiply` and updated the command
options to use descriptive strings instead of numbers.
[[1]](diffhunk://#diff-2a97f8dc8465f7a88d361dcee4dcb3020bd75f18a3a189e817fb9af8996bbb75R2)
[[2]](diffhunk://#diff-2a97f8dc8465f7a88d361dcee4dcb3020bd75f18a3a189e817fb9af8996bbb75L12-R36)
*
[`benches/biguint/bench.mojo`](diffhunk://#diff-34a58f6f5c1b673b01199db91a3b182f1f345caf0797cbcacadd978e96e4cc10L12-R31):
Updated the command options to use descriptive strings instead of
numbers.
### BigInt Initialization and Arithmetic Enhancements:
*
[`src/decimojo/bigint/arithmetics.mojo`](diffhunk://#diff-1ffcd7baf2074053c5e9680efda5d243ac5a3096ebf39049f4670a48bc0a932fL54-R57):
Replaced the `empty` and `capacity` parameters with `List[UInt32]` for
initializing `BigInt` objects in various arithmetic functions.
[[1]](diffhunk://#diff-1ffcd7baf2074053c5e9680efda5d243ac5a3096ebf39049f4670a48bc0a932fL54-R57)
[[2]](diffhunk://#diff-1ffcd7baf2074053c5e9680efda5d243ac5a3096ebf39049f4670a48bc0a932fL120-R121)
[[3]](diffhunk://#diff-1ffcd7baf2074053c5e9680efda5d243ac5a3096ebf39049f4670a48bc0a932fL227-R228)
[[4]](diffhunk://#diff-1ffcd7baf2074053c5e9680efda5d243ac5a3096ebf39049f4670a48bc0a932fL346-R358)
[[5]](diffhunk://#diff-1ffcd7baf2074053c5e9680efda5d243ac5a3096ebf39049f4670a48bc0a932fL393-R393)
[[6]](diffhunk://#diff-1ffcd7baf2074053c5e9680efda5d243ac5a3096ebf39049f4670a48bc0a932fL419-R419)
[[7]](diffhunk://#diff-1ffcd7baf2074053c5e9680efda5d243ac5a3096ebf39049f4670a48bc0a932fL431-R431)
[[8]](diffhunk://#diff-1ffcd7baf2074053c5e9680efda5d243ac5a3096ebf39049f4670a48bc0a932fL484-R484)
[[9]](diffhunk://#diff-1ffcd7baf2074053c5e9680efda5d243ac5a3096ebf39049f4670a48bc0a932fL505-R505)
[[10]](diffhunk://#diff-1ffcd7baf2074053c5e9680efda5d243ac5a3096ebf39049f4670a48bc0a932fL523-R523)
### BigInt Struct Enhancements:
*
[`src/decimojo/bigint/bigint.mojo`](diffhunk://#diff-d65a756a58e3387a2b30bbe88308c3b318d71d2116b2870ac0a44109729e554bL76-R128):
Deprecated the `empty` and `capacity` parameters in `BigInt`
initialization, introduced new constructors for safer initialization
from lists and words, and added comparison dunders (`__gt__`, `__ge__`,
`__lt__`, `__le__`, `__eq__`, `__ne__`).
[[1]](diffhunk://#diff-d65a756a58e3387a2b30bbe88308c3b318d71d2116b2870ac0a44109729e554bL76-R128)
[[2]](diffhunk://#diff-d65a756a58e3387a2b30bbe88308c3b318d71d2116b2870ac0a44109729e554bR183-R202)
[[3]](diffhunk://#diff-d65a756a58e3387a2b30bbe88308c3b318d71d2116b2870ac0a44109729e554bL179-R218)
[[4]](diffhunk://#diff-d65a756a58e3387a2b30bbe88308c3b318d71d2116b2870ac0a44109729e554bL189-R239)
[[5]](diffhunk://#diff-d65a756a58e3387a2b30bbe88308c3b318d71d2116b2870ac0a44109729e554bL208-R260)
[[6]](diffhunk://#diff-d65a756a58e3387a2b30bbe88308c3b318d71d2116b2870ac0a44109729e554bL236-R277)
[[7]](diffhunk://#diff-d65a756a58e3387a2b30bbe88308c3b318d71d2116b2870ac0a44109729e554bL262-R301)
[[8]](diffhunk://#diff-d65a756a58e3387a2b30bbe88308c3b318d71d2116b2870ac0a44109729e554bR472-R506)
[[9]](diffhunk://#diff-d65a756a58e3387a2b30bbe88308c3b318d71d2116b2870ac0a44109729e554bR518-R524)
[[10]](diffhunk://#diff-d65a756a58e3387a2b30bbe88308c3b318d71d2116b2870ac0a44109729e554bL495-R575)
### Comparison Module Update:
*
[`src/decimojo/bigint/comparison.mojo`](diffhunk://#diff-d7e30fa4bdf75c4935df70d55fd5fe8b02a9530e5a3f012fe61958a0b82311ccL21-R22):
Removed unnecessary import and added the import for `BigUInt`.BigInt (#60)1 parent 3cc20ea commit fae5676
File tree
7 files changed
+1125
-106
lines changed- benches
- bigint
- biguint
- src/decimojo
- bigint
- biguint
7 files changed
+1125
-106
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| |||
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
17 | 19 | | |
18 | 20 | | |
19 | 21 | | |
20 | 22 | | |
21 | | - | |
| 23 | + | |
22 | 24 | | |
23 | | - | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
24 | 28 | | |
25 | | - | |
| 29 | + | |
26 | 30 | | |
27 | | - | |
| 31 | + | |
28 | 32 | | |
| 33 | + | |
29 | 34 | | |
30 | 35 | | |
31 | | - | |
| 36 | + | |
32 | 37 | | |
33 | 38 | | |
34 | 39 | | |
| |||
0 commit comments