Skip to content

Commit c19b891

Browse files
committed
1 parent 69d0402 commit c19b891

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

docs/changelog.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This is a list of RELEASED changes for the DeciMojo Package.
44

55
## 01/08/2025 (v0.5.0)
66

7-
DeciMojo v0.5.0 introduces significant enhancements to the `BigDecimal` and `BigUInt` types, including new mathematical functions and performance optimizations. The release adds trigonometric functions for `BigDecimal`, implements the Chudnovsky algorithm for computing π, and refines the multiplication algorithm for `BigUInt`. In-place subtraction is now supported for `BigUInt`, and SIMD is utilized for addition operations. The release also includes improved error handling, optimized type conversions, and comprehensive documentation updates.
7+
DeciMojo v0.5.0 introduces significant enhancements to the `BigDecimal` and `BigUInt` types, including new mathematical functions and performance optimizations. The release adds **trigonometric functions** for `BigDecimal`, implements the **Chudnovsky algorithm** for computing π, implements the **Karatsuba multiplication algorithm** and **Burnikel-Ziegler fast division algorithm** for `BigUInt`. In-place subtraction is now supported for `BigUInt`, and SIMD is utilized for arithmetic operations. The release also includes improved error handling, optimized type conversions, and comprehensive documentation updates.
88

99
### ⭐️ New
1010

@@ -13,10 +13,11 @@ DeciMojo v0.5.0 introduces significant enhancements to the `BigDecimal` and `Big
1313

1414
### 🦋 Changed
1515

16-
1. Refine the `BigUInt` multiplication with the Karatsuba algorithm. The time complexity of maltiplication is reduced from $O(n^2)$ to $O(n^{ln(3/2)})$ for large integers, which significantly improves performance for big numbers. Doubling the size of the numbers will only increase the time taken by a factor of about 3, instead of 4 as in the previous implementation (#97).
16+
1. Refine the `BigUInt` multiplication with the **Karatsuba algorithm**. The time complexity of maltiplication is reduced from $O(n^2)$ to $O(n^{ln(3/2)})$ for large integers, which significantly improves performance for big numbers. Doubling the size of the numbers will only increase the time taken by a factor of about 3, instead of 4 as in the previous implementation (#97).
17+
1. Refine the `BigUInt` division with the **Burnikel-Ziegler fast recursive division algorithm**. The time complexity of division is also reduced from $O(n^2)$ to $O(n^{ln(3/2)})$ for large integers (#103).
18+
1. Refine the fall-back **schoolbook division** of `BigUInt` to improve performance. The fallback division is used when the divisor is small enough (#98, #100).
19+
1. Implement auxiliary functions for arithmetic operations of `BigUInt` to handle **special cases** more efficiently, e.g., when the second operand is one-word long or is a `UInt32` value (#98).
1720
1. Implement in-place subtraction for `BigUInt`. The `__isub__` method of `BigUInt` will now conduct in-place subtraction. `x -= y` will not lead to memory allocation, but will modify the original `BigUInt` object `x` directly (#98).
18-
1. Refine the arithmetic operations of `BigUInt` when the second operand is one-word long or is a `UInt32` value (#98).
19-
1. Refine the division of `BigUInt` to improve performance (#98, #100).
2021
1. Use SIMD for `BigUInt` addition and subtraction operations. This allows the addition and subtraction of two `BigUInt` objects to be performed in parallel, significantly improving performance for large numbers (#101, #102).
2122
1. Add `to_uint64()` and `to_uint128()` methods to `BigUInt` to for fast type conversion (#91).
2223
1. Improve error messages and remove unnecessary `raises` keywords for all functions (#92).

0 commit comments

Comments
 (0)