Releases: ionspin/kotlin-multiplatform-bignum
Releases · ionspin/kotlin-multiplatform-bignum
Kotlin 2.0.0, performance improvements, bugfixes
- Fix for #280, return byte array containing zero instead of empty array when big integer is zero.
- Fix for #291, override hashCode as well as equals in ModularBigInteger.
- Fix for #292, negate for Modular big intiger did nothing.
- Bump to kotlin 2.0.0
- Add github action for pull request build and test.
- Many performance improvements in #299, #300, #301 #302, and many thanks to @glureau for implementing them!
- Fix for #306, mod inverse was invalid.
- Targets and sourcesets cleanup , thanks to @caffeine-mgn
Kotlin 1.9.21, wasmJs, bugfixing
- Bump to kotlin 1.9.21
- Expanded BigInteger API to expose bitLength as proposed by #254
- Added wasm-js target
- Fix for #269, thanks to @CodeServant
- Fix for #276, BigDecimal divrem was not rounding properly
- Fix for #277, round half to even was wrong when exponent was 0
Kotlin 1.8.10, bugfixing
Smaller bugfixes, kotlin update
- Bump to Kotlin 1.7.10
- Fix for #239, toPlainString which was supposed to return same result as JVM was truncating zeroes when scale was used.
- Fix for #238, wrong exponent in resolved decimal precision was used in divideAndRemainder
- Fix for #237, when precision and exponent are same invalid value was returned
- Fix for #231, exception incorrectly thrown when using scale (the library was only checking for unlimited precision instead of that and presence of scale)
Bugfixes, kotlin update
Bugfixes, api change
- Throw a specific exception when exponentiation of zero with negative exponent is attempted (#206)
- Remove zero counting debug log (#210)
- Fix for invalid decimal precision when dividend has exponent -1 (#195)
- API CHANGE Narrowing function (longValue, intValue, doubleValue...) are now defaulting to
exactRequired
which means they
will throw ArithmeticException if the conversion cannot be done without loss. - Use temporary javascript comparison workaround to handle precision loss. This is fixed in kotlin 1.6.20 and the workaround will be removed once that is released.
0.3.3
Kotlinx serialization support library, dependency verification and bugfixes
Build base on 1.5.0 and bugfix
- Fix for #176, a case of unclear API. Methods
roundToDigitPositionAfterDecimalPoint
androundToDigitPosition
would set decimal precision to the number of digits present in the result after the rounding was completed. Now they only set decimal precision if it's explicitly set, otherwise it stays unlimited. - Bump to Kotlin 1.5.0
- Including Kotlin 1.4.32 release to support projects using that Kotlin version and unsigned integers.
BigDecimal API changes and bugfixes
- Fixed losing scale when there is a carry in addition in BigDecimal.
- Fixed BigInteger numberOfDecimalDigits which would return 0 for 0 instead of 1.
- Fixed #168 - Fix invalid rounding results Development roadmap for version 0.3.0 states 'API statbilization' so:
- API CHANGE Extensions functions used to create BigDecimal from primitive types have been split into 'toBigDecimal(exponentModifier...)' and 'toBigDecimalUsingSignificandAndExponent(exponent...)' to bring more clarity to the API and solve #164
- API CHANGE BigInteger uses a sum of magnitude elements as part of hash code instead of array hash code as it wasn't stable on JS
- API CHANGE BigDecimal hashCode doesn't include decimal mode anymore, so it respects contract that hash code equals another hash code when equals returns true.
- API CHANGE BigDecimal equals doesn't consider decimal mode anymore. Two big decimals are now equal only if they represent the same number.
- Fixed decimal mode precision/scale mismatch in BigDecimal #161
- NOTE: API CHANGE final precision is now desiredPrecision + scale
- Add @SharedImmutable to BigInteger to support native multithreading #159