Releases: Kotlin/multik
Multik 0.2.3 version
Common
- The entire library has been migrated to Kotlin 1.9.22
- Improved wasmJs support for
multik-core,multik-kotlin, andmultik-default
Core
Features and Optimizations
- Optimized getters and setters for ndarray
- Optimized complex numbers #168
- Improved exception messages
- Set the Deprecate level to Error for the
emptyfunction - Added
ComplexDoubleimplementation in Kotlin/Native based onVector128#170
Fixes
- Fixed a bug with
ComplexFloatin Kotlin/Js #169
multik-openblas
Features and Optimizations
- Optimized the execution of
sin,cos,log,expfunctions in Kotlin/Native #180 - Optimized
cumSumin Kotlin/Native - Improved native library performance on Windows
- Enhanced performance on Apple Silicon processors
Updates
- Updated OpenBlas to version 0.3.26
Fixes
Multik 0.2.2 version
New Features:
- Extended support for all JVM platforms in multik-default, hiding some implementations
- Norm 1, maximum, infinity added in multik-kotlin
- Added functionality to create an array from lists of different sizes
- Added stub for SVD decomposition
- Added WASM target #142
- Added support for npy and npz for JVM in multik-core #156
Updates
- Updated the Kotlin version to 1.8.21
- Updated version of OpenBLAS to 0.3.23
Fixes
Multik 0.2.1 version
⚠️ WARNING
In this release, the behavior of range for access has been changed.
The previous behavior of start..end returned [start, end - 1].
Now start..end will return [start, end].
For example:
val a = mk.arange<Int>(start = 0, stop = 5) // [0, 1, 2, 3, 4]
/*
* legacy: a[1..3] returns [1, 2]
*/
a[1..3] // returns [1, 2, 3]in order to use the range as before you can:
start..(end - 1)start until endstart..<end- new in kotlin 1.7.20, more in the blog
Motivation
I made a mistaken previous decision in order to make a short and convenient entry. And also satisfy users from python.
But with the development of Kotlin and the addition of open-ended ranges, this was no longer necessary. This way the new behavior will be consistent with kotlin stdlib, and IDEA hints like start ≤ .. ≤ end will no longer be misleading.
What's Changed
- changed behavior for ranges #138
- added new annotation
ExperimentalMultikApifor experimental api - added a new function
createAlignedNDArrayfor creating NDArrays from lists and arrays of different sizes #125 - support for all platforms added to
multik-default-jvm. The exception is Android due to the peculiarities of the assembly; only arm64 is supported formultik-defaultandmultik-openblas#124 - added matrix norms to
multik-kotlin#132
Fixes
Multik 0.2.0 version
General
In this release, we have supported multiplatform for all modules. Have support for Android armv8 and Apple Silicon processors. And renamed the modules.
Features
- added multiplatform support #8 #17 #20 #23 #89 #90
- renamed the modules #105
- added native support of Apple Silicon processor #36
- added native support of Android armv8 #104
- added simple way to create complex numbers #56
- added creating arrays with random elements #60
- added
normfunction tomultik-openblas#61 - added statistical functions to
multik-openblas#62 - added
expand_dimsfunction #80 - added creating arrays from
Array<PrimitiveArray>#92 - added converting arrays to primitive arrays #81
Fixes
- fixed concatenation of ndarrays with different shapes #83
- fixed reshape #101
- fixed copy in ComplexArrays #94
- fixed initialization of engines #106
Docs
- updated dokka plugin #91
- published new documentation – https://kotlin.github.io/multik/
Thanks for our contributors
- Luca Spinazzola (@luca992)
- Ansh Tyagi (@therealansh)
- Cagri Yildirim (@cagriyildirimR)
Multik 0.1.1 version
Features
- added conj function for complex matrices #54
- added shapes checking for arithmetic operations,
and,or,minimum,maximum#59 - added properties
reandimfor complex matrices #53
Fixes
- fixed a bug when solving linear systems on inconsistent matrices #66
- fixed concatenate arrays #68
- fixed
onesfunction #69 - fixed getrf call for one thread #74
- fixed complex arithmetic
Thanks to our contributors:
- Benjamin Rogge (@plastic-karma)
- Steven van den Broek (@Yvee1)
- Konrad Nowicki (@koodzi)
- Pavel Gorgulov (@devcrocod)
Multik 0.1.0 version
General
In this release, the stability and performance of the library have been improved, support for linear algebra methods has been expanded, new operations on arrays, complex numbers have been added, and more.
- improved performance in arithmetic operations
- improved performance in dot product of vectors
- improved performance in
sin,cos,log,exp(native) - improved type support in
mathandlinalg
Features
- added
logicalOrandlogicalAndreturning an integer array. Will subsequently be changed to a boolean array #48 - added
minimumandmaximumfunctions #47 - added
stackfunction #45 - added
meshgridfunction #30 - added
appendfunction #24, #22 - added extension functions for multiple methods from math and linalg #15
- added read/write csv files #14
- added support for complex numbers and arrays of complex numbers
- added plu factorization (jvm, native)
- added function for solving linear systems (jvm, native) #10, #13
- added
inversefunction (jvm, native) - added qr factorization (jvm, native)
- added calculation of eigenvalues (jvm, native) and eigenvectors (native)
- added native vector multiplication #9
- improved slice #7
- added multi-index initializers #5
- added conversions from nested lists to ndarray and back #12
- added
onesfunction - added
zerosfunction to replaceempty,emptyis deprecated - added
toTypefunction - added absolute values for ndarrays
Fixes
- fixed work with complex type in
map#43 - fixed arithmetic for complex #49
- fixed work with view arrays in several functions including
dot#40 - fixed double comparison #16
Thanks to our contributors:
- Pavel Gorgulov (@devcrocod)
- Sergey (@polka125)
- Ansh Tyagi (@therealansh)
- Alexey Zinoviev (@zaleslaw)