• v0.3.1 b5f85a6d86

    0.3.1 Stable

    spc-code released this 2023-05-12 22:19:48 +03:00 | 0 commits to master since this release

    Added

    • Wasm support for memory, core, complex and functions modules.
    • Generic builders for BufferND and MutableBufferND
    • NamedMatrix - matrix with symbol-based indexing
    • Expression with 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
    • LazyStructure deffered -> async to comply with coroutines code style
    • Default dot operation in tensor algebra no longer support broadcasting. Instead matmul operation is added to DoubleTensorAlgebra.
    • Multik went MPP

    Removed

    Downloads
  • v0.3.1-dev-RC e1d5409c0d

    0.3.1-dev-RC Pre-Release

    spc-code released this 2023-04-09 11:12:04 +03:00 | 192 commits to dev since this release

    Added

    • Wasm support for memory, core, complex and functions modules.
    • Generic builders for BufferND and MutableBufferND
    • NamedMatrix - matrix with symbol-based indexing
    • Expression with 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
    • LazyStructure deffered -> async to comply with coroutines code style
    • Default dot operation in tensor algebra no longer support broadcasting. Instead matmul operation is added to DoubleTensorAlgebra.
    • Multik went MPP

    Removed

    Downloads
  • v0.3.0 5bb895a653

    0.3.0 Stable

    altavir released this 2022-04-12 10:59:28 +03:00 | 325 commits to master since this release

    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)
    • @PerformancePitfall annotation to mark possibly slow API
    • Unified architecture for Integration and Optimization using features.
    • BigInt operation performance improvement and fixes by @zhelenskiy (#328)
    • Integration between MST and Symja IExpr
    • Complex power
    • Separate methods for UInt, Int and Number powers. NaN safety.
    • Tensorflow prototype
    • ValueAndErrorField
    • MST compilation to WASM: #286
    • Jafama integration: #176
    • contentEquals with 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 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
    • Rewrite kmath-ejml without ejml-simple artifact, support sparse matrices
    • Promote stability of kmath-ast and kmath-kotlingrad to EXPERIMENTAL.
    • ColumnarData returns nullable column
    • MST is made sealed interface
    • Replace MST.Symbolic by Symbol, Symbol now implements MST
    • Remove Any restriction on polynomials
    • Add out variance to type parameters of StructureND and its implementations where possible
    • Rename DifferentiableMstExpression to KotlingradExpression
    • FeatureSet now accepts only Feature. It is possible to override keys and use interfaces.
    • Use Symbol factory function instead of StringSymbol
    • 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
    • UnivariateDistribution renamed to Distribution1D
    • 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
    • contentEquals from 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
    Downloads
  • v0.3.0-dev-18 408443989c

    0.3.0-dev-18 Pre-Release

    altavir released this 2022-02-13 17:48:04 +03:00 | 525 commits to dev since this release

    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)
    • @PerformancePitfall annotation to mark possibly slow API
    • Unified architecture for Integration and Optimization using features.
    • BigInt operation performance improvement and fixes by @zhelenskiy (#328)
    • Integration between MST and Symja IExpr
    • 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 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
    • Rewrite kmath-ejml without ejml-simple artifact, support sparse matrices
    • Promote stability of kmath-ast and kmath-kotlingrad to EXPERIMENTAL.
    • ColumnarData returns nullable column
    • MST is made sealed interface
    • Replace MST.Symbolic by Symbol, Symbol now implements MST
    • Remove Any restriction on polynomials
    • Add out variance to type parameters of StructureND and its implementations where possible
    • Rename DifferentiableMstExpression to KotlingradExpression
    • FeatureSet now accepts only Feature. It is possible to override keys and use interfaces.
    • Use Symbol factory function instead of StringSymbol
    • 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
    • contentEquals from 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
    Downloads
  • v0.3.0-dev-8 50d55e9734

    0.3.0-dev-8 Pre-Release

    altavir released this 2021-05-08 17:16:29 +03:00 | 642 commits to master since this release

    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
    • contentEquals from Buffer. It moved to the companion.
    • MSTExpression
    • Expression algebra builders
    • Comples and Quaternion no longer are elements.

    Fixed

    • Ring inherits RingOperations, not GroupOperations
    Downloads
  • v0.2.0 16fcc1c412

    0.2.0 Stable

    altavir released this 2021-02-21 16:58:43 +03:00 | 1077 commits to master since this release

    [0.2.0]

    Added

    • fun annotation for SAM interfaces in library
    • Explicit public visibility for all public APIs
    • Better trigonometric and hyperbolic functions for AutoDiffField (https://github.com/mipt-npm/kmath/pull/140)
    • Automatic README generation for features (#139)
    • Native support for memory, core and dimensions
    • kmath-ejml to supply EJML SimpleMatrix wrapper (https://github.com/mipt-npm/kmath/pull/136)
    • A separate Symbol entity, which is used for global unbound symbol.
    • A Symbol indexing scope.
    • Basic optimization API for Commons-math.
    • Chi squared optimization for array-like data in CM
    • Fitting utility object in prob/stat
    • ND4J support module submitting NDStructure and NDAlgebra over INDArray
    • Coroutine-deterministic Monte-Carlo scope with a random number generator
    • Some minor utilities to kmath-for-real
    • Generic operation result parameter to MatrixContext
    • New MatrixFeature interfaces for matrix decompositions
    • Basic Quaternion vector support in kmath-complex.

    Changed

    • Package changed from scientifik to space.kscience
    • Gradle version: 6.6 -> 6.8.2
    • Minor exceptions refactor (throwing IllegalArgumentException by argument checks instead of IllegalStateException)
    • Polynomial secondary constructor made function
    • Kotlin version: 1.3.72 -> 1.4.30
    • kmath-ast doesn't depend on heavy kotlin-reflect library
    • Full autodiff refactoring based on Symbol
    • kmath-prob renamed to kmath-stat
    • Grid generators moved to kmath-for-real
    • Use Point<Double> instead of specialized type in kmath-for-real
    • Optimized dot product for buffer matrices moved to kmath-for-real
    • EjmlMatrix context is an object
    • Matrix LUP inverse renamed to inverseWithLup
    • NumericAlgebra moved outside of regular algebra chain (Ring no longer implements it).
    • Features moved to NDStructure and became transparent.
    • Capitalization of LUP in many names changed to Lup.
    • Refactored NDStructure algebra to be more simple, preferring under-the-hood conversion to explicit NDStructure types
    • Refactor histograms. They are marked as prototype
    • Complex and related features moved to a separate module kmath-complex
    • Refactor AlgebraElement
    • symbol method in Algebra renamed to bindSymbol to avoid ambiguity
    • Add out projection to Buffer generic

    Deprecated

    Removed

    • kmath-koma module because it doesn't support Kotlin 1.4.
    • Support of legacy JS backend (we will support only IR)
    • toGrid method.
    • Public visibility of BufferAccessor2D
    • Real class

    Fixed

    Downloads
  • v0.2.0-dev-5 2d946b10ae

    0.2.0-dev-5 Pre-Release

    altavir released this 2021-01-20 17:32:31 +03:00 | 1293 commits to master since this release

    Added

    • fun annotation for SAM interfaces in library
    • Explicit public visibility for all public APIs
    • Better trigonometric and hyperbolic functions for AutoDiffField (https://github.com/mipt-npm/kmath/pull/140)
    • Automatic README generation for features (#139)
    • Native support for memory, core and dimensions
    • kmath-ejml to supply EJML SimpleMatrix wrapper (https://github.com/mipt-npm/kmath/pull/136)
    • A separate Symbol entity, which is used for global unbound symbol.
    • A Symbol indexing scope.
    • Basic optimization API for Commons-math.
    • Chi squared optimization for array-like data in CM
    • Fitting utility object in prob/stat
    • ND4J support module submitting NDStructure and NDAlgebra over INDArray
    • Coroutine-deterministic Monte-Carlo scope with a random number generator
    • Some minor utilities to kmath-for-real
    • Generic operation result parameter to MatrixContext
    • New MatrixFeature interfaces for matrix decompositions

    Changed

    • Package changed from scientifik to kscience.kmath
    • Gradle version: 6.6 -> 6.8
    • Minor exceptions refactor (throwing IllegalArgumentException by argument checks instead of IllegalStateException)
    • Polynomial secondary constructor made function
    • Kotlin version: 1.3.72 -> 1.4.21
    • kmath-ast doesn't depend on heavy kotlin-reflect library
    • Full autodiff refactoring based on Symbol
    • kmath-prob renamed to kmath-stat
    • Grid generators moved to kmath-for-real
    • Use Point<Double> instead of specialized type in kmath-for-real
    • Optimized dot product for buffer matrices moved to kmath-for-real
    • EjmlMatrix context is an object
    • Matrix LUP inverse renamed to inverseWithLUP
    • NumericAlgebra moved outside of regular algebra chain (Ring no longer implements it).
    • Features moved to NDStructure and became transparent.

    Deprecated

    Removed

    • kmath-koma module because it doesn't support Kotlin 1.4.
    • Support of legacy JS backend (we will support only IR)
    • toGrid method.
    • Public visibility of BufferAccessor2D

    Fixed

    Security

    Downloads
  • v0.2.0-dev-2 1f6834d418

    0.2.0-dev-2 Pre-Release

    altavir released this 2020-09-27 20:05:31 +03:00 | 1678 commits to dev since this release

    Added

    • fun annotation for SAM interfaces in library
    • Explicit public visibility for all public APIs
    • Better trigonometric and hyperbolic functions for AutoDiffField (https://github.com/mipt-npm/kmath/pull/140).
    • Automatic README generation for features (#139)

    Changed

    • Package changed from scientifik to kscience.kmath.
    • Gradle version: 6.6 -> 6.6.1
    • Minor exceptions refactor (throwing IllegalArgumentException by argument checks instead of IllegalStateException)
    • Polynomial secondary constructor made function.
    • Kotlin version: 1.3.72 -> 1.4.20-M1

    Deprecated

    Removed

    • kmath-koma module because it doesn't support Kotlin 1.4.

    Fixed

    Downloads
  • v0.1.4 95d33c25d0

    0.1.4 Stable

    altavir released this 2020-09-14 22:49:29 +03:00 | 1563 commits to master since this release

    Added

    • Functional Expressions API
    • Mathematical Syntax Tree, its interpreter and API
    • String to MST parser (https://github.com/mipt-npm/kmath/pull/120)
    • MST to JVM bytecode translator (https://github.com/mipt-npm/kmath/pull/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 } (https://github.com/mipt-npm/kmath/pull/125)
    • Interface NumericAlgebra where number operation is available to convert numbers to algebraic elements
    • Inverse trigonometric functions support in ExtendedField (asin, acos, atan) (https://github.com/mipt-npm/kmath/pull/114)
    • New space extensions: average and averageWith
    • 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

    • readAsMemory now has throws IOException in JVM signature.
    • Several functions taking functional types were made inline.
    • Several functions taking functional types now have callsInPlace contracts.
    • BigInteger and BigDecimal algebra: JBigDecimalField has companion object with default math context; minor optimizations
    • power(T, Int) extension function has preconditions and supports Field<T>
    • Memory objects have more preconditions (overflow checking)
    • tg function is renamed to tan (https://github.com/mipt-npm/kmath/pull/114)
    • Gradle version: 6.3 -> 6.6
    • Moved probability distributions to commons-rng and to kmath-prob

    Fixed

    Downloads
  • 0.1.4-dev-8 896cc3dc51

    0.1.4-dev-8 Pre-Release

    altavir released this 2020-06-27 16:39:37 +03:00 | 1800 commits to dev since this release

    • A lot of refactoring
    • kmath-ast module with advanced expression generation and compilation.
    Downloads