Releases: SciProgCentre/kmath
Releases · SciProgCentre/kmath
0.3.1
Added
- Wasm support for
memory,core,complexandfunctionsmodules. - Generic builders for
BufferNDandMutableBufferND NamedMatrix- matrix with symbol-based indexingExpressionwith default arguments- Type-aliases for numbers like
Float64 - Autodiff for generic algebra elements in core!
- Algebra now has an obligatory
bufferFactory(#477).
Changed
- Geometry uses type-safe angles
- Tensor operations switched to prefix notation
- Row-wise and column-wise ND shapes in the core
- Shape is read-only
- Major refactor of tensors (only minor API changes)
- Kotlin 1.8.20
LazyStructuredeffered->asyncto comply with coroutines code style- Default
dotoperation in tensor algebra no longer support broadcasting. Insteadmatmuloperation is added toDoubleTensorAlgebra. - Multik went MPP
Removed
- Trajectory moved to https://github.com/SciProgCentre/maps-kt
- Polynomials moved to https://github.com/SciProgCentre/kmath-polynomial
0.3.1-dev-RC
Added
- Wasm support for
memory,core,complexandfunctionsmodules. - Generic builders for
BufferNDandMutableBufferND NamedMatrix- matrix with symbol-based indexingExpressionwith default arguments- Type-aliases for numbers like
Float64 - Autodiff for generic algebra elements in core!
- Algebra now has an obligatory
bufferFactory(#477).
Changed
- Geometry uses type-safe angles
- Tensor operations switched to prefix notation
- Row-wise and column-wise ND shapes in the core
- Shape is read-only
- Major refactor of tensors (only minor API changes)
- Kotlin 1.8.20
LazyStructuredeffered->asyncto comply with coroutines code style- Default
dotoperation in tensor algebra no longer support broadcasting. Insteadmatmuloperation is added toDoubleTensorAlgebra. - Multik went MPP
Removed
- Trajectory moved to https://github.com/SciProgCentre/maps-kt
- Polynomials moved to https://github.com/SciProgCentre/kmath-polynomial
0.3.0
Added
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
- Separate methods for UInt, Int and Number powers. NaN safety.
- Tensorflow prototype
ValueAndErrorField- MST compilation to WASM: #286
- Jafama integration: #176
contentEqualswith tolerance: #364- Compilation to TeX for MST: #254
Changed
- 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.
- Tensor algebra takes read-only structures as input and inherits AlgebraND
UnivariateDistributionrenamed toDistribution1D- Rework of histograms.
UnivariateFunction->Function1D,MultivariateFunction->FunctionND
Deprecated
- Specialized
DoubleBufferAlgebra
Removed
- 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.
Fixed
- Ring inherits RingOperations, not GroupOperations
- Univariate histogram filling
0.3.0-dev-18
Added
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
- Separate methods for UInt, Int and Number powers. NaN safety.
- Tensorflow prototype
Changed
- 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.
- Tensor algebra takes read-only structures as input and inherits AlgebraND
Deprecated
- Specialized
DoubleBufferAlgebra
Removed
- 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.
Fixed
- Ring inherits RingOperations, not GroupOperations
- Univariate histogram filling
0.3.0-dev-8
Added
- ScaleOperations interface
- Field extends ScaleOperations
- 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)
Changed
- 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
- NDStructure and NDAlgebra to StructureND and AlgebraND respectively
- Real -> Double
- DataSets are moved from functions to core
- Redesign advanced Chain API
- Redesign MST. Remove MSTExpression.
- Move MST to core
- Separated benchmarks and examples
- Rewritten EJML module without ejml-simple
Deprecated
Removed
- 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
- Comples and Quaternion no longer are elements.
Fixed
- Ring inherits RingOperations, not GroupOperations
0.2.0
[0.2.0]
Added
funannotation for SAM interfaces in library- Explicit
publicvisibility for all public APIs - Better trigonometric and hyperbolic functions for
AutoDiffField(#140) - Automatic README generation for features (#139)
- Native support for
memory,coreanddimensions kmath-ejmlto supply EJML SimpleMatrix wrapper (#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.
Changed
- 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
Deprecated
Removed
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
Fixed
symbolmethod inMstExtendedField(#140)
0.2.0-dev-5
Added
funannotation for SAM interfaces in library- Explicit
publicvisibility for all public APIs - Better trigonometric and hyperbolic functions for
AutoDiffField(#140) - Automatic README generation for features (#139)
- Native support for
memory,coreanddimensions kmath-ejmlto supply EJML SimpleMatrix wrapper (#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
Changed
- Package changed from
scientifiktokscience.kmath - Gradle version: 6.6 -> 6.8
- Minor exceptions refactor (throwing
IllegalArgumentExceptionby argument checks instead ofIllegalStateException) Polynomialsecondary constructor made function- Kotlin version: 1.3.72 -> 1.4.21
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.
Deprecated
Removed
kmath-komamodule because it doesn't support Kotlin 1.4.- Support of
legacyJS backend (we will support only IR) toGridmethod.- Public visibility of
BufferAccessor2D
Fixed
symbolmethod inMstExtendedField(#140)
Security
0.2.0-dev-2
Added
funannotation for SAM interfaces in library- Explicit
publicvisibility for all public APIs - Better trigonometric and hyperbolic functions for
AutoDiffField(#140). - Automatic README generation for features (#139)
Changed
- Package changed from
scientifiktokscience.kmath. - Gradle version: 6.6 -> 6.6.1
- Minor exceptions refactor (throwing
IllegalArgumentExceptionby argument checks instead ofIllegalStateException) Polynomialsecondary constructor made function.- Kotlin version: 1.3.72 -> 1.4.20-M1
Deprecated
Removed
kmath-komamodule because it doesn't support Kotlin 1.4.
Fixed
symbolmethod inMstExtendedField(#140)
0.1.4
Added
- Functional Expressions API
- Mathematical Syntax Tree, its interpreter and API
- String to MST parser (#120)
- MST to JVM bytecode translator (#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 }(#125) - Interface
NumericAlgebrawherenumberoperation is available to convert numbers to algebraic elements - Inverse trigonometric functions support in ExtendedField (
asin,acos,atan) (#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
Changed
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(#114)- Gradle version: 6.3 -> 6.6
- Moved probability distributions to commons-rng and to
kmath-prob
Fixed
0.1.4-dev-8
- A lot of refactoring
- kmath-ast module with advanced expression generation and compilation.