LiarPrincess
LiarPrincess
I wrote [Violet XsProMax](https://github.com/LiarPrincess/Violet-BigInt-XsProMax) which is a [Violet](https://github.com/LiarPrincess/Violet/tree/swift-numerics) implementation with following changes: - no small inlined integer (`Smi`) - magnitude is always stored on the heap - no restrictions on...
I wrote a [test script](https://github.com/LiarPrincess/Swift-BigInt-performance-tests) that runs multiple `BigInt` implementations: - `swift_numerics` - branch from this PR - `Violet` - [this branch](https://github.com/LiarPrincess/Violet/tree/swift-numerics) which is a `main` branch with all `swift_numerics`...
Update 21.2.2023: - added `equatable`, `comparable` and `π` tests - improved Violet performance - updated the posts above with new results --- Anyway, from those tests we can see that...
Update 20.3.2023: - Added [Violet XsProMax](https://github.com/LiarPrincess/Violet-BigInt-XsProMax) to the post above - Added detailed pi test input distribution
Just for reference, original Violet code: - [toString](https://github.com/LiarPrincess/Violet-BigInt-XsProMax/blob/main/Sources/BigInt%2BToString.swift) - [initFromString](https://github.com/LiarPrincess/Violet-BigInt-XsProMax/blob/main/Sources/BigInt%2BInitFromString.swift) This is `XsProMax` version (the one without the inlined `Int32`), according to [#256 [BigInt tests][No merge] rabbit How NOT to...
Hmm... I can't compile the code from this PR: ``` /mnt/Storage/Programming/TEST/swift-numerics/Sources/BigIntModule/BigInt.swift:387:20: error: value of type 'UnsafeMutablePointer' has no member 'update' dstPtr.update(from: srcPtr, count: count) ~~~~~~ ^~~~~~ ``` More or less...
Oki, when I change `update(from:count:)` to `assign(from:count:)` I can run the tests. Not sure what is going on... Then if we run the full Violet test suite we will get...
Yep, I know. This is the reason why we can just be generic over 'floating point' and not 'floating point with a special case for `Float80`'. In the comment I...
Ugh... I forgot to mention that the compilation failure (rename from `UnsafeMutablePointer.assign(from:count:)` to `UnsafeMutablePointer.update(from:count:)`) was caused by [SE-0370: Pointer Family Initialization Improvements and Better Buffer Slices](https://github.com/apple/swift-evolution/blob/main/proposals/0370-pointer-family-initialization-improvements.md). This change was specifically...
The whole Vapor/Fibonacci/BigInt thingie on the forum reminded me of this PR. Just so that we are clear: some parts of this PR are *uncomfortably* similar to Violet code, and...