diff --git a/CHANGELOG.md b/CHANGELOG.md
index f28041adf..2f802d85d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@
- 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
### Changed
- Package changed from `scientifik` to `kscience.kmath`.
@@ -21,6 +22,7 @@
- Kotlin version: 1.3.72 -> 1.4.20-M1
- `kmath-ast` doesn't depend on heavy `kotlin-reflect` library.
- Full autodiff refactoring based on `Symbol`
+- `kmath-prob` renamed to `kmath-stat`
### Deprecated
diff --git a/README.md b/README.md
index cbdf98afb..afab32dcf 100644
--- a/README.md
+++ b/README.md
@@ -99,7 +99,7 @@ can be used for a wide variety of purposes from high performance calculations to
> - [buffers](kmath-core/src/commonMain/kotlin/kscience/kmath/structures/Buffers.kt) : One-dimensional structure
> - [expressions](kmath-core/src/commonMain/kotlin/kscience/kmath/expressions) : Functional Expressions
> - [domains](kmath-core/src/commonMain/kotlin/kscience/kmath/domains) : Domains
-> - [autodif](kmath-core/src/commonMain/kotlin/kscience/kmath/misc/AutoDiff.kt) : Automatic differentiation
+> - [autodif](kmath-core/src/commonMain/kotlin/kscience/kmath/expressions/SimpleAutoDiff.kt) : Automatic differentiation
@@ -151,7 +151,7 @@ can be used for a wide variety of purposes from high performance calculations to
> **Maturity**: EXPERIMENTAL
-* ### [kmath-prob](kmath-prob)
+* ### [kmath-stat](kmath-stat)
>
>
> **Maturity**: EXPERIMENTAL
@@ -201,4 +201,4 @@ with the same artifact names.
## Contributing
-The project requires a lot of additional work. Please feel free to contribute in any way and propose new features.
+The project requires a lot of additional work. The most important thing we need is a feedback about what features are required the most. Feel free to open feature issues with requests. We are also welcome to code contributions, especially in issues marked as [waiting for a hero](https://github.com/mipt-npm/kmath/labels/waiting%20for%20a%20hero).
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
index 74b76d731..acb9f3b68 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -2,7 +2,7 @@ plugins {
id("ru.mipt.npm.project")
}
-val kmathVersion: String by extra("0.2.0-dev-2")
+val kmathVersion: String by extra("0.2.0-dev-3")
val bintrayRepo: String by extra("kscience")
val githubProject: String by extra("kmath")
diff --git a/examples/build.gradle.kts b/examples/build.gradle.kts
index 900da966b..9ba1ec5be 100644
--- a/examples/build.gradle.kts
+++ b/examples/build.gradle.kts
@@ -23,7 +23,7 @@ dependencies {
implementation(project(":kmath-core"))
implementation(project(":kmath-coroutines"))
implementation(project(":kmath-commons"))
- implementation(project(":kmath-prob"))
+ implementation(project(":kmath-stat"))
implementation(project(":kmath-viktor"))
implementation(project(":kmath-dimensions"))
implementation(project(":kmath-ejml"))
diff --git a/examples/src/main/kotlin/kscience/kmath/commons/prob/DistributionBenchmark.kt b/examples/src/main/kotlin/kscience/kmath/commons/prob/DistributionBenchmark.kt
index 9c0a01961..ef554aeff 100644
--- a/examples/src/main/kotlin/kscience/kmath/commons/prob/DistributionBenchmark.kt
+++ b/examples/src/main/kotlin/kscience/kmath/commons/prob/DistributionBenchmark.kt
@@ -4,7 +4,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async
import kotlinx.coroutines.runBlocking
import kscience.kmath.chains.BlockingRealChain
-import kscience.kmath.prob.*
+import kscience.kmath.stat.*
import org.apache.commons.rng.sampling.distribution.ZigguratNormalizedGaussianSampler
import org.apache.commons.rng.simple.RandomSource
import java.time.Duration
diff --git a/examples/src/main/kotlin/kscience/kmath/commons/prob/DistributionDemo.kt b/examples/src/main/kotlin/kscience/kmath/commons/prob/DistributionDemo.kt
index 7d53e5178..6146e17af 100644
--- a/examples/src/main/kotlin/kscience/kmath/commons/prob/DistributionDemo.kt
+++ b/examples/src/main/kotlin/kscience/kmath/commons/prob/DistributionDemo.kt
@@ -3,9 +3,9 @@ package kscience.kmath.commons.prob
import kotlinx.coroutines.runBlocking
import kscience.kmath.chains.Chain
import kscience.kmath.chains.collectWithState
-import kscience.kmath.prob.Distribution
-import kscience.kmath.prob.RandomGenerator
-import kscience.kmath.prob.normal
+import kscience.kmath.stat.Distribution
+import kscience.kmath.stat.RandomGenerator
+import kscience.kmath.stat.normal
private data class AveragingChainState(var num: Int = 0, var value: Double = 0.0)
diff --git a/kmath-commons/build.gradle.kts b/kmath-commons/build.gradle.kts
index f0b20e82f..6a44c92f2 100644
--- a/kmath-commons/build.gradle.kts
+++ b/kmath-commons/build.gradle.kts
@@ -6,7 +6,7 @@ description = "Commons math binding for kmath"
dependencies {
api(project(":kmath-core"))
api(project(":kmath-coroutines"))
- api(project(":kmath-prob"))
+ api(project(":kmath-stat"))
api(project(":kmath-functions"))
api("org.apache.commons:commons-math3:3.6.1")
}
diff --git a/kmath-commons/src/main/kotlin/kscience/kmath/commons/optimization/CMOptimizationProblem.kt b/kmath-commons/src/main/kotlin/kscience/kmath/commons/optimization/CMOptimizationProblem.kt
index 0d96faaa3..13f9af7bb 100644
--- a/kmath-commons/src/main/kotlin/kscience/kmath/commons/optimization/CMOptimizationProblem.kt
+++ b/kmath-commons/src/main/kotlin/kscience/kmath/commons/optimization/CMOptimizationProblem.kt
@@ -1,6 +1,10 @@
package kscience.kmath.commons.optimization
import kscience.kmath.expressions.*
+import kscience.kmath.stat.OptimizationFeature
+import kscience.kmath.stat.OptimizationProblem
+import kscience.kmath.stat.OptimizationProblemFactory
+import kscience.kmath.stat.OptimizationResult
import org.apache.commons.math3.optim.*
import org.apache.commons.math3.optim.nonlinear.scalar.GoalType
import org.apache.commons.math3.optim.nonlinear.scalar.MultivariateOptimizer
diff --git a/kmath-commons/src/main/kotlin/kscience/kmath/commons/optimization/cmFit.kt b/kmath-commons/src/main/kotlin/kscience/kmath/commons/optimization/cmFit.kt
index 24df3177d..42475db6c 100644
--- a/kmath-commons/src/main/kotlin/kscience/kmath/commons/optimization/cmFit.kt
+++ b/kmath-commons/src/main/kotlin/kscience/kmath/commons/optimization/cmFit.kt
@@ -4,7 +4,9 @@ import kscience.kmath.commons.expressions.DerivativeStructureField
import kscience.kmath.expressions.DifferentiableExpression
import kscience.kmath.expressions.Expression
import kscience.kmath.expressions.Symbol
-import kscience.kmath.prob.Fitting
+import kscience.kmath.stat.Fitting
+import kscience.kmath.stat.OptimizationResult
+import kscience.kmath.stat.optimizeWith
import kscience.kmath.structures.Buffer
import kscience.kmath.structures.asBuffer
import org.apache.commons.math3.analysis.differentiation.DerivativeStructure
diff --git a/kmath-commons/src/main/kotlin/kscience/kmath/commons/random/CMRandomGeneratorWrapper.kt b/kmath-commons/src/main/kotlin/kscience/kmath/commons/random/CMRandomGeneratorWrapper.kt
index 9600f6901..1eab5f2bd 100644
--- a/kmath-commons/src/main/kotlin/kscience/kmath/commons/random/CMRandomGeneratorWrapper.kt
+++ b/kmath-commons/src/main/kotlin/kscience/kmath/commons/random/CMRandomGeneratorWrapper.kt
@@ -1,6 +1,6 @@
package kscience.kmath.commons.random
-import kscience.kmath.prob.RandomGenerator
+import kscience.kmath.stat.RandomGenerator
public class CMRandomGeneratorWrapper(
public val factory: (IntArray) -> RandomGenerator,
diff --git a/kmath-commons/src/test/kotlin/kscience/kmath/commons/optimization/OptimizeTest.kt b/kmath-commons/src/test/kotlin/kscience/kmath/commons/optimization/OptimizeTest.kt
index 502ed40f8..4384a5124 100644
--- a/kmath-commons/src/test/kotlin/kscience/kmath/commons/optimization/OptimizeTest.kt
+++ b/kmath-commons/src/test/kotlin/kscience/kmath/commons/optimization/OptimizeTest.kt
@@ -2,10 +2,10 @@ package kscience.kmath.commons.optimization
import kscience.kmath.commons.expressions.DerivativeStructureExpression
import kscience.kmath.expressions.symbol
-import kscience.kmath.prob.Distribution
-import kscience.kmath.prob.Fitting
-import kscience.kmath.prob.RandomGenerator
-import kscience.kmath.prob.normal
+import kscience.kmath.stat.Distribution
+import kscience.kmath.stat.Fitting
+import kscience.kmath.stat.RandomGenerator
+import kscience.kmath.stat.normal
import kscience.kmath.structures.asBuffer
import org.junit.jupiter.api.Test
import kotlin.math.pow
diff --git a/kmath-core/README.md b/kmath-core/README.md
index 6935c0d3c..5501b1d7a 100644
--- a/kmath-core/README.md
+++ b/kmath-core/README.md
@@ -7,7 +7,7 @@ The core features of KMath:
- [buffers](src/commonMain/kotlin/kscience/kmath/structures/Buffers.kt) : One-dimensional structure
- [expressions](src/commonMain/kotlin/kscience/kmath/expressions) : Functional Expressions
- [domains](src/commonMain/kotlin/kscience/kmath/domains) : Domains
- - [autodif](src/commonMain/kotlin/kscience/kmath/misc/AutoDiff.kt) : Automatic differentiation
+ - [autodif](src/commonMain/kotlin/kscience/kmath/expressions/SimpleAutoDiff.kt) : Automatic differentiation
> #### Artifact:
diff --git a/kmath-core/build.gradle.kts b/kmath-core/build.gradle.kts
index bd254c39d..b0849eca5 100644
--- a/kmath-core/build.gradle.kts
+++ b/kmath-core/build.gradle.kts
@@ -41,6 +41,6 @@ readme {
feature(
id = "autodif",
description = "Automatic differentiation",
- ref = "src/commonMain/kotlin/kscience/kmath/misc/SimpleAutoDiff.kt"
+ ref = "src/commonMain/kotlin/kscience/kmath/expressions/SimpleAutoDiff.kt"
)
}
\ No newline at end of file
diff --git a/kmath-prob/build.gradle.kts b/kmath-stat/build.gradle.kts
similarity index 100%
rename from kmath-prob/build.gradle.kts
rename to kmath-stat/build.gradle.kts
diff --git a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/Distribution.kt b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/Distribution.kt
similarity index 98%
rename from kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/Distribution.kt
rename to kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/Distribution.kt
index 72660e20d..c4ceb29eb 100644
--- a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/Distribution.kt
+++ b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/Distribution.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import kscience.kmath.chains.Chain
import kscience.kmath.chains.collect
diff --git a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/FactorizedDistribution.kt b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/FactorizedDistribution.kt
similarity index 98%
rename from kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/FactorizedDistribution.kt
rename to kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/FactorizedDistribution.kt
index 4d713fc4e..1ed9deba9 100644
--- a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/FactorizedDistribution.kt
+++ b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/FactorizedDistribution.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import kscience.kmath.chains.Chain
import kscience.kmath.chains.SimpleChain
diff --git a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/Fitting.kt b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/Fitting.kt
similarity index 98%
rename from kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/Fitting.kt
rename to kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/Fitting.kt
index 97548d676..01fdf4c5e 100644
--- a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/Fitting.kt
+++ b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/Fitting.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import kscience.kmath.expressions.*
import kscience.kmath.operations.ExtendedField
diff --git a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/OptimizationProblem.kt b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/OptimizationProblem.kt
similarity index 98%
rename from kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/OptimizationProblem.kt
rename to kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/OptimizationProblem.kt
index c5fb3fa54..ea522bff9 100644
--- a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/OptimizationProblem.kt
+++ b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/OptimizationProblem.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.commons.optimization
+package kscience.kmath.stat
import kscience.kmath.expressions.DifferentiableExpression
import kscience.kmath.expressions.Expression
diff --git a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/RandomChain.kt b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/RandomChain.kt
similarity index 94%
rename from kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/RandomChain.kt
rename to kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/RandomChain.kt
index b4a80f6c5..0f10851b9 100644
--- a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/RandomChain.kt
+++ b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/RandomChain.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import kscience.kmath.chains.Chain
diff --git a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/RandomGenerator.kt b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/RandomGenerator.kt
similarity index 99%
rename from kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/RandomGenerator.kt
rename to kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/RandomGenerator.kt
index 2dd4ce51e..4486ae016 100644
--- a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/RandomGenerator.kt
+++ b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/RandomGenerator.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import kotlin.random.Random
diff --git a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/SamplerAlgebra.kt b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/SamplerAlgebra.kt
similarity index 97%
rename from kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/SamplerAlgebra.kt
rename to kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/SamplerAlgebra.kt
index e363ba30b..f416028a5 100644
--- a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/SamplerAlgebra.kt
+++ b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/SamplerAlgebra.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import kscience.kmath.chains.Chain
import kscience.kmath.chains.ConstantChain
diff --git a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/Statistic.kt b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/Statistic.kt
similarity index 99%
rename from kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/Statistic.kt
rename to kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/Statistic.kt
index 6720a3d7f..a4624fc21 100644
--- a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/Statistic.kt
+++ b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/Statistic.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Dispatchers
diff --git a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/UniformDistribution.kt b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/UniformDistribution.kt
similarity index 96%
rename from kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/UniformDistribution.kt
rename to kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/UniformDistribution.kt
index 8df2c01e1..1ba5c96f1 100644
--- a/kmath-prob/src/commonMain/kotlin/kscience/kmath/prob/UniformDistribution.kt
+++ b/kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/UniformDistribution.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import kscience.kmath.chains.Chain
import kscience.kmath.chains.SimpleChain
diff --git a/kmath-prob/src/jvmMain/kotlin/kscience/kmath/prob/RandomSourceGenerator.kt b/kmath-stat/src/jvmMain/kotlin/kscience/kmath/stat/RandomSourceGenerator.kt
similarity index 98%
rename from kmath-prob/src/jvmMain/kotlin/kscience/kmath/prob/RandomSourceGenerator.kt
rename to kmath-stat/src/jvmMain/kotlin/kscience/kmath/stat/RandomSourceGenerator.kt
index 18be6f019..5cba28a95 100644
--- a/kmath-prob/src/jvmMain/kotlin/kscience/kmath/prob/RandomSourceGenerator.kt
+++ b/kmath-stat/src/jvmMain/kotlin/kscience/kmath/stat/RandomSourceGenerator.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import org.apache.commons.rng.UniformRandomProvider
import org.apache.commons.rng.simple.RandomSource
diff --git a/kmath-prob/src/jvmMain/kotlin/kscience/kmath/prob/distributions.kt b/kmath-stat/src/jvmMain/kotlin/kscience/kmath/stat/distributions.kt
similarity index 99%
rename from kmath-prob/src/jvmMain/kotlin/kscience/kmath/prob/distributions.kt
rename to kmath-stat/src/jvmMain/kotlin/kscience/kmath/stat/distributions.kt
index ff20572cc..9a77b0bd2 100644
--- a/kmath-prob/src/jvmMain/kotlin/kscience/kmath/prob/distributions.kt
+++ b/kmath-stat/src/jvmMain/kotlin/kscience/kmath/stat/distributions.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import kscience.kmath.chains.BlockingIntChain
import kscience.kmath.chains.BlockingRealChain
diff --git a/kmath-prob/src/jvmTest/kotlin/kscience/kmath/prob/CommonsDistributionsTest.kt b/kmath-stat/src/jvmTest/kotlin/kscience/kmath/stat/CommonsDistributionsTest.kt
similarity index 96%
rename from kmath-prob/src/jvmTest/kotlin/kscience/kmath/prob/CommonsDistributionsTest.kt
rename to kmath-stat/src/jvmTest/kotlin/kscience/kmath/stat/CommonsDistributionsTest.kt
index 12a00684b..fe58fac08 100644
--- a/kmath-prob/src/jvmTest/kotlin/kscience/kmath/prob/CommonsDistributionsTest.kt
+++ b/kmath-stat/src/jvmTest/kotlin/kscience/kmath/stat/CommonsDistributionsTest.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import kotlinx.coroutines.flow.take
import kotlinx.coroutines.flow.toList
diff --git a/kmath-prob/src/jvmTest/kotlin/kscience/kmath/prob/SamplerTest.kt b/kmath-stat/src/jvmTest/kotlin/kscience/kmath/stat/SamplerTest.kt
similarity index 92%
rename from kmath-prob/src/jvmTest/kotlin/kscience/kmath/prob/SamplerTest.kt
rename to kmath-stat/src/jvmTest/kotlin/kscience/kmath/stat/SamplerTest.kt
index 75db5c402..afed4c5d0 100644
--- a/kmath-prob/src/jvmTest/kotlin/kscience/kmath/prob/SamplerTest.kt
+++ b/kmath-stat/src/jvmTest/kotlin/kscience/kmath/stat/SamplerTest.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import kotlinx.coroutines.runBlocking
import kotlin.test.Test
diff --git a/kmath-prob/src/jvmTest/kotlin/kscience/kmath/prob/StatisticTest.kt b/kmath-stat/src/jvmTest/kotlin/kscience/kmath/stat/StatisticTest.kt
similarity index 96%
rename from kmath-prob/src/jvmTest/kotlin/kscience/kmath/prob/StatisticTest.kt
rename to kmath-stat/src/jvmTest/kotlin/kscience/kmath/stat/StatisticTest.kt
index 22ca472a8..5cee4d172 100644
--- a/kmath-prob/src/jvmTest/kotlin/kscience/kmath/prob/StatisticTest.kt
+++ b/kmath-stat/src/jvmTest/kotlin/kscience/kmath/stat/StatisticTest.kt
@@ -1,4 +1,4 @@
-package kscience.kmath.prob
+package kscience.kmath.stat
import kotlinx.coroutines.flow.drop
import kotlinx.coroutines.flow.first
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 0f549f9ab..fa9edcf22 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -34,7 +34,7 @@ include(
":kmath-histograms",
":kmath-commons",
":kmath-viktor",
- ":kmath-prob",
+ ":kmath-stat",
":kmath-dimensions",
":kmath-for-real",
":kmath-geometry",