diff --git a/README.md b/README.md
index 6ab51098d..b040d7aa2 100644
--- a/README.md
+++ b/README.md
@@ -173,6 +173,16 @@ One can still use generic algebras though.
> **Maturity**: PROTOTYPE
+* ### [kmath-gsl](kmath-gsl)
+> Linear Algebra classes implemented with GNU Scientific Library
+>
+> **Maturity**: PROTOTYPE
+>
+> **Features:**
+> - [matrix-contexts](kmath-gsl/src/nativeMain/kotlin/kscience/kmath/gsl/GslMatrixContext.kt) : Matrix Contexts over Double, Float and Complex implemented with GSL
+
+
+
* ### [kmath-histograms](kmath-histograms)
>
>
diff --git a/kmath-ast/README.md b/kmath-ast/README.md
index 33b118973..8499f7171 100644
--- a/kmath-ast/README.md
+++ b/kmath-ast/README.md
@@ -61,7 +61,7 @@ For example, the following builder:
RealField.mstInField { symbol("x") + 2 }.compile()
```
-… leads to generation of bytecode, which can be decompiled to the following Java class:
+… leads to generation of bytecode, which can be decompiled to the following Java class:
```java
package kscience.kmath.asm.generated;
diff --git a/kmath-gsl/README.md b/kmath-gsl/README.md
new file mode 100644
index 000000000..f77474710
--- /dev/null
+++ b/kmath-gsl/README.md
@@ -0,0 +1,44 @@
+# GNU Scientific Library Integration (`kmath-core`)
+
+This subproject implements the following features:
+
+ - [matrix-contexts](src/nativeMain/kotlin/kscience/kmath/gsl/GslMatrixContext.kt) : Matrix Contexts over Double, Float and Complex implemented with GSL
+
+
+> #### Artifact:
+>
+> This module artifact: `kscience.kmath:kmath-gsl:0.2.0-dev-6`.
+>
+> Bintray release version: [ ![Download](https://api.bintray.com/packages/mipt-npm/kscience/kmath-gsl/images/download.svg) ](https://bintray.com/mipt-npm/kscience/kmath-gsl/_latestVersion)
+>
+> Bintray development version: [ ![Download](https://api.bintray.com/packages/mipt-npm/dev/kmath-gsl/images/download.svg) ](https://bintray.com/mipt-npm/dev/kmath-gsl/_latestVersion)
+>
+> **Gradle:**
+>
+> ```gradle
+> repositories {
+> maven { url "https://dl.bintray.com/kotlin/kotlin-eap" }
+> 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 'kscience.kmath:kmath-gsl:0.2.0-dev-6'
+> }
+> ```
+> **Gradle Kotlin DSL:**
+>
+> ```kotlin
+> repositories {
+> maven("https://dl.bintray.com/kotlin/kotlin-eap")
+> 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("kscience.kmath:kmath-gsl:0.2.0-dev-6")
+> }
+> ```
diff --git a/kmath-gsl/build.gradle.kts b/kmath-gsl/build.gradle.kts
index df405326f..8d8923c93 100644
--- a/kmath-gsl/build.gradle.kts
+++ b/kmath-gsl/build.gradle.kts
@@ -2,6 +2,7 @@
import kscience.kmath.gsl.codegen.matricesCodegen
import kscience.kmath.gsl.codegen.vectorsCodegen
+import ru.mipt.npm.gradle.Maturity
plugins {
id("ru.mipt.npm.mpp")
@@ -50,3 +51,15 @@ kotlin {
test.defaultSourceSet.dependsOn(nativeTest)
}
}
+
+readme {
+ description = "Linear Algebra classes implemented with GNU Scientific Library"
+ maturity = Maturity.PROTOTYPE
+ propertyByTemplate("artifact", rootProject.file("docs/templates/ARTIFACT-TEMPLATE.md"))
+
+ feature(
+ id = "matrix-contexts",
+ description = "Matrix Contexts over Double, Float and Complex implemented with GSL",
+ ref = "src/nativeMain/kotlin/kscience/kmath/gsl/GslMatrixContext.kt"
+ )
+}
diff --git a/kmath-gsl/docs/README-TEMPLATE.md b/kmath-gsl/docs/README-TEMPLATE.md
new file mode 100644
index 000000000..4b6630116
--- /dev/null
+++ b/kmath-gsl/docs/README-TEMPLATE.md
@@ -0,0 +1,7 @@
+# GNU Scientific Library Integration (`kmath-core`)
+
+This subproject implements the following features:
+
+${features}
+
+${artifact}
diff --git a/kmath-gsl/src/nativeMain/kotlin/kscience/kmath/gsl/GslMatrixContext.kt b/kmath-gsl/src/nativeMain/kotlin/kscience/kmath/gsl/GslMatrixContext.kt
index cc8bba662..1f8760231 100644
--- a/kmath-gsl/src/nativeMain/kotlin/kscience/kmath/gsl/GslMatrixContext.kt
+++ b/kmath-gsl/src/nativeMain/kotlin/kscience/kmath/gsl/GslMatrixContext.kt
@@ -388,8 +388,7 @@ public class GslComplexMatrixContext(internal val scope: AutofreeScope) :
}
override val determinant by lazy {
- gsl_linalg_complex_LU_det(lups.first.nativeHandle,
- lups.third).toKMath()
+ gsl_linalg_complex_LU_det(lups.first.nativeHandle, lups.third).toKMath()
}
override val inverse by lazy {