2020-08-10 22:39:01 +03:00
|
|
|
# KMath
|
|
|
|
|
2020-08-10 22:36:08 +03:00
|
|
|
## [Unreleased]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- Functional Expressions API
|
|
|
|
- Mathematical Syntax Tree, its interpreter and API
|
|
|
|
- String to MST parser (https://github.com/mipt-npm/kmath/pull/120)
|
|
|
|
- MST to JVM bytecode translator (https://github.com/mipt-npm/kmath/pull/94)
|
|
|
|
- FloatBuffer (specialized MutableBuffer over FloatArray)
|
|
|
|
- FlaggedBuffer to associate primitive numbers buffer with flags (to mark values infinite or missing, etc.)
|
|
|
|
- Specialized builder functions for all primitive buffers like `IntBuffer(25) { it + 1 }` (https://github.com/mipt-npm/kmath/pull/125)
|
|
|
|
- Interface `NumericAlgebra` where `number` operation is available to convert numbers to algebraic elements
|
|
|
|
- Inverse trigonometric functions support in ExtendedField (`asin`, `acos`, `atan`) (https://github.com/mipt-npm/kmath/pull/114)
|
|
|
|
- New space extensions: `average` and `averageWith`
|
|
|
|
- Local coding conventions
|
|
|
|
- Geometric Domains API in `kmath-core`
|
|
|
|
- Blocking chains in `kmath-coroutines`
|
2020-08-15 13:00:17 +03:00
|
|
|
- Full hyperbolic functions support and default implementations within `ExtendedField`
|
|
|
|
- Norm support for `Complex`
|
2020-08-10 22:36:08 +03:00
|
|
|
|
|
|
|
### Changed
|
2020-08-21 22:42:59 +03:00
|
|
|
- `readAsMemory` now has `throws IOException` in JVM signature.
|
|
|
|
- Several functions taking functional types were made `inline`.
|
|
|
|
- Several functions taking functional types now have `callsInPlace` contracts.
|
2020-08-10 22:36:08 +03:00
|
|
|
- BigInteger and BigDecimal algebra: JBigDecimalField has companion object with default math context; minor optimizations
|
|
|
|
- `power(T, Int)` extension function has preconditions and supports `Field<T>`
|
|
|
|
- Memory objects have more preconditions (overflow checking)
|
|
|
|
- `tg` function is renamed to `tan` (https://github.com/mipt-npm/kmath/pull/114)
|
2020-08-21 22:42:59 +03:00
|
|
|
- Gradle version: 6.3 -> 6.6
|
2020-08-15 13:00:17 +03:00
|
|
|
- Moved probability distributions to commons-rng and to `kmath-prob`
|
2020-08-10 22:36:08 +03:00
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- Missing copy method in Memory implementation on JS (https://github.com/mipt-npm/kmath/pull/106)
|
|
|
|
- D3.dim value in `kmath-dimensions`
|
|
|
|
- Multiplication in integer rings in `kmath-core` (https://github.com/mipt-npm/kmath/pull/101)
|
|
|
|
- Commons RNG compatibility (https://github.com/mipt-npm/kmath/issues/93)
|
2020-08-15 13:00:17 +03:00
|
|
|
- Multiplication of BigInt by scalar
|