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
empty
function - Added
ComplexDouble
implementation in Kotlin/Native based onVector128
#170
Fixes
- Fixed a bug with
ComplexFloat
in Kotlin/Js #169
multik-openblas
Features and Optimizations
- Optimized the execution of
sin
,cos
,log
,exp
functions in Kotlin/Native #180 - Optimized
cumSum
in 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 end
start..<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
ExperimentalMultikApi
for experimental api - added a new function
createAlignedNDArray
for 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-default
andmultik-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
norm
function tomultik-openblas
#61 - added statistical functions to
multik-openblas
#62 - added
expand_dims
function #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
re
andim
for complex matrices #53
Fixes
- fixed a bug when solving linear systems on inconsistent matrices #66
- fixed concatenate arrays #68
- fixed
ones
function #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
math
andlinalg
Features
- added
logicalOr
andlogicalAnd
returning an integer array. Will subsequently be changed to a boolean array #48 - added
minimum
andmaximum
functions #47 - added
stack
function #45 - added
meshgrid
function #30 - added
append
function #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
inverse
function (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
ones
function - added
zeros
function to replaceempty
,empty
is deprecated - added
toType
function - 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)