ScaleOperationsinterfaceFieldextendsScaleOperations- Basic integration API
- Basic MPP distributions and samplers
bindSymbolOrNull- Blocking chains and Statistics
- Multiplatform integration
- Integration for any Field element
- Extended operations for ND4J fields
- Jupyter Notebook integration module (kmath-jupyter)
@PerformancePitfallannotation to mark possibly slow API- Unified architecture for Integration and Optimization using features.
BigIntoperation performance improvement and fixes by @zhelenskiy (#328)- Integration between
MSTand SymjaIExpr - Complex power
- Exponential operations merged with hyperbolic functions
- Space is replaced by Group. Space is reserved for vector spaces.
- VectorSpace is now a vector space
- Buffer factories for primitives moved to MutableBuffer.Companion
- Rename
NDStructureandNDAlgebratoStructureNDandAlgebraNDrespectively Real->Double- DataSets are moved from functions to core
- Redesign advanced Chain API
- Redesign
MST. RemoveMstExpression. - Move
MSTto core - Separated benchmarks and examples
- Rewrite
kmath-ejmlwithoutejml-simpleartifact, support sparse matrices - Promote stability of kmath-ast and kmath-kotlingrad to EXPERIMENTAL.
- ColumnarData returns nullable column
MSTis made sealed interface- Replace
MST.SymbolicbySymbol,Symbolnow implements MST - Remove Any restriction on polynomials
- Add
outvariance to type parameters ofStructureNDand its implementations where possible - Rename
DifferentiableMstExpressiontoKotlingradExpression FeatureSetnow accepts onlyFeature. It is possible to override keys and use interfaces.- Use
Symbolfactory function instead ofStringSymbol - New discoverability pattern:
<Type>.algebra.<nd/etc> - Adjusted commons-math API for linear solvers to match conventions.
- Buffer algebra does not require size anymore
- Operations -> Ops
- Default Buffer and ND algebras are now Ops and lack neutral elements (0, 1) as well as algebra-level shapes.
- Specialized
DoubleBufferAlgebra
- Nearest in Domain. To be implemented in geometry package.
- Number multiplication and division in main Algebra chain
contentEqualsfrom Buffer. It moved to the companion.- MSTExpression
- Expression algebra builders
- Complex and Quaternion no longer are elements.
- Second generic from DifferentiableExpression
- Algebra elements are completely removed. Use algebra contexts instead.
- Ring inherits RingOperations, not GroupOperations
- Univariate histogram filling
funannotation for SAM interfaces in library- Explicit
publicvisibility for all public APIs - Better trigonometric and hyperbolic functions for
AutoDiffField(SciProgCentre#140) - Automatic README generation for features (#139)
- Native support for
memory,coreanddimensions kmath-ejmlto supply EJML SimpleMatrix wrapper (SciProgCentre#136)- A separate
Symbolentity, which is used for global unbound symbol. - A
Symbolindexing scope. - Basic optimization API for Commons-math.
- Chi squared optimization for array-like data in CM
Fittingutility object in prob/stat- ND4J support module submitting
NDStructureandNDAlgebraoverINDArray - Coroutine-deterministic Monte-Carlo scope with a random number generator
- Some minor utilities to
kmath-for-real - Generic operation result parameter to
MatrixContext - New
MatrixFeatureinterfaces for matrix decompositions - Basic Quaternion vector support in
kmath-complex.
- Package changed from
scientifiktospace.kscience - Gradle version: 6.6 -> 6.8.2
- Minor exceptions refactor (throwing
IllegalArgumentExceptionby argument checks instead ofIllegalStateException) Polynomialsecondary constructor made function- Kotlin version: 1.3.72 -> 1.4.30
kmath-astdoesn't depend on heavykotlin-reflectlibrary- Full autodiff refactoring based on
Symbol kmath-probrenamed tokmath-stat- Grid generators moved to
kmath-for-real - Use
Point<Double>instead of specialized type inkmath-for-real - Optimized dot product for buffer matrices moved to
kmath-for-real - EjmlMatrix context is an object
- Matrix LUP
inverserenamed toinverseWithLup NumericAlgebramoved outside of regular algebra chain (Ringno longer implements it).- Features moved to NDStructure and became transparent.
- Capitalization of LUP in many names changed to Lup.
- Refactored
NDStructurealgebra to be more simple, preferring under-the-hood conversion to explicit NDStructure types - Refactor histograms. They are marked as prototype
Complexand related features moved to a separate modulekmath-complex- Refactor AlgebraElement
symbolmethod inAlgebrarenamed tobindSymbolto avoid ambiguity- Add
outprojection toBuffergeneric
kmath-komamodule because it doesn't support Kotlin 1.4.- Support of
legacyJS backend (we will support only IR) toGridmethod.- Public visibility of
BufferAccessor2D Realclass- StructureND identity and equals
symbolmethod inMstExtendedField(SciProgCentre#140)
- Functional Expressions API
- Mathematical Syntax Tree, its interpreter and API
- String to MST parser (SciProgCentre#120)
- MST to JVM bytecode translator (SciProgCentre#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 }(SciProgCentre#125) - Interface
NumericAlgebrawherenumberoperation is available to convert numbers to algebraic elements - Inverse trigonometric functions support in ExtendedField (
asin,acos,atan) (SciProgCentre#114) - New space extensions:
averageandaverageWith - Local coding conventions
- Geometric Domains API in
kmath-core - Blocking chains in
kmath-coroutines - Full hyperbolic functions support and default implementations within
ExtendedField - Norm support for
Complex
readAsMemorynow hasthrows IOExceptionin JVM signature.- Several functions taking functional types were made
inline. - Several functions taking functional types now have
callsInPlacecontracts. - BigInteger and BigDecimal algebra: JBigDecimalField has companion object with default math context; minor optimizations
power(T, Int)extension function has preconditions and supportsField<T>- Memory objects have more preconditions (overflow checking)
tgfunction is renamed totan(SciProgCentre#114)- Gradle version: 6.3 -> 6.6
- Moved probability distributions to commons-rng and to
kmath-prob
- Missing copy method in Memory implementation on JS (SciProgCentre#106)
- D3.dim value in
kmath-dimensions - Multiplication in integer rings in
kmath-core(SciProgCentre#101) - Commons RNG compatibility (SciProgCentre#93)
- Multiplication of BigInt by scalar