diff --git a/README.md b/README.md
index 4d89337b5..8bc85bf2b 100644
--- a/README.md
+++ b/README.md
@@ -9,9 +9,9 @@ Bintray-dev: [ ![Download](https://api.bintray.com/packages/mipt-npm/dev/kmat
# KMath
Could be pronounced as `key-math`.
-The Kotlin MATHematics library is intended as a Kotlin-based analog to Python's `numpy` library. In contrast to `numpy` and `scipy` it is modular and has a lightweight core.
+The Kotlin MATHematics library was initially intended as a Kotlin-based analog to Python's `numpy` library. Later we found that kotlin is much more flexible language and allows superior architecture designs. In contrast to `numpy` and `scipy` it is modular and has a lightweight core. The `numpy`-like experience could be achieved with [kmath-for-real](/kmath-for-real) extension module.
-## Publications
+## Publications and talks
* [A conceptual article about context-oriented design](https://proandroiddev.com/an-introduction-context-oriented-programming-in-kotlin-2e79d316b0a2)
* [Another article about context-oriented design](https://proandroiddev.com/diving-deeper-into-context-oriented-programming-in-kotlin-3ecb4ec38814)
* [ACAT 2019 conference paper](https://aip.scitation.org/doi/abs/10.1063/1.5130103)
@@ -29,7 +29,7 @@ The Kotlin MATHematics library is intended as a Kotlin-based analog to Python's
## Features
-Actual feature list is [here](docs/features.md)
+Actual feature list is [here](/docs/features.md)
* **Algebra**
* Algebraic structures like rings, spaces and field (**TODO** add example to wiki)
@@ -68,43 +68,99 @@ can be used for a wide variety of purposes from high performance calculations to
## Modules
-### [examples](examples)
+
-### [kmath-ast](kmath-ast)
+* ### [examples](examples)
+>
+>
+> **Maturity**: EXPERIMENTAL
+
-### [kmath-commons](kmath-commons)
+* ### [kmath-ast](kmath-ast)
+>
+>
+> **Maturity**: EXPERIMENTAL
+
-### [kmath-core](kmath-core)
- - [algebras](kmath-core/src/commonMain/kotlin/kscience/kmath/operations/Algebra.kt) : Algebraic structures: contexts and elements
- - [nd](kmath-core/src/commonMain/kotlin/kscience/kmath/structures/NDStructure.kt) : Many-dimensional structures
- - [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
+* ### [kmath-commons](kmath-commons)
+>
+>
+> **Maturity**: EXPERIMENTAL
+
-### [kmath-coroutines](kmath-coroutines)
+* ### [kmath-core](kmath-core)
+> Core classes, algebra definitions, basic linear algebra
+>
+> **Maturity**: DEVELOPMENT
+>
+> **Features:**
+> - [algebras](kmath-core/src/commonMain/kotlin/kscience/kmath/operations/Algebra.kt) : Algebraic structures: contexts and elements
+> - [nd](kmath-core/src/commonMain/kotlin/kscience/kmath/structures/NDStructure.kt) : Many-dimensional structures
+> - [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
-### [kmath-dimensions](kmath-dimensions)
+
-### [kmath-for-real](kmath-for-real)
+* ### [kmath-coroutines](kmath-coroutines)
+>
+>
+> **Maturity**: EXPERIMENTAL
+
-### [kmath-functions](kmath-functions)
+* ### [kmath-dimensions](kmath-dimensions)
+>
+>
+> **Maturity**: EXPERIMENTAL
+
-### [kmath-geometry](kmath-geometry)
+* ### [kmath-for-real](kmath-for-real)
+>
+>
+> **Maturity**: EXPERIMENTAL
+
-### [kmath-histograms](kmath-histograms)
+* ### [kmath-functions](kmath-functions)
+>
+>
+> **Maturity**: EXPERIMENTAL
+
-### [kmath-memory](kmath-memory)
+* ### [kmath-geometry](kmath-geometry)
+>
+>
+> **Maturity**: EXPERIMENTAL
+
-### [kmath-prob](kmath-prob)
+* ### [kmath-histograms](kmath-histograms)
+>
+>
+> **Maturity**: EXPERIMENTAL
+
-### [kmath-viktor](kmath-viktor)
+* ### [kmath-memory](kmath-memory)
+>
+>
+> **Maturity**: EXPERIMENTAL
+
+* ### [kmath-prob](kmath-prob)
+>
+>
+> **Maturity**: EXPERIMENTAL
+
+
+* ### [kmath-viktor](kmath-viktor)
+>
+>
+> **Maturity**: EXPERIMENTAL
+
## Multi-platform support
-KMath is developed as a multi-platform library, which means that most of interfaces are declared in the [common module](kmath-core/src/commonMain). Implementation is also done in the common module wherever possible. In some cases, features are delegated to platform-specific implementations even if they could be done in the common module for performance reasons. Currently, the JVM is the main focus of development, however Kotlin/Native and Kotlin/JS contributions are also welcome.
+KMath is developed as a multi-platform library, which means that most of the interfaces are declared in the [common module](/kmath-core/src/commonMain). Implementation is also done in the common module wherever possible. In some cases, features are delegated to platform-specific implementations even if they could be done in the common module for performance reasons. Currently, the JVM is the main focus of development, however Kotlin/Native and Kotlin/JS contributions are also welcome.
## Performance
diff --git a/build.gradle.kts b/build.gradle.kts
index 81e0cb973..87862ae8e 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,5 +1,4 @@
plugins {
- //id("ru.mipt.npm.publish") apply false
id("ru.mipt.npm.project")
}
@@ -23,5 +22,5 @@ subprojects {
}
readme{
- readmeTemplate = file("docs/template/README-TEMPLATE.md")
-}
\ No newline at end of file
+ readmeTemplate = file("docs/templates/README-TEMPLATE.md")
+}
diff --git a/docs/templates/ARTIFACT-TEMPLATE.md b/docs/templates/ARTIFACT-TEMPLATE.md
index 1b354e022..8630b4b97 100644
--- a/docs/templates/ARTIFACT-TEMPLATE.md
+++ b/docs/templates/ARTIFACT-TEMPLATE.md
@@ -7,7 +7,7 @@
> repositories {
> maven { url 'https://dl.bintray.com/mipt-npm/kscience' }
> maven { url 'https://dl.bintray.com/mipt-npm/dev' }
-> maven { url https://dl.bintray.com/hotkeytlt/maven' }
+> maven { url 'https://dl.bintray.com/hotkeytlt/maven' }
> }
>
> dependencies {
diff --git a/kmath-commons/src/main/kotlin/kscience/kmath/commons/expressions/DiffExpression.kt b/kmath-commons/src/main/kotlin/kscience/kmath/commons/expressions/DiffExpression.kt
index 3ac908536..8a09cc793 100644
--- a/kmath-commons/src/main/kotlin/kscience/kmath/commons/expressions/DiffExpression.kt
+++ b/kmath-commons/src/main/kotlin/kscience/kmath/commons/expressions/DiffExpression.kt
@@ -94,7 +94,7 @@ public class DiffExpression(public val function: DerivativeStructureField.() ->
* TODO make result [DiffExpression]
*/
public fun derivative(orders: Map): Expression = Expression { arguments ->
- (DerivativeStructureField(orders.values.max() ?: 0, arguments)) { function().deriv(orders) }
+ (DerivativeStructureField(orders.values.maxOrNull() ?: 0, arguments)) { function().deriv(orders) }
}
//TODO add gradient and maybe other vector operators
diff --git a/kmath-core/build.gradle.kts b/kmath-core/build.gradle.kts
index 31a16e20b..d64a4d8a5 100644
--- a/kmath-core/build.gradle.kts
+++ b/kmath-core/build.gradle.kts
@@ -11,6 +11,7 @@ kotlin.sourceSets.commonMain {
readme {
description = "Core classes, algebra definitions, basic linear algebra"
maturity = ru.mipt.npm.gradle.Maturity.DEVELOPMENT
+ propertyByTemplate("artifact", rootProject.file("docs/templates/ARTIFACT-TEMPLATE.md"))
feature(
id = "algebras",
description = "Algebraic structures: contexts and elements",
diff --git a/kmath-core/docs/README-TEMPLATE.md b/kmath-core/docs/README-TEMPLATE.md
index 183f300ac..83d1ebdce 100644
--- a/kmath-core/docs/README-TEMPLATE.md
+++ b/kmath-core/docs/README-TEMPLATE.md
@@ -1,34 +1,7 @@
# The Core Module (`kmath-core`)
The core features of KMath:
-$features
-> #### Artifact:
-> This module artifact: `${group}:${name}:${version}`.
->
-> **Gradle:**
->
-> ```gradle
-> repositories {
-> maven { url 'https://dl.bintray.com/mipt-npm/kscience' }
-> maven { url 'https://dl.bintray.com/mipt-npm/dev' }
-> maven { url https://dl.bintray.com/hotkeytlt/maven' }
-> }
->
-> dependencies {
-> implementation '${group}:${name}:${version}'
-> }
-> ```
-> **Gradle Kotlin DSL:**
->
-> ```kotlin
-> repositories {
-> maven("https://dl.bintray.com/mipt-npm/kscience")
-> maven("https://dl.bintray.com/mipt-npm/dev")
-> maven("https://dl.bintray.com/hotkeytlt/maven")
-> }
->
-> dependencies {
-> implementation("${group}:${name}:${version}")
-> }
-> ```
+${features}
+
+${artifact}