Skip to content

Releases: Kotlin/multik

Multik 0.2.3 version

08 Feb 20:41
dc5308a
Compare
Choose a tag to compare

Common

  • The entire library has been migrated to Kotlin 1.9.22
  • Improved wasmJs support for multik-core, multik-kotlin, and multik-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 on Vector128 #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

  • Fixed a bug with the result for argMin and argMax #189
  • Fixed a race condition when loading the native library #174
  • Fixed a bug for median in Kotlin/Native #191
  • Fixed a bug with multiplying a sliced matrix by a vector slice #192

Multik 0.2.2 version

30 May 13:26
2874672
Compare
Choose a tag to compare

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

  • Fixed output type for math functions
  • Fixed thread safety for load engine #155
  • Fixed dot with vectors from matrix #153

Multik 0.2.1 version

19 Sep 21:04
Compare
Choose a tag to compare

⚠️ 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 for multik-default and multik-openblas #124
  • added matrix norms to multik-kotlin #132

Fixes

  • fixed initialization of engines for Kotlin/JS #139
  • fixed some bugs related to copying to multik-openblas for Kotlin/Native
  • fixed dimension for returned NDArray in sumDN, minDN and others #137
  • fixed a bug in JNI for Android #146

Multik 0.2.0 version

26 Jul 22:13
87540d8
Compare
Choose a tag to compare

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 to multik-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

Thanks for our contributors

Multik 0.1.1 version

09 Nov 23:05
Compare
Choose a tag to compare

Features

  • added conj function for complex matrices #54
  • added shapes checking for arithmetic operations, and, or, minimum, maximum #59
  • added properties re and im 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:

Multik 0.1.0 version

11 Oct 09:07
Compare
Choose a tag to compare

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 and linalg

Features

  • added logicalOr and logicalAnd returning an integer array. Will subsequently be changed to a boolean array #48
  • added minimum and maximum 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 replace empty, 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: