altavir
02/21/2021, 2:44 PMspace.kscience
) and a completely new understanding of library aims. KMath does not want to follow numpy path and provide bindings for a single implementation of nd-arrays and numerics. Instead, we are working on a Kotlin-first API, that allows us to better tap into the kotlin lagnuage potential and allow to create the same or similar API to different existing libraries, so one could easily switch implementations withot a lot of changes in the code. Also we provide simple multiplatform implementations for people, who do not need super-optimized performance. Those basic implementations are thereby referenced as kmath-core to avoid confusion with library bindings like kmath-commons, kmath-ejml, kmath-viktor etc.
The important feature of the new release is the new documenation and stability policy. Ecch module has a Maturity level shown in the documentation:
• PROTOTYPE - both idea an the implementation may change.
• EXPERIMENTAL - we have an idea how it should look like, but implementation could change in minor versions.
• DEVELOPMENT - API compatibility between monitor versions is controlled via https://github.com/Kotlin/binary-compatibility-validator.
• STABLE - no module has reached this stage yet, but we plan to enforce production-ready stability guarantees.
New documentation plugin allows to maintain the list of module features. Here is the list of key feature modules:
• kmath-core Core classes, algebra definitions, basic linear algebra, nd-structures, expressions etc.
• kmath-commons Bindings for Commons-math library.
• kmath-complex Complex numbers and quternions (separated from core in this release.
• kmath-nd4j ND4J bindings for nd-structures implementation.
• kmath-ejml EJML bindings for linear algebra implementatiion.
• kmath-viktor JetBrains Research Viktor bindings for real-valued nd-structures.
• kmath-histograms Univariate and multivariate histograms.
• kmath-ast MST (mathematical syntax tree) definition, JIT expression compilation with ASM on JVM and JS interpreter on JS. Symbolic algebra.
• kmath-kotlingrad Automatic differentiation via MST and kotlingrad library.
The significant part of the release is done by @Iaroslav Postovalov. I would also like to thank a lot of people, including @breandan, @Peter Klimai, @elizarov , @Ролан, @Aleksei Dievskii, @roman.belov, @Pavel Gorgulov and numerous others (I can't remember them all, we need a list), for discussions and contributions.
The project is supported by the JetBrains Research.altavir
02/21/2021, 2:44 PMaltavir
02/21/2021, 2:50 PMaltavir
02/21/2021, 7:29 PMzaleslaw
02/22/2021, 6:22 AMaltavir
02/22/2021, 9:41 AMaltavir
02/22/2021, 1:23 PMaltavir
03/08/2021, 7:06 PMaltavir
03/09/2021, 10:08 AMField
. They are no longer present for Space and Ring. PR is here: https://github.com/mipt-npm/kmath/pull/219elizarov
03/09/2021, 10:12 AMaltavir
03/09/2021, 10:15 AM