diff --git a/build.gradle b/build.gradle
index 36597be..efac67e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -9,14 +9,13 @@ buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.8"
+ classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.+"
}
}
plugins {
id 'com.jfrog.bintray' version '1.6'
id 'me.champeau.gradle.jmh' version '0.3.1'
- id 'org.ajoberstar.github-pages' version '1.5.0'
}
apply plugin: 'cpp'
@@ -142,6 +141,8 @@ dependencies {
dokka {
moduleName = "$version"
+ outputFormat = 'gfm'
+ outputDirectory = "$rootDir/docs"
linkMapping {
dir = 'src/main/kotlin'
@@ -150,14 +151,6 @@ dokka {
}
}
-githubPages {
- repoUri = 'git@github.com:jetbrains-research/viktor'
-
- pages {
- from (dokka.outputs.files)
- }
-}
-
test {
dependsOn 'buildAllVariants'
systemProperty 'java.library.path', "$buildDir/libs"
diff --git a/docs/0.3.2/alltypes/index.md b/docs/0.3.2/alltypes/index.md
new file mode 100644
index 0000000..da331c0
--- /dev/null
+++ b/docs/0.3.2/alltypes/index.md
@@ -0,0 +1,20 @@
+
+
+### All Types
+
+| Name | Summary |
+|---|---|
+| [org.jetbrains.bio.viktor.DenseVector](../org.jetbrains.bio.viktor/-dense-vector/index.md) | A contiguous strided vector. |
+| [kotlin.Double](../org.jetbrains.bio.viktor/kotlin.-double/index.md) (extensions in package org.jetbrains.bio.viktor) | |
+| [kotlin.DoubleArray](../org.jetbrains.bio.viktor/kotlin.-double-array/index.md) (extensions in package org.jetbrains.bio.viktor) | |
+| [org.jetbrains.bio.viktor.FlatMatrixOps](../org.jetbrains.bio.viktor/-flat-matrix-ops/index.md) | A common interface for whole-matrix operations. |
+| [org.jetbrains.bio.viktor.KahanSum](../org.jetbrains.bio.viktor/-kahan-sum/index.md) | Kahan-Babuska summation. |
+| [org.jetbrains.bio.viktor.LargeDenseVector](../org.jetbrains.bio.viktor/-large-dense-vector/index.md) | A contiguous vector of size at least `[DenseVector.DENSE_SPLIT_SIZE] + 1`. |
+| [org.jetbrains.bio.viktor.NativeSpeedups](../org.jetbrains.bio.viktor/-native-speedups/index.md) | |
+| [org.jetbrains.bio.viktor.ResourceLibrary](../org.jetbrains.bio.viktor/-resource-library/index.md) | |
+| [org.jetbrains.bio.viktor.SmallDenseVector](../org.jetbrains.bio.viktor/-small-dense-vector/index.md) | A contiguous strided vector of size at most [DenseVector.DENSE_SPLIT_SIZE](../org.jetbrains.bio.viktor/-dense-vector/-d-e-n-s-e_-s-p-l-i-t_-s-i-z-e.md). |
+| [org.jetbrains.bio.viktor.StridedMatrix](../org.jetbrains.bio.viktor/-strided-matrix/index.md) | A strided matrix stored in a flat [DoubleArray](#). |
+| [org.jetbrains.bio.viktor.StridedMatrix2](../org.jetbrains.bio.viktor/-strided-matrix2/index.md) | A specialization of [StridedMatrix](../org.jetbrains.bio.viktor/-strided-matrix/index.md) for 2-D data. |
+| [org.jetbrains.bio.viktor.StridedMatrix3](../org.jetbrains.bio.viktor/-strided-matrix3/index.md) | A specialization of [StridedMatrix](../org.jetbrains.bio.viktor/-strided-matrix/index.md) for 3-D data. |
+| [org.jetbrains.bio.viktor.StridedVector](../org.jetbrains.bio.viktor/-strided-vector/index.md) | A strided vector stored in a [DoubleArray](#). |
+| [org.jetbrains.bio.viktor._I](../org.jetbrains.bio.viktor/_-i.md) | A special object used to denote all indices. |
diff --git a/docs/0.3.2/index.md b/docs/0.3.2/index.md
new file mode 100644
index 0000000..d0b23fd
--- /dev/null
+++ b/docs/0.3.2/index.md
@@ -0,0 +1,11 @@
+[0.3.2](.)
+
+### Packages
+
+| Name | Summary |
+|---|---|
+| [org.jetbrains.bio.viktor](org.jetbrains.bio.viktor/index.md) | |
+
+### Index
+
+[All Types](alltypes/index.md)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/-d-e-n-s-e_-s-p-l-i-t_-s-i-z-e.md b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/-d-e-n-s-e_-s-p-l-i-t_-s-i-z-e.md
new file mode 100644
index 0000000..faed92c
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/-d-e-n-s-e_-s-p-l-i-t_-s-i-z-e.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [DenseVector](index.md) / [DENSE_SPLIT_SIZE](.)
+
+# DENSE_SPLIT_SIZE
+
+`const val DENSE_SPLIT_SIZE: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L32)
+
+We only use SIMD operations on vectors larger than the split boundary.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/-init-.md b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/-init-.md
new file mode 100644
index 0000000..d64d422
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/-init-.md
@@ -0,0 +1,14 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [DenseVector](index.md) / [<init>](.)
+
+# <init>
+
+`protected DenseVector(data: DoubleArray, offset: Int, size: Int)`
+
+A contiguous strided vector.
+
+**Author**
+Sergei Lebedev
+
+**Since**
+0.1.0
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/copy-to.md b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/copy-to.md
new file mode 100644
index 0000000..b0391e8
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/copy-to.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [DenseVector](index.md) / [copyTo](.)
+
+# copyTo
+
+`open fun copyTo(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L17)
+
+Overrides [StridedVector.copyTo](../-strided-vector/copy-to.md)
+
+Copies the elements in this vector to [other](copy-to.md#org.jetbrains.bio.viktor.DenseVector$copyTo(org.jetbrains.bio.viktor.StridedVector)/other).
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/fill.md b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/fill.md
new file mode 100644
index 0000000..c8b37b9
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/fill.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [DenseVector](index.md) / [fill](.)
+
+# fill
+
+`open fun fill(init: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L13)
+
+Overrides [StridedVector.fill](../-strided-vector/fill.md)
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/index.md
new file mode 100644
index 0000000..4f01e42
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/index.md
@@ -0,0 +1,115 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [DenseVector](.)
+
+# DenseVector
+
+`open class DenseVector : `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L9)
+
+A contiguous strided vector.
+
+**Author**
+Sergei Lebedev
+
+**Since**
+0.1.0
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `DenseVector(data: DoubleArray, offset: Int, size: Int)`
A contiguous strided vector. |
+
+### Inherited Properties
+
+| Name | Summary |
+|---|---|
+| [T](../-strided-vector/-t.md) | `val T: `[`StridedMatrix2`](../-strided-matrix2/index.md)
An alias for [transpose](../-strided-vector/transpose.md). |
+| [data](../-strided-vector/data.md) | `val data: DoubleArray`
Raw data array. |
+| [indices](../-strided-vector/indices.md) | `val indices: IntRange` |
+| [offset](../-strided-vector/offset.md) | `val offset: Int`
Offset of the first vector element in the raw data array. |
+| [size](../-strided-vector/size.md) | `val size: Int`
Number of elements in the raw data array to use. |
+| [stride](../-strided-vector/stride.md) | `val stride: Int`
Indexing step. |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [copyTo](copy-to.md) | `open fun copyTo(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit`
Copies the elements in this vector to [other](copy-to.md#org.jetbrains.bio.viktor.DenseVector$copyTo(org.jetbrains.bio.viktor.StridedVector)/other). |
+| [fill](fill.md) | `open fun fill(init: Double): Unit` |
+| [toArray](to-array.md) | `open fun toArray(): ` |
+| [unsafeIndex](unsafe-index.md) | `open fun unsafeIndex(pos: Int): Int` |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [append](../-strided-vector/append.md) | `fun append(other: `[`StridedVector`](../-strided-vector/index.md)`): `[`StridedVector`](../-strided-vector/index.md)
Appends this vector to another vector. |
+| [contains](../-strided-vector/contains.md) | `operator fun contains(other: Double): Boolean` |
+| [copy](../-strided-vector/copy.md) | `fun copy(): `[`StridedVector`](../-strided-vector/index.md)
Returns a copy of the elements in this vector. |
+| [cumSum](../-strided-vector/cum-sum.md) | `open fun cumSum(): Unit`
Computes cumulative sum of the elements. |
+| [div](../-strided-vector/div.md) | `operator fun div(other: `[`StridedVector`](../-strided-vector/index.md)`): `
`operator fun div(update: Double): ` |
+| [divAssign](../-strided-vector/div-assign.md) | `open operator fun divAssign(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit`
`open operator fun divAssign(update: Double): Unit` |
+| [dot](../-strided-vector/dot.md) | `infix fun dot(other: ShortArray): Double`
`infix fun dot(other: IntArray): Double`
`infix fun dot(other: DoubleArray): Double`
Computes a dot product of this vector with an array.`open infix fun dot(other: `[`StridedVector`](../-strided-vector/index.md)`): Double`
Computes a dot product between the two vectors. |
+| [equals](../-strided-vector/equals.md) | `open fun equals(other: Any?): Boolean` |
+| [exp](../-strided-vector/exp.md) | `fun exp(): ` |
+| [expInPlace](../-strided-vector/exp-in-place.md) | `open fun expInPlace(): Unit`
Computes the exponent of each element of this vector. |
+| [expm1](../-strided-vector/expm1.md) | `fun expm1(): ` |
+| [expm1InPlace](../-strided-vector/expm1-in-place.md) | `open fun expm1InPlace(): Unit`
Computes exp(x) - 1 for each element of this vector. |
+| [get](../-strided-vector/get.md) | `operator fun get(pos: Int): Double` |
+| [hashCode](../-strided-vector/hash-code.md) | `open fun hashCode(): Int` |
+| [isEmpty](../-strided-vector/is-empty.md) | `fun isEmpty(): Boolean` |
+| [isNotEmpty](../-strided-vector/is-not-empty.md) | `fun isNotEmpty(): Boolean` |
+| [iterator](../-strided-vector/iterator.md) | `operator fun iterator(): DoubleIterator`
Creates an iterator over the elements of the array. |
+| [log](../-strided-vector/log.md) | `fun log(): ` |
+| [log1p](../-strided-vector/log1p.md) | `fun log1p(): ` |
+| [log1pInPlace](../-strided-vector/log1p-in-place.md) | `open fun log1pInPlace(): Unit`
Computes log(1 + x) for each element of this vector. |
+| [logAddExp](../-strided-vector/log-add-exp.md) | `infix fun logAddExp(other: `[`StridedVector`](../-strided-vector/index.md)`): `
`open fun logAddExp(other: `[`StridedVector`](../-strided-vector/index.md)`, dst: `[`StridedVector`](../-strided-vector/index.md)`): Unit` |
+| [logInPlace](../-strided-vector/log-in-place.md) | `open fun logInPlace(): Unit`
Computes the natural log of each element of this vector. |
+| [logRescale](../-strided-vector/log-rescale.md) | `open fun logRescale(): Unit`
Rescales the element so that the exponent of the sum is 1.0. |
+| [logSumExp](../-strided-vector/log-sum-exp.md) | `open fun logSumExp(): Double`
Computes |
+| [max](../-strided-vector/max.md) | `open fun max(): Double`
Returns the maximum element. |
+| [mean](../-strided-vector/mean.md) | `open fun mean(): Double`
Computes the mean of the elements. |
+| [min](../-strided-vector/min.md) | `open fun min(): Double`
Returns the minimum element. |
+| [minus](../-strided-vector/minus.md) | `operator fun minus(other: `[`StridedVector`](../-strided-vector/index.md)`): `
`operator fun minus(update: Double): ` |
+| [minusAssign](../-strided-vector/minus-assign.md) | `open operator fun minusAssign(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit`
`open operator fun minusAssign(update: Double): Unit` |
+| [plus](../-strided-vector/plus.md) | `operator fun plus(other: `[`StridedVector`](../-strided-vector/index.md)`): `
`operator fun plus(update: Double): ` |
+| [plusAssign](../-strided-vector/plus-assign.md) | `open operator fun plusAssign(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit`
`open operator fun plusAssign(update: Double): Unit` |
+| [rescale](../-strided-vector/rescale.md) | `fun rescale(): Unit`
Rescales the elements so that the sum is 1.0. |
+| [reverse](../-strided-vector/reverse.md) | `fun reverse(): Unit` |
+| [sd](../-strided-vector/sd.md) | `open fun sd(): Double`
Computes the unbiased standard deviation of the elements. |
+| [set](../-strided-vector/set.md) | `operator fun set(pos: Int, value: Double): Unit`
`operator fun set(any: `[`_I`](../_-i.md)`, init: Double): Unit`
`operator fun set(any: `[`_I`](../_-i.md)`, other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` |
+| [slice](../-strided-vector/slice.md) | `fun slice(from: Int, to: Int = size): `[`StridedVector`](../-strided-vector/index.md)
Creates a sliced view of this vector in O(1) time. |
+| [sum](../-strided-vector/sum.md) | `open fun sum(): Double`
Returns the sum of the elements using balanced summation. |
+| [times](../-strided-vector/times.md) | `operator fun times(other: `[`StridedVector`](../-strided-vector/index.md)`): `
`operator fun times(update: Double): ` |
+| [timesAssign](../-strided-vector/times-assign.md) | `open operator fun timesAssign(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit`
`open operator fun timesAssign(update: Double): Unit` |
+| [toString](../-strided-vector/to-string.md) | `fun toString(maxDisplay: Int, format: `[`DecimalFormat`](http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html)` = DecimalFormat("#.####")): String`
`open fun toString(): String` |
+| [transpose](../-strided-vector/transpose.md) | `fun transpose(): `[`StridedMatrix2`](../-strided-matrix2/index.md)
Constructs a column-vector view of this vector in O(1) time. |
+| [unaryMinus](../-strided-vector/unary-minus.md) | `open operator fun unaryMinus(): `[`StridedVector`](../-strided-vector/index.md) |
+| [unaryPlus](../-strided-vector/unary-plus.md) | `operator fun unaryPlus(): `[`StridedVector`](../-strided-vector/index.md) |
+
+### Companion Object Properties
+
+| Name | Summary |
+|---|---|
+| [DENSE_SPLIT_SIZE](-d-e-n-s-e_-s-p-l-i-t_-s-i-z-e.md) | `const val DENSE_SPLIT_SIZE: Int`
We only use SIMD operations on vectors larger than the split boundary. |
+
+### Extension Functions
+
+| Name | Summary |
+|---|---|
+| [argMax](../arg-max.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.argMax(): Int`
Returns the index of the maxmimum element. |
+| [argMin](../arg-min.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.argMin(): Int`
Returns the index of the minimum element. |
+| [argSort](../arg-sort.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.argSort(reverse: Boolean = false): IntArray`
Returns a permutation of indices which makes the vector sorted. |
+| [partition](../partition.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.partition(p: Int): Unit`
Partitions the vector. |
+| [quantile](../quantile.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.quantile(q: Double = 0.5, randomGenerator: RandomGenerator = DEFAULT_RANDOM): Double`
Computes the [q](../quantile.md#org.jetbrains.bio.viktor$quantile(org.jetbrains.bio.viktor.StridedVector, kotlin.Double, org.apache.commons.math3.random.RandomGenerator)/q)-th order statistic over this vector. |
+| [reorder](../reorder.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.reorder(indices: IntArray): Unit`
Applies a given permutation of indices to the elements in the vector. |
+| [reshape](../reshape.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.reshape(depth: Int, numRows: Int, numColumns: Int): `[`StridedMatrix3`](../-strided-matrix3/index.md)
`fun `[`StridedVector`](../-strided-vector/index.md)`.reshape(numRows: Int, numColumns: Int): `[`StridedMatrix2`](../-strided-matrix2/index.md)
Reshapes this vector into a matrix in row-major order. |
+| [searchSorted](../search-sorted.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.searchSorted(target: Double): Int`
Returns the insertion index of [target](../search-sorted.md#org.jetbrains.bio.viktor$searchSorted(org.jetbrains.bio.viktor.StridedVector, kotlin.Double)/target) into a sorted vector. |
+| [shuffle](../shuffle.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.shuffle(randomGenerator: RandomGenerator = DEFAULT_RANDOM): Unit`
Randomly permutes the elements of this vector. |
+| [sort](../sort.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.sort(reverse: Boolean = false): Unit`
Sorts the elements in this vector in in descending order. |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [LargeDenseVector](../-large-dense-vector/index.md) | `class LargeDenseVector : DenseVector`
A contiguous vector of size at least `[DenseVector.DENSE_SPLIT_SIZE] + 1`. |
+| [SmallDenseVector](../-small-dense-vector/index.md) | `class SmallDenseVector : DenseVector`
A contiguous strided vector of size at most [DenseVector.DENSE_SPLIT_SIZE](-d-e-n-s-e_-s-p-l-i-t_-s-i-z-e.md). |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/to-array.md b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/to-array.md
new file mode 100644
index 0000000..bed2506
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/to-array.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [DenseVector](index.md) / [toArray](.)
+
+# toArray
+
+`open fun toArray(): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L26)
+
+Overrides [StridedVector.toArray](../-strided-vector/to-array.md)
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/unsafe-index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/unsafe-index.md
new file mode 100644
index 0000000..4ec06c3
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-dense-vector/unsafe-index.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [DenseVector](index.md) / [unsafeIndex](.)
+
+# unsafeIndex
+
+`protected open fun unsafeIndex(pos: Int): Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L11)
+
+Overrides [StridedVector.unsafeIndex](../-strided-vector/unsafe-index.md)
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/arg-max.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/arg-max.md
new file mode 100644
index 0000000..d1501b7
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/arg-max.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [argMax](.)
+
+# argMax
+
+`open fun argMax(): Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L88)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/arg-min.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/arg-min.md
new file mode 100644
index 0000000..d2ed5d2
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/arg-min.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [argMin](.)
+
+# argMin
+
+`open fun argMin(): Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L92)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/check-dimensions.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/check-dimensions.md
new file mode 100644
index 0000000..eb7c6cb
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/check-dimensions.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [checkDimensions](.)
+
+# checkDimensions
+
+`abstract fun checkDimensions(other: T): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L78)
+
+Ensures a given matrix has the same dimensions as this matrix.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/copy.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/copy.md
new file mode 100644
index 0000000..27a3645
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/copy.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [copy](.)
+
+# copy
+
+`abstract fun copy(): T` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L75)
+
+Returns the copy of this matrix.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/div-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/div-assign.md
new file mode 100644
index 0000000..0e8b7ed
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/div-assign.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [divAssign](.)
+
+# divAssign
+
+`open operator fun divAssign(other: T): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L172)
+`open operator fun divAssign(update: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L179)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/div.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/div.md
new file mode 100644
index 0000000..4ee7a3e
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/div.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [div](.)
+
+# div
+
+`open operator fun div(other: T): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L170)
+`open operator fun div(update: Double): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L177)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/exp-in-place.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/exp-in-place.md
new file mode 100644
index 0000000..8400217
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/exp-in-place.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [expInPlace](.)
+
+# expInPlace
+
+`open fun expInPlace(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L98)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/exp.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/exp.md
new file mode 100644
index 0000000..e31bf58
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/exp.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [exp](.)
+
+# exp
+
+`open fun exp(): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L100)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/expm1-in-place.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/expm1-in-place.md
new file mode 100644
index 0000000..4bf867f
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/expm1-in-place.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [expm1InPlace](.)
+
+# expm1InPlace
+
+`open fun expm1InPlace(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L102)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/expm1.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/expm1.md
new file mode 100644
index 0000000..0ac17b6
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/expm1.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [expm1](.)
+
+# expm1
+
+`open fun expm1(): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L104)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/fill.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/fill.md
new file mode 100644
index 0000000..a392132
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/fill.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [fill](.)
+
+# fill
+
+`open fun fill(init: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L80)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/flatten.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/flatten.md
new file mode 100644
index 0000000..a6ebf8b
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/flatten.md
@@ -0,0 +1,10 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [flatten](.)
+
+# flatten
+
+`abstract fun flatten(): `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L72)
+
+Returns a flat view of this matrix.
+
+If the matrix is not dense the method must raise an error.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/index.md
new file mode 100644
index 0000000..a0be12b
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/index.md
@@ -0,0 +1,50 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](.)
+
+# FlatMatrixOps
+
+`interface FlatMatrixOps>` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L66)
+
+A common interface for whole-matrix operations.
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [argMax](arg-max.md) | `open fun argMax(): Int` |
+| [argMin](arg-min.md) | `open fun argMin(): Int` |
+| [checkDimensions](check-dimensions.md) | `abstract fun checkDimensions(other: T): Unit`
Ensures a given matrix has the same dimensions as this matrix. |
+| [copy](copy.md) | `abstract fun copy(): T`
Returns the copy of this matrix. |
+| [div](div.md) | `open operator fun div(other: T): `
`open operator fun div(update: Double): ` |
+| [divAssign](div-assign.md) | `open operator fun divAssign(other: T): Unit`
`open operator fun divAssign(update: Double): Unit` |
+| [exp](exp.md) | `open fun exp(): ` |
+| [expInPlace](exp-in-place.md) | `open fun expInPlace(): Unit` |
+| [expm1](expm1.md) | `open fun expm1(): ` |
+| [expm1InPlace](expm1-in-place.md) | `open fun expm1InPlace(): Unit` |
+| [fill](fill.md) | `open fun fill(init: Double): Unit` |
+| [flatten](flatten.md) | `abstract fun flatten(): `[`StridedVector`](../-strided-vector/index.md)
Returns a flat view of this matrix. |
+| [log](log.md) | `open fun log(): ` |
+| [log1p](log1p.md) | `open fun log1p(): ` |
+| [log1pInPlace](log1p-in-place.md) | `open fun log1pInPlace(): Unit` |
+| [logAddExp](log-add-exp.md) | `open infix fun logAddExp(other: T): T`
`open fun logAddExp(other: T, dst: T): Unit` |
+| [logInPlace](log-in-place.md) | `open fun logInPlace(): Unit` |
+| [logRescale](log-rescale.md) | `open fun logRescale(): Unit` |
+| [logSumExp](log-sum-exp.md) | `open fun logSumExp(): Double` |
+| [max](max.md) | `open fun max(): Double` |
+| [mean](mean.md) | `open fun mean(): Double` |
+| [min](min.md) | `open fun min(): Double` |
+| [minus](minus.md) | `open operator fun minus(other: T): `
`open operator fun minus(update: Double): ` |
+| [minusAssign](minus-assign.md) | `open operator fun minusAssign(other: T): Unit`
`open operator fun minusAssign(update: Double): Unit` |
+| [plus](plus.md) | `open operator fun plus(other: T): `
`open operator fun plus(update: Double): ` |
+| [plusAssign](plus-assign.md) | `open operator fun plusAssign(other: T): Unit`
`open operator fun plusAssign(update: Double): Unit` |
+| [sum](sum.md) | `open fun sum(): Double` |
+| [times](times.md) | `open operator fun times(other: T): `
`open operator fun times(update: Double): ` |
+| [timesAssign](times-assign.md) | `open operator fun timesAssign(other: T): Unit`
`open operator fun timesAssign(update: Double): Unit` |
+| [unaryMinus](unary-minus.md) | `open operator fun unaryMinus(): ` |
+| [unaryPlus](unary-plus.md) | `open operator fun unaryPlus(): FlatMatrixOps` |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [StridedMatrix2](../-strided-matrix2/index.md) | `class StridedMatrix2 : FlatMatrixOps<`[`StridedMatrix2`](../-strided-matrix2/index.md)`>`
A specialization of [StridedMatrix](../-strided-matrix/index.md) for 2-D data. |
+| [StridedMatrix3](../-strided-matrix3/index.md) | `class StridedMatrix3 : FlatMatrixOps<`[`StridedMatrix3`](../-strided-matrix3/index.md)`>`
A specialization of [StridedMatrix](../-strided-matrix/index.md) for 3-D data. |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log-add-exp.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log-add-exp.md
new file mode 100644
index 0000000..b9c8203
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log-add-exp.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [logAddExp](.)
+
+# logAddExp
+
+`open infix fun logAddExp(other: T): T` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L114)
+`open fun logAddExp(other: T, dst: T): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L116)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log-in-place.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log-in-place.md
new file mode 100644
index 0000000..c7f3f6e
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log-in-place.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [logInPlace](.)
+
+# logInPlace
+
+`open fun logInPlace(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L106)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log-rescale.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log-rescale.md
new file mode 100644
index 0000000..171fcfb
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log-rescale.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [logRescale](.)
+
+# logRescale
+
+`open fun logRescale(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L96)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log-sum-exp.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log-sum-exp.md
new file mode 100644
index 0000000..3fb1601
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log-sum-exp.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [logSumExp](.)
+
+# logSumExp
+
+`open fun logSumExp(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L94)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log.md
new file mode 100644
index 0000000..911063e
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [log](.)
+
+# log
+
+`open fun log(): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L108)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log1p-in-place.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log1p-in-place.md
new file mode 100644
index 0000000..0f9a98a
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log1p-in-place.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [log1pInPlace](.)
+
+# log1pInPlace
+
+`open fun log1pInPlace(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L110)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log1p.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log1p.md
new file mode 100644
index 0000000..d9ce1b1
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/log1p.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [log1p](.)
+
+# log1p
+
+`open fun log1p(): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L112)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/max.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/max.md
new file mode 100644
index 0000000..56e680e
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/max.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [max](.)
+
+# max
+
+`open fun max(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L86)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/mean.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/mean.md
new file mode 100644
index 0000000..8e5b759
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/mean.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [mean](.)
+
+# mean
+
+`open fun mean(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L82)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/min.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/min.md
new file mode 100644
index 0000000..eba9ee1
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/min.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [min](.)
+
+# min
+
+`open fun min(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L90)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/minus-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/minus-assign.md
new file mode 100644
index 0000000..1c5fae1
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/minus-assign.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [minusAssign](.)
+
+# minusAssign
+
+`open operator fun minusAssign(other: T): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L146)
+`open operator fun minusAssign(update: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L153)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/minus.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/minus.md
new file mode 100644
index 0000000..44ec5d7
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/minus.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [minus](.)
+
+# minus
+
+`open operator fun minus(other: T): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L144)
+`open operator fun minus(update: Double): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L151)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/plus-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/plus-assign.md
new file mode 100644
index 0000000..2450930
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/plus-assign.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [plusAssign](.)
+
+# plusAssign
+
+`open operator fun plusAssign(other: T): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L133)
+`open operator fun plusAssign(update: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L140)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/plus.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/plus.md
new file mode 100644
index 0000000..82346f3
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/plus.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [plus](.)
+
+# plus
+
+`open operator fun plus(other: T): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L131)
+`open operator fun plus(update: Double): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L138)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/sum.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/sum.md
new file mode 100644
index 0000000..b90ecb2
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/sum.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [sum](.)
+
+# sum
+
+`open fun sum(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L84)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/times-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/times-assign.md
new file mode 100644
index 0000000..c6c791b
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/times-assign.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [timesAssign](.)
+
+# timesAssign
+
+`open operator fun timesAssign(other: T): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L159)
+`open operator fun timesAssign(update: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L166)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/times.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/times.md
new file mode 100644
index 0000000..2dd10e4
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/times.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [times](.)
+
+# times
+
+`open operator fun times(other: T): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L157)
+`open operator fun times(update: Double): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L164)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/unary-minus.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/unary-minus.md
new file mode 100644
index 0000000..5076ab0
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/unary-minus.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [unaryMinus](.)
+
+# unaryMinus
+
+`open operator fun unaryMinus(): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L124)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/unary-plus.md b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/unary-plus.md
new file mode 100644
index 0000000..590f2cb
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-flat-matrix-ops/unary-plus.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [FlatMatrixOps](index.md) / [unaryPlus](.)
+
+# unaryPlus
+
+`open operator fun unaryPlus(): `[`FlatMatrixOps`](index.md)`` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L122)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/-init-.md b/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/-init-.md
new file mode 100644
index 0000000..d978eb1
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/-init-.md
@@ -0,0 +1,16 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [KahanSum](index.md) / [<init>](.)
+
+# <init>
+
+`KahanSum(accumulator: Double = 0.0)`
+
+Kahan-Babuska summation.
+
+See http://cage.ugent.be/~klein/papers/floating-point.pdf for details.
+
+**Author**
+Alexey Dievsky
+
+**Since**
+0.1.0
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/feed.md b/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/feed.md
new file mode 100644
index 0000000..c480b8f
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/feed.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [KahanSum](index.md) / [feed](.)
+
+# feed
+
+`fun feed(value: Double): `[`KahanSum`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/MoreMath.kt#L33)
+
+Supplies a number to be added to the accumulator.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/index.md
new file mode 100644
index 0000000..6bc8fc2
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/index.md
@@ -0,0 +1,29 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [KahanSum](.)
+
+# KahanSum
+
+`class KahanSum` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/MoreMath.kt#L29)
+
+Kahan-Babuska summation.
+
+See http://cage.ugent.be/~klein/papers/floating-point.pdf for details.
+
+**Author**
+Alexey Dievsky
+
+**Since**
+0.1.0
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `KahanSum(accumulator: Double = 0.0)`
Kahan-Babuska summation. |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [feed](feed.md) | `fun feed(value: Double): KahanSum`
Supplies a number to be added to the accumulator. |
+| [plusAssign](plus-assign.md) | `operator fun plusAssign(value: Double): Unit` |
+| [result](result.md) | `fun result(): Double`
Returns the sum accumulated so far. |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/plus-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/plus-assign.md
new file mode 100644
index 0000000..82d67db
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/plus-assign.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [KahanSum](index.md) / [plusAssign](.)
+
+# plusAssign
+
+`operator fun plusAssign(value: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/MoreMath.kt#L45)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/result.md b/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/result.md
new file mode 100644
index 0000000..7b5e398
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-kahan-sum/result.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [KahanSum](index.md) / [result](.)
+
+# result
+
+`fun result(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/MoreMath.kt#L50)
+
+Returns the sum accumulated so far.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/-init-.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/-init-.md
new file mode 100644
index 0000000..7379270
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/-init-.md
@@ -0,0 +1,14 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [<init>](.)
+
+# <init>
+
+`LargeDenseVector(data: DoubleArray, offset: Int, size: Int)`
+
+A contiguous vector of size at least `[DenseVector.DENSE_SPLIT_SIZE] + 1`.
+
+**Author**
+Sergei Lebedev
+
+**Since**
+0.1.0
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/cum-sum.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/cum-sum.md
new file mode 100644
index 0000000..9468035
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/cum-sum.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [cumSum](.)
+
+# cumSum
+
+`fun cumSum(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L68)
+
+Overrides [StridedVector.cumSum](../-strided-vector/cum-sum.md)
+
+Computes cumulative sum of the elements.
+
+The operation is done **in place**.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/div-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/div-assign.md
new file mode 100644
index 0000000..d51957f
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/div-assign.md
@@ -0,0 +1,13 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [divAssign](.)
+
+# divAssign
+
+`fun divAssign(update: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L167)
+
+Overrides [StridedVector.divAssign](../-strided-vector/div-assign.md)
+
+
+`fun divAssign(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L171)
+
+Overrides [StridedVector.divAssign](../-strided-vector/div-assign.md)
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/dot.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/dot.md
new file mode 100644
index 0000000..36e1890
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/dot.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [dot](.)
+
+# dot
+
+`fun dot(other: `[`StridedVector`](../-strided-vector/index.md)`): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L74)
+
+Overrides [StridedVector.dot](../-strided-vector/dot.md)
+
+Computes a dot product between the two vectors.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/exp-in-place.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/exp-in-place.md
new file mode 100644
index 0000000..1b6ef72
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/exp-in-place.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [expInPlace](.)
+
+# expInPlace
+
+`fun expInPlace(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L83)
+
+Overrides [StridedVector.expInPlace](../-strided-vector/exp-in-place.md)
+
+Computes the exponent of each element of this vector.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/expm1-in-place.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/expm1-in-place.md
new file mode 100644
index 0000000..db73c18
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/expm1-in-place.md
@@ -0,0 +1,15 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [expm1InPlace](.)
+
+# expm1InPlace
+
+`fun expm1InPlace(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L87)
+
+Overrides [StridedVector.expm1InPlace](../-strided-vector/expm1-in-place.md)
+
+Computes exp(x) - 1 for each element of this vector.
+
+Optimized for dense vectors.
+
+**Since**
+0.3.0
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/index.md
new file mode 100644
index 0000000..717bd31
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/index.md
@@ -0,0 +1,67 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](.)
+
+# LargeDenseVector
+
+`class LargeDenseVector : `[`DenseVector`](../-dense-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L59)
+
+A contiguous vector of size at least `[DenseVector.DENSE_SPLIT_SIZE] + 1`.
+
+**Author**
+Sergei Lebedev
+
+**Since**
+0.1.0
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `LargeDenseVector(data: DoubleArray, offset: Int, size: Int)`
A contiguous vector of size at least `[DenseVector.DENSE_SPLIT_SIZE] + 1`. |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [cumSum](cum-sum.md) | `fun cumSum(): Unit`
Computes cumulative sum of the elements. |
+| [divAssign](div-assign.md) | `fun divAssign(update: Double): Unit`
`fun divAssign(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` |
+| [dot](dot.md) | `fun dot(other: `[`StridedVector`](../-strided-vector/index.md)`): Double`
Computes a dot product between the two vectors. |
+| [expInPlace](exp-in-place.md) | `fun expInPlace(): Unit`
Computes the exponent of each element of this vector. |
+| [expm1InPlace](expm1-in-place.md) | `fun expm1InPlace(): Unit`
Computes exp(x) - 1 for each element of this vector. |
+| [log1pInPlace](log1p-in-place.md) | `fun log1pInPlace(): Unit`
Computes log(1 + x) for each element of this vector. |
+| [logAddExp](log-add-exp.md) | `fun logAddExp(other: `[`StridedVector`](../-strided-vector/index.md)`, dst: `[`StridedVector`](../-strided-vector/index.md)`): Unit` |
+| [logInPlace](log-in-place.md) | `fun logInPlace(): Unit`
Computes the natural log of each element of this vector. |
+| [logRescale](log-rescale.md) | `fun logRescale(): Unit`
Rescales the element so that the exponent of the sum is 1.0. |
+| [logSumExp](log-sum-exp.md) | `fun logSumExp(): Double`
Computes |
+| [max](max.md) | `fun max(): Double`
Returns the maximum element. |
+| [mean](mean.md) | `fun mean(): Double`
Computes the mean of the elements. |
+| [min](min.md) | `fun min(): Double`
Returns the minimum element. |
+| [minusAssign](minus-assign.md) | `fun minusAssign(update: Double): Unit`
`fun minusAssign(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` |
+| [plusAssign](plus-assign.md) | `fun plusAssign(update: Double): Unit`
`fun plusAssign(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` |
+| [sd](sd.md) | `fun sd(): Double`
Computes the unbiased standard deviation of the elements. |
+| [sum](sum.md) | `fun sum(): Double`
Returns the sum of the elements using balanced summation. |
+| [timesAssign](times-assign.md) | `fun timesAssign(update: Double): Unit`
`fun timesAssign(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` |
+| [unaryMinus](unary-minus.md) | `fun unaryMinus(): `[`StridedVector`](../-strided-vector/index.md) |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [copyTo](../-dense-vector/copy-to.md) | `open fun copyTo(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit`
Copies the elements in this vector to [other](../-dense-vector/copy-to.md#org.jetbrains.bio.viktor.DenseVector$copyTo(org.jetbrains.bio.viktor.StridedVector)/other). |
+| [fill](../-dense-vector/fill.md) | `open fun fill(init: Double): Unit` |
+| [toArray](../-dense-vector/to-array.md) | `open fun toArray(): ` |
+| [unsafeIndex](../-dense-vector/unsafe-index.md) | `open fun unsafeIndex(pos: Int): Int` |
+
+### Extension Functions
+
+| Name | Summary |
+|---|---|
+| [argMax](../arg-max.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.argMax(): Int`
Returns the index of the maxmimum element. |
+| [argMin](../arg-min.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.argMin(): Int`
Returns the index of the minimum element. |
+| [argSort](../arg-sort.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.argSort(reverse: Boolean = false): IntArray`
Returns a permutation of indices which makes the vector sorted. |
+| [partition](../partition.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.partition(p: Int): Unit`
Partitions the vector. |
+| [quantile](../quantile.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.quantile(q: Double = 0.5, randomGenerator: RandomGenerator = DEFAULT_RANDOM): Double`
Computes the [q](../quantile.md#org.jetbrains.bio.viktor$quantile(org.jetbrains.bio.viktor.StridedVector, kotlin.Double, org.apache.commons.math3.random.RandomGenerator)/q)-th order statistic over this vector. |
+| [reorder](../reorder.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.reorder(indices: IntArray): Unit`
Applies a given permutation of indices to the elements in the vector. |
+| [reshape](../reshape.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.reshape(depth: Int, numRows: Int, numColumns: Int): `[`StridedMatrix3`](../-strided-matrix3/index.md)
`fun `[`StridedVector`](../-strided-vector/index.md)`.reshape(numRows: Int, numColumns: Int): `[`StridedMatrix2`](../-strided-matrix2/index.md)
Reshapes this vector into a matrix in row-major order. |
+| [searchSorted](../search-sorted.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.searchSorted(target: Double): Int`
Returns the insertion index of [target](../search-sorted.md#org.jetbrains.bio.viktor$searchSorted(org.jetbrains.bio.viktor.StridedVector, kotlin.Double)/target) into a sorted vector. |
+| [shuffle](../shuffle.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.shuffle(randomGenerator: RandomGenerator = DEFAULT_RANDOM): Unit`
Randomly permutes the elements of this vector. |
+| [sort](../sort.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.sort(reverse: Boolean = false): Unit`
Sorts the elements in this vector in in descending order. |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log-add-exp.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log-add-exp.md
new file mode 100644
index 0000000..1153754
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log-add-exp.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [logAddExp](.)
+
+# logAddExp
+
+`fun logAddExp(other: `[`StridedVector`](../-strided-vector/index.md)`, dst: `[`StridedVector`](../-strided-vector/index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L105)
+
+Overrides [StridedVector.logAddExp](../-strided-vector/log-add-exp.md)
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log-in-place.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log-in-place.md
new file mode 100644
index 0000000..e2cb131
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log-in-place.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [logInPlace](.)
+
+# logInPlace
+
+`fun logInPlace(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L91)
+
+Overrides [StridedVector.logInPlace](../-strided-vector/log-in-place.md)
+
+Computes the natural log of each element of this vector.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log-rescale.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log-rescale.md
new file mode 100644
index 0000000..a49cb86
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log-rescale.md
@@ -0,0 +1,14 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [logRescale](.)
+
+# logRescale
+
+`fun logRescale(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L99)
+
+Overrides [StridedVector.logRescale](../-strided-vector/log-rescale.md)
+
+Rescales the element so that the exponent of the sum is 1.0.
+
+Optimized for dense vectors.
+
+The operation is done **in place**.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log-sum-exp.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log-sum-exp.md
new file mode 100644
index 0000000..795a0cd
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log-sum-exp.md
@@ -0,0 +1,14 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [logSumExp](.)
+
+# logSumExp
+
+`fun logSumExp(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L103)
+
+Overrides [StridedVector.logSumExp](../-strided-vector/log-sum-exp.md)
+
+Computes
+
+log(exp(v[0](#)) + ... + exp(v[size-1](#)))
+
+in a numerically stable way.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log1p-in-place.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log1p-in-place.md
new file mode 100644
index 0000000..ccaddbb
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/log1p-in-place.md
@@ -0,0 +1,15 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [log1pInPlace](.)
+
+# log1pInPlace
+
+`fun log1pInPlace(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L95)
+
+Overrides [StridedVector.log1pInPlace](../-strided-vector/log1p-in-place.md)
+
+Computes log(1 + x) for each element of this vector.
+
+Optimized for dense vectors.
+
+**Since**
+0.3.0
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/max.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/max.md
new file mode 100644
index 0000000..927ac6b
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/max.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [max](.)
+
+# max
+
+`fun max(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L72)
+
+Overrides [StridedVector.max](../-strided-vector/max.md)
+
+Returns the maximum element.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/mean.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/mean.md
new file mode 100644
index 0000000..13cc4bb
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/mean.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [mean](.)
+
+# mean
+
+`fun mean(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L62)
+
+Overrides [StridedVector.mean](../-strided-vector/mean.md)
+
+Computes the mean of the elements.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/min.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/min.md
new file mode 100644
index 0000000..12d6588
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/min.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [min](.)
+
+# min
+
+`fun min(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L70)
+
+Overrides [StridedVector.min](../-strided-vector/min.md)
+
+Returns the minimum element.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/minus-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/minus-assign.md
new file mode 100644
index 0000000..804e19d
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/minus-assign.md
@@ -0,0 +1,13 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [minusAssign](.)
+
+# minusAssign
+
+`fun minusAssign(update: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L138)
+
+Overrides [StridedVector.minusAssign](../-strided-vector/minus-assign.md)
+
+
+`fun minusAssign(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L142)
+
+Overrides [StridedVector.minusAssign](../-strided-vector/minus-assign.md)
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/plus-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/plus-assign.md
new file mode 100644
index 0000000..977cc28
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/plus-assign.md
@@ -0,0 +1,13 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [plusAssign](.)
+
+# plusAssign
+
+`fun plusAssign(update: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L123)
+
+Overrides [StridedVector.plusAssign](../-strided-vector/plus-assign.md)
+
+
+`fun plusAssign(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L127)
+
+Overrides [StridedVector.plusAssign](../-strided-vector/plus-assign.md)
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/sd.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/sd.md
new file mode 100644
index 0000000..e8d6344
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/sd.md
@@ -0,0 +1,15 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [sd](.)
+
+# sd
+
+`fun sd(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L64)
+
+Overrides [StridedVector.sd](../-strided-vector/sd.md)
+
+Computes the unbiased standard deviation of the elements.
+
+Optimized for dense vectors.
+
+**Since**
+0.3.0
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/sum.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/sum.md
new file mode 100644
index 0000000..f728148
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/sum.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [sum](.)
+
+# sum
+
+`fun sum(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L66)
+
+Overrides [StridedVector.sum](../-strided-vector/sum.md)
+
+Returns the sum of the elements using balanced summation.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/times-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/times-assign.md
new file mode 100644
index 0000000..4e63c4e
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/times-assign.md
@@ -0,0 +1,13 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [timesAssign](.)
+
+# timesAssign
+
+`fun timesAssign(update: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L153)
+
+Overrides [StridedVector.timesAssign](../-strided-vector/times-assign.md)
+
+
+`fun timesAssign(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L157)
+
+Overrides [StridedVector.timesAssign](../-strided-vector/times-assign.md)
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/unary-minus.md b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/unary-minus.md
new file mode 100644
index 0000000..f5c25d2
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-large-dense-vector/unary-minus.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [LargeDenseVector](index.md) / [unaryMinus](.)
+
+# unaryMinus
+
+`fun unaryMinus(): `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L117)
+
+Overrides [StridedVector.unaryMinus](../-strided-vector/unary-minus.md)
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/cum-sum.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/cum-sum.md
new file mode 100644
index 0000000..076848c
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/cum-sum.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [cumSum](.)
+
+# cumSum
+
+`external fun cumSum(source: DoubleArray, sourceOffset: Int, dest: DoubleArray, destOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L80)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/index.md
new file mode 100644
index 0000000..3ad2f72
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/index.md
@@ -0,0 +1,35 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](.)
+
+# NativeSpeedups
+
+`object NativeSpeedups` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L3)
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [cumSum](cum-sum.md) | `external fun cumSum(source: DoubleArray, sourceOffset: Int, dest: DoubleArray, destOffset: Int, length: Int): Unit` |
+| [sd](sd.md) | `external fun sd(values: DoubleArray, offset: Int, length: Int): Double` |
+| [sum](sum.md) | `external fun sum(values: DoubleArray, offset: Int, length: Int): Double` |
+| [unsafeDiv](unsafe-div.md) | `external fun unsafeDiv(src1: DoubleArray, srcOffset1: Int, src2: DoubleArray, srcOffset2: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeDivScalar](unsafe-div-scalar.md) | `external fun unsafeDivScalar(src1: DoubleArray, srcOffset1: Int, update: Double, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeDot](unsafe-dot.md) | `external fun unsafeDot(src1: DoubleArray, srcOffset1: Int, src2: DoubleArray, srcOffset2: Int, length: Int): Double` |
+| [unsafeExp](unsafe-exp.md) | `external fun unsafeExp(src: DoubleArray, srcOffset: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeExpm1](unsafe-expm1.md) | `external fun unsafeExpm1(src: DoubleArray, srcOffset: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeLog](unsafe-log.md) | `external fun unsafeLog(src: DoubleArray, srcOffset: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeLog1p](unsafe-log1p.md) | `external fun unsafeLog1p(src: DoubleArray, srcOffset: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeLogAddExp](unsafe-log-add-exp.md) | `external fun unsafeLogAddExp(src1: DoubleArray, srcOffset1: Int, src2: DoubleArray, srcOffset2: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeLogRescale](unsafe-log-rescale.md) | `external fun unsafeLogRescale(src: DoubleArray, srcOffset: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeLogSumExp](unsafe-log-sum-exp.md) | `external fun unsafeLogSumExp(src: DoubleArray, srcOffset: Int, length: Int): Double` |
+| [unsafeMax](unsafe-max.md) | `external fun unsafeMax(values: DoubleArray, offset: Int, length: Int): Double` |
+| [unsafeMin](unsafe-min.md) | `external fun unsafeMin(values: DoubleArray, offset: Int, length: Int): Double` |
+| [unsafeMinus](unsafe-minus.md) | `external fun unsafeMinus(src1: DoubleArray, srcOffset1: Int, src2: DoubleArray, srcOffset2: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeMinusScalar](unsafe-minus-scalar.md) | `external fun unsafeMinusScalar(src1: DoubleArray, srcOffset1: Int, update: Double, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeNegate](unsafe-negate.md) | `external fun unsafeNegate(src1: DoubleArray, srcOffset1: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafePlus](unsafe-plus.md) | `external fun unsafePlus(src1: DoubleArray, srcOffset1: Int, src2: DoubleArray, srcOffset2: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafePlusScalar](unsafe-plus-scalar.md) | `external fun unsafePlusScalar(src1: DoubleArray, srcOffset1: Int, update: Double, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeScalarDiv](unsafe-scalar-div.md) | `external fun unsafeScalarDiv(update: Double, src1: DoubleArray, srcOffset1: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeTimes](unsafe-times.md) | `external fun unsafeTimes(src1: DoubleArray, srcOffset1: Int, src2: DoubleArray, srcOffset2: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [unsafeTimesScalar](unsafe-times-scalar.md) | `external fun unsafeTimesScalar(src1: DoubleArray, srcOffset1: Int, update: Double, dst: DoubleArray, dstOffset: Int, length: Int): Unit` |
+| [weightedMean](weighted-mean.md) | `external fun weightedMean(values: DoubleArray, valuesOffset: Int, weights: DoubleArray, weightsOffset: Int, length: Int): Double` |
+| [weightedSum](weighted-sum.md) | `external fun weightedSum(values: DoubleArray, valuesOffset: Int, weights: DoubleArray, weightsOffset: Int, length: Int): Double` |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/sd.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/sd.md
new file mode 100644
index 0000000..f80a6ab
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/sd.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [sd](.)
+
+# sd
+
+`external fun sd(values: DoubleArray, offset: Int, length: Int): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L78)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/sum.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/sum.md
new file mode 100644
index 0000000..3fd1130
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/sum.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [sum](.)
+
+# sum
+
+`external fun sum(values: DoubleArray, offset: Int, length: Int): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L70)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-div-scalar.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-div-scalar.md
new file mode 100644
index 0000000..0e968c6
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-div-scalar.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeDivScalar](.)
+
+# unsafeDivScalar
+
+`external fun unsafeDivScalar(src1: DoubleArray, srcOffset1: Int, update: Double, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L36)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-div.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-div.md
new file mode 100644
index 0000000..9d28d33
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-div.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeDiv](.)
+
+# unsafeDiv
+
+`external fun unsafeDiv(src1: DoubleArray, srcOffset1: Int, src2: DoubleArray, srcOffset2: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L20)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-dot.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-dot.md
new file mode 100644
index 0000000..2b23dac
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-dot.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeDot](.)
+
+# unsafeDot
+
+`external fun unsafeDot(src1: DoubleArray, srcOffset1: Int, src2: DoubleArray, srcOffset2: Int, length: Int): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L67)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-exp.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-exp.md
new file mode 100644
index 0000000..bd74850
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-exp.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeExp](.)
+
+# unsafeExp
+
+`external fun unsafeExp(src: DoubleArray, srcOffset: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L46)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-expm1.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-expm1.md
new file mode 100644
index 0000000..f8aff9c
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-expm1.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeExpm1](.)
+
+# unsafeExpm1
+
+`external fun unsafeExpm1(src: DoubleArray, srcOffset: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L49)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log-add-exp.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log-add-exp.md
new file mode 100644
index 0000000..ee3a8ca
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log-add-exp.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeLogAddExp](.)
+
+# unsafeLogAddExp
+
+`external fun unsafeLogAddExp(src1: DoubleArray, srcOffset1: Int, src2: DoubleArray, srcOffset2: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L60)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log-rescale.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log-rescale.md
new file mode 100644
index 0000000..92e6714
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log-rescale.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeLogRescale](.)
+
+# unsafeLogRescale
+
+`external fun unsafeLogRescale(src: DoubleArray, srcOffset: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L64)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log-sum-exp.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log-sum-exp.md
new file mode 100644
index 0000000..b6de4da
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log-sum-exp.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeLogSumExp](.)
+
+# unsafeLogSumExp
+
+`external fun unsafeLogSumExp(src: DoubleArray, srcOffset: Int, length: Int): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L58)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log.md
new file mode 100644
index 0000000..379edbc
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeLog](.)
+
+# unsafeLog
+
+`external fun unsafeLog(src: DoubleArray, srcOffset: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L52)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log1p.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log1p.md
new file mode 100644
index 0000000..9e4b1e6
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-log1p.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeLog1p](.)
+
+# unsafeLog1p
+
+`external fun unsafeLog1p(src: DoubleArray, srcOffset: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L55)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-max.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-max.md
new file mode 100644
index 0000000..23aabd8
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-max.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeMax](.)
+
+# unsafeMax
+
+`external fun unsafeMax(values: DoubleArray, offset: Int, length: Int): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L44)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-min.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-min.md
new file mode 100644
index 0000000..636d252
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-min.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeMin](.)
+
+# unsafeMin
+
+`external fun unsafeMin(values: DoubleArray, offset: Int, length: Int): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L42)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-minus-scalar.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-minus-scalar.md
new file mode 100644
index 0000000..85812c2
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-minus-scalar.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeMinusScalar](.)
+
+# unsafeMinusScalar
+
+`external fun unsafeMinusScalar(src1: DoubleArray, srcOffset1: Int, update: Double, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L30)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-minus.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-minus.md
new file mode 100644
index 0000000..028b6b8
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-minus.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeMinus](.)
+
+# unsafeMinus
+
+`external fun unsafeMinus(src1: DoubleArray, srcOffset1: Int, src2: DoubleArray, srcOffset2: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L12)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-negate.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-negate.md
new file mode 100644
index 0000000..ed9c728
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-negate.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeNegate](.)
+
+# unsafeNegate
+
+`external fun unsafeNegate(src1: DoubleArray, srcOffset1: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L24)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-plus-scalar.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-plus-scalar.md
new file mode 100644
index 0000000..da2ffd8
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-plus-scalar.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafePlusScalar](.)
+
+# unsafePlusScalar
+
+`external fun unsafePlusScalar(src1: DoubleArray, srcOffset1: Int, update: Double, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L27)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-plus.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-plus.md
new file mode 100644
index 0000000..bc52db8
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-plus.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafePlus](.)
+
+# unsafePlus
+
+`external fun unsafePlus(src1: DoubleArray, srcOffset1: Int, src2: DoubleArray, srcOffset2: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L8)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-scalar-div.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-scalar-div.md
new file mode 100644
index 0000000..9661e1b
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-scalar-div.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeScalarDiv](.)
+
+# unsafeScalarDiv
+
+`external fun unsafeScalarDiv(update: Double, src1: DoubleArray, srcOffset1: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L39)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-times-scalar.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-times-scalar.md
new file mode 100644
index 0000000..ac4441a
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-times-scalar.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeTimesScalar](.)
+
+# unsafeTimesScalar
+
+`external fun unsafeTimesScalar(src1: DoubleArray, srcOffset1: Int, update: Double, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L33)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-times.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-times.md
new file mode 100644
index 0000000..4680f7e
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/unsafe-times.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [unsafeTimes](.)
+
+# unsafeTimes
+
+`external fun unsafeTimes(src1: DoubleArray, srcOffset1: Int, src2: DoubleArray, srcOffset2: Int, dst: DoubleArray, dstOffset: Int, length: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L16)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/weighted-mean.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/weighted-mean.md
new file mode 100644
index 0000000..7e037fa
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/weighted-mean.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [weightedMean](.)
+
+# weightedMean
+
+`external fun weightedMean(values: DoubleArray, valuesOffset: Int, weights: DoubleArray, weightsOffset: Int, length: Int): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L75)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/weighted-sum.md b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/weighted-sum.md
new file mode 100644
index 0000000..b3e9f97
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-native-speedups/weighted-sum.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [NativeSpeedups](index.md) / [weightedSum](.)
+
+# weightedSum
+
+`external fun weightedSum(values: DoubleArray, valuesOffset: Int, weights: DoubleArray, weightsOffset: Int, length: Int): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/NativeSpeedups.kt#L72)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-resource-library/-init-.md b/docs/0.3.2/org.jetbrains.bio.viktor/-resource-library/-init-.md
new file mode 100644
index 0000000..f920f6e
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-resource-library/-init-.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [ResourceLibrary](index.md) / [<init>](.)
+
+# <init>
+
+`ResourceLibrary(name: String)`
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-resource-library/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-resource-library/index.md
new file mode 100644
index 0000000..f554ba0
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-resource-library/index.md
@@ -0,0 +1,17 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [ResourceLibrary](.)
+
+# ResourceLibrary
+
+`class ResourceLibrary` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/Loader.kt#L7)
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `ResourceLibrary(name: String)` |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [install](install.md) | `fun install(): Unit` |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-resource-library/install.md b/docs/0.3.2/org.jetbrains.bio.viktor/-resource-library/install.md
new file mode 100644
index 0000000..fee7c6f
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-resource-library/install.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [ResourceLibrary](index.md) / [install](.)
+
+# install
+
+`fun install(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/Loader.kt#L9)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-small-dense-vector/-init-.md b/docs/0.3.2/org.jetbrains.bio.viktor/-small-dense-vector/-init-.md
new file mode 100644
index 0000000..44ed510
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-small-dense-vector/-init-.md
@@ -0,0 +1,14 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [SmallDenseVector](index.md) / [<init>](.)
+
+# <init>
+
+`SmallDenseVector(data: DoubleArray, offset: Int, size: Int)`
+
+A contiguous strided vector of size at most [DenseVector.DENSE_SPLIT_SIZE](../-dense-vector/-d-e-n-s-e_-s-p-l-i-t_-s-i-z-e.md).
+
+**Author**
+Sergei Lebedev
+
+**Since**
+0.1.0
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-small-dense-vector/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-small-dense-vector/index.md
new file mode 100644
index 0000000..1d1987d
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-small-dense-vector/index.md
@@ -0,0 +1,43 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [SmallDenseVector](.)
+
+# SmallDenseVector
+
+`class SmallDenseVector : `[`DenseVector`](../-dense-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DenseVector.kt#L50)
+
+A contiguous strided vector of size at most [DenseVector.DENSE_SPLIT_SIZE](../-dense-vector/-d-e-n-s-e_-s-p-l-i-t_-s-i-z-e.md).
+
+**Author**
+Sergei Lebedev
+
+**Since**
+0.1.0
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `SmallDenseVector(data: DoubleArray, offset: Int, size: Int)`
A contiguous strided vector of size at most [DenseVector.DENSE_SPLIT_SIZE](../-dense-vector/-d-e-n-s-e_-s-p-l-i-t_-s-i-z-e.md). |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [copyTo](../-dense-vector/copy-to.md) | `open fun copyTo(other: `[`StridedVector`](../-strided-vector/index.md)`): Unit`
Copies the elements in this vector to [other](../-dense-vector/copy-to.md#org.jetbrains.bio.viktor.DenseVector$copyTo(org.jetbrains.bio.viktor.StridedVector)/other). |
+| [fill](../-dense-vector/fill.md) | `open fun fill(init: Double): Unit` |
+| [toArray](../-dense-vector/to-array.md) | `open fun toArray(): ` |
+| [unsafeIndex](../-dense-vector/unsafe-index.md) | `open fun unsafeIndex(pos: Int): Int` |
+
+### Extension Functions
+
+| Name | Summary |
+|---|---|
+| [argMax](../arg-max.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.argMax(): Int`
Returns the index of the maxmimum element. |
+| [argMin](../arg-min.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.argMin(): Int`
Returns the index of the minimum element. |
+| [argSort](../arg-sort.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.argSort(reverse: Boolean = false): IntArray`
Returns a permutation of indices which makes the vector sorted. |
+| [partition](../partition.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.partition(p: Int): Unit`
Partitions the vector. |
+| [quantile](../quantile.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.quantile(q: Double = 0.5, randomGenerator: RandomGenerator = DEFAULT_RANDOM): Double`
Computes the [q](../quantile.md#org.jetbrains.bio.viktor$quantile(org.jetbrains.bio.viktor.StridedVector, kotlin.Double, org.apache.commons.math3.random.RandomGenerator)/q)-th order statistic over this vector. |
+| [reorder](../reorder.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.reorder(indices: IntArray): Unit`
Applies a given permutation of indices to the elements in the vector. |
+| [reshape](../reshape.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.reshape(depth: Int, numRows: Int, numColumns: Int): `[`StridedMatrix3`](../-strided-matrix3/index.md)
`fun `[`StridedVector`](../-strided-vector/index.md)`.reshape(numRows: Int, numColumns: Int): `[`StridedMatrix2`](../-strided-matrix2/index.md)
Reshapes this vector into a matrix in row-major order. |
+| [searchSorted](../search-sorted.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.searchSorted(target: Double): Int`
Returns the insertion index of [target](../search-sorted.md#org.jetbrains.bio.viktor$searchSorted(org.jetbrains.bio.viktor.StridedVector, kotlin.Double)/target) into a sorted vector. |
+| [shuffle](../shuffle.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.shuffle(randomGenerator: RandomGenerator = DEFAULT_RANDOM): Unit`
Randomly permutes the elements of this vector. |
+| [sort](../sort.md) | `fun `[`StridedVector`](../-strided-vector/index.md)`.sort(reverse: Boolean = false): Unit`
Sorts the elements in this vector in in descending order. |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/full.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/full.md
new file mode 100644
index 0000000..480dd92
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/full.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix](index.md) / [full](.)
+
+# full
+
+`@JvmStatic fun full(numRows: Int, numColumns: Int, init: Double): `[`StridedMatrix2`](../-strided-matrix2/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L44)
+`@JvmStatic fun full(numRows: Int, numColumns: Int, depth: Int, init: Double): `[`StridedMatrix3`](../-strided-matrix3/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L49)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/index.md
new file mode 100644
index 0000000..6fecf2a
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/index.md
@@ -0,0 +1,22 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix](.)
+
+# StridedMatrix
+
+`object StridedMatrix` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L9)
+
+A strided matrix stored in a flat [DoubleArray](#).
+
+**Author**
+Sergei Lebedev
+
+**Since**
+0.1.0
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [full](full.md) | `fun full(numRows: Int, numColumns: Int, init: Double): `[`StridedMatrix2`](../-strided-matrix2/index.md)
`fun full(numRows: Int, numColumns: Int, depth: Int, init: Double): `[`StridedMatrix3`](../-strided-matrix3/index.md) |
+| [indexedStochastic](indexed-stochastic.md) | `fun indexedStochastic(depth: Int, size: Int): `[`StridedMatrix3`](../-strided-matrix3/index.md)
Creates a 3-D matrix with [stochastic](stochastic.md) submatrices. |
+| [invoke](invoke.md) | `operator fun invoke(numRows: Int, numColumns: Int): `[`StridedMatrix2`](../-strided-matrix2/index.md)
`operator fun invoke(numRows: Int, numColumns: Int, block: (Int, Int) -> Double): `[`StridedMatrix2`](../-strided-matrix2/index.md)
`operator fun invoke(numRows: Int, numColumns: Int, depth: Int): `[`StridedMatrix3`](../-strided-matrix3/index.md)
`operator fun invoke(depth: Int, numRows: Int, numColumns: Int, block: (Int, Int, Int) -> Double): `[`StridedMatrix3`](../-strided-matrix3/index.md) |
+| [stochastic](stochastic.md) | `fun stochastic(size: Int): `[`StridedMatrix2`](../-strided-matrix2/index.md)
Creates a 2-D matrix with rows summing to one. |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/indexed-stochastic.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/indexed-stochastic.md
new file mode 100644
index 0000000..ea476cf
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/indexed-stochastic.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix](index.md) / [indexedStochastic](.)
+
+# indexedStochastic
+
+`@JvmStatic fun indexedStochastic(depth: Int, size: Int): `[`StridedMatrix3`](../-strided-matrix3/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L62)
+
+Creates a 3-D matrix with [stochastic](stochastic.md) submatrices.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/invoke.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/invoke.md
new file mode 100644
index 0000000..947ec23
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/invoke.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix](index.md) / [invoke](.)
+
+# invoke
+
+`operator fun invoke(numRows: Int, numColumns: Int): `[`StridedMatrix2`](../-strided-matrix2/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L10)
+`inline operator fun invoke(numRows: Int, numColumns: Int, block: (Int, Int) -> Double): `[`StridedMatrix2`](../-strided-matrix2/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L14)
+`operator fun invoke(numRows: Int, numColumns: Int, depth: Int): `[`StridedMatrix3`](../-strided-matrix3/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L26)
+`inline operator fun invoke(depth: Int, numRows: Int, numColumns: Int, block: (Int, Int, Int) -> Double): `[`StridedMatrix3`](../-strided-matrix3/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L30)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/stochastic.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/stochastic.md
new file mode 100644
index 0000000..42ac71d
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix/stochastic.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix](index.md) / [stochastic](.)
+
+# stochastic
+
+`@JvmStatic fun stochastic(size: Int): `[`StridedMatrix2`](../-strided-matrix2/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix.kt#L57)
+
+Creates a 2-D matrix with rows summing to one.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/-init-.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/-init-.md
new file mode 100644
index 0000000..0bb9c42
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/-init-.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [<init>](.)
+
+# <init>
+
+`StridedMatrix2(numRows: Int, numColumns: Int)`
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/-t.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/-t.md
new file mode 100644
index 0000000..80342db
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/-t.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [T](.)
+
+# T
+
+`val T: `[`StridedMatrix2`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L103)
+
+An alias for [transpose](transpose.md).
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/along.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/along.md
new file mode 100644
index 0000000..1a77123
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/along.md
@@ -0,0 +1,11 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [along](.)
+
+# along
+
+`fun along(axis: Int): `[`Stream`](http://docs.oracle.com/javase/6/docs/api/java/util/stream/Stream.html)`<`[`StridedVector`](../-strided-vector/index.md)`>` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L145)
+
+Returns a stream of row or column views of the matrix.
+
+### Parameters
+
+`axis` - axis to go along, 0 stands for columns, 1 for rows.
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/check-dimensions.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/check-dimensions.md
new file mode 100644
index 0000000..61ee964
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/check-dimensions.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [checkDimensions](.)
+
+# checkDimensions
+
+`fun checkDimensions(other: `[`StridedMatrix2`](index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L205)
+
+Ensures a given matrix has the same dimensions as this matrix.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/column-stride.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/column-stride.md
new file mode 100644
index 0000000..7d8b709
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/column-stride.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [columnStride](.)
+
+# columnStride
+
+`val columnStride: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L17)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/column-view.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/column-view.md
new file mode 100644
index 0000000..37e4c0d
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/column-view.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [columnView](.)
+
+# columnView
+
+`fun columnView(c: Int): `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L71)
+
+Returns a view of the [c](column-view.md#org.jetbrains.bio.viktor.StridedMatrix2$columnView(kotlin.Int)/c)-th column of this matrix.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/columns-number.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/columns-number.md
new file mode 100644
index 0000000..b441b7b
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/columns-number.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [columnsNumber](.)
+
+# columnsNumber
+
+`val columnsNumber: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L14)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/copy-to.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/copy-to.md
new file mode 100644
index 0000000..8f7053b
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/copy-to.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [copyTo](.)
+
+# copyTo
+
+`fun copyTo(other: `[`StridedMatrix2`](index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L117)
+
+Copies elements in this matrix to [other](copy-to.md#org.jetbrains.bio.viktor.StridedMatrix2$copyTo(org.jetbrains.bio.viktor.StridedMatrix2)/other) matrix.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/copy.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/copy.md
new file mode 100644
index 0000000..11a8a9c
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/copy.md
@@ -0,0 +1,10 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [copy](.)
+
+# copy
+
+`fun copy(): `[`StridedMatrix2`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L110)
+
+Overrides [FlatMatrixOps.copy](../-flat-matrix-ops/copy.md)
+
+Returns a copy of the elements in this matrix.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/data.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/data.md
new file mode 100644
index 0000000..68f28da
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/data.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [data](.)
+
+# data
+
+`val data: DoubleArray` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L15)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/equals.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/equals.md
new file mode 100644
index 0000000..1437cfb
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/equals.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [equals](.)
+
+# equals
+
+`fun equals(other: Any?): Boolean` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L176)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/flatten.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/flatten.md
new file mode 100644
index 0000000..0957713
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/flatten.md
@@ -0,0 +1,13 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [flatten](.)
+
+# flatten
+
+`fun flatten(): `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L135)
+
+Overrides [FlatMatrixOps.flatten](../-flat-matrix-ops/flatten.md)
+
+Flattens the matrix into a vector in O(1) time.
+
+No data copying is performed, thus the operation is only applicable
+to dense matrices.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/get.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/get.md
new file mode 100644
index 0000000..bf16160
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/get.md
@@ -0,0 +1,19 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [get](.)
+
+# get
+
+`operator fun get(r: Int, c: Int): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L34)
+
+`operator fun get(r: Int): `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L85)
+
+A less-verbose alias to [rowView](row-view.md).
+
+Please do NOT abuse this shortcut by double-indexing, i.e. dont
+do `m[i][j]`, write `m[i, j]` instead.
+
+`operator fun get(any: `[`_I`](../_-i.md)`, c: Int): `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L96)
+
+A less-verbose alias to [columnView](column-view.md).
+
+Use in conjunction with [_I](../_-i.md), e.g. `m[_I, i]`.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/hash-code.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/hash-code.md
new file mode 100644
index 0000000..3879af0
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/hash-code.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [hashCode](.)
+
+# hashCode
+
+`fun hashCode(): Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L196)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/index.md
new file mode 100644
index 0000000..d6c7fbf
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/index.md
@@ -0,0 +1,82 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](.)
+
+# StridedMatrix2
+
+`class StridedMatrix2 : `[`FlatMatrixOps`](../-flat-matrix-ops/index.md)`` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L13)
+
+A specialization of [StridedMatrix](../-strided-matrix/index.md) for 2-D data.
+
+**Author**
+Sergei Lebedev
+
+**Since**
+0.1.0
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `StridedMatrix2(numRows: Int, numColumns: Int)` |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [T](-t.md) | `val T: StridedMatrix2`
An alias for [transpose](transpose.md). |
+| [columnStride](column-stride.md) | `val columnStride: Int` |
+| [columnsNumber](columns-number.md) | `val columnsNumber: Int` |
+| [data](data.md) | `val data: DoubleArray` |
+| [offset](offset.md) | `val offset: Int` |
+| [rowStride](row-stride.md) | `val rowStride: Int` |
+| [rowsNumber](rows-number.md) | `val rowsNumber: Int` |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [along](along.md) | `fun along(axis: Int): `[`Stream`](http://docs.oracle.com/javase/6/docs/api/java/util/stream/Stream.html)`<`[`StridedVector`](../-strided-vector/index.md)`>`
Returns a stream of row or column views of the matrix. |
+| [checkDimensions](check-dimensions.md) | `fun checkDimensions(other: StridedMatrix2): Unit`
Ensures a given matrix has the same dimensions as this matrix. |
+| [columnView](column-view.md) | `fun columnView(c: Int): `[`StridedVector`](../-strided-vector/index.md)
Returns a view of the [c](column-view.md#org.jetbrains.bio.viktor.StridedMatrix2$columnView(kotlin.Int)/c)-th column of this matrix. |
+| [copy](copy.md) | `fun copy(): StridedMatrix2`
Returns a copy of the elements in this matrix. |
+| [copyTo](copy-to.md) | `fun copyTo(other: StridedMatrix2): Unit`
Copies elements in this matrix to [other](copy-to.md#org.jetbrains.bio.viktor.StridedMatrix2$copyTo(org.jetbrains.bio.viktor.StridedMatrix2)/other) matrix. |
+| [equals](equals.md) | `fun equals(other: Any?): Boolean` |
+| [flatten](flatten.md) | `fun flatten(): `[`StridedVector`](../-strided-vector/index.md)
Flattens the matrix into a vector in O(1) time. |
+| [get](get.md) | `operator fun get(r: Int, c: Int): Double``operator fun get(r: Int): `[`StridedVector`](../-strided-vector/index.md)
A less-verbose alias to [rowView](row-view.md).`operator fun get(any: `[`_I`](../_-i.md)`, c: Int): `[`StridedVector`](../-strided-vector/index.md)
A less-verbose alias to [columnView](column-view.md). |
+| [hashCode](hash-code.md) | `fun hashCode(): Int` |
+| [rowView](row-view.md) | `fun rowView(r: Int): `[`StridedVector`](../-strided-vector/index.md)
Returns a view of the [r](row-view.md#org.jetbrains.bio.viktor.StridedMatrix2$rowView(kotlin.Int)/r)-th row of this matrix. |
+| [set](set.md) | `operator fun set(r: Int, c: Int, value: Double): Unit`
`operator fun set(r: Int, other: `[`StridedVector`](../-strided-vector/index.md)`): Unit`
`operator fun set(r: Int, init: Double): Unit`
`operator fun set(any: `[`_I`](../_-i.md)`, c: Int, other: `[`StridedVector`](../-strided-vector/index.md)`): Unit`
`operator fun set(any: `[`_I`](../_-i.md)`, c: Int, init: Double): Unit` |
+| [toArray](to-array.md) | `fun toArray(): Array` |
+| [toString](to-string.md) | `fun toString(): String` |
+| [transpose](transpose.md) | `fun transpose(): StridedMatrix2`
Constructs matrix transpose in O(1) time. |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [argMax](../-flat-matrix-ops/arg-max.md) | `open fun argMax(): Int` |
+| [argMin](../-flat-matrix-ops/arg-min.md) | `open fun argMin(): Int` |
+| [div](../-flat-matrix-ops/div.md) | `open operator fun div(update: Double): ` |
+| [divAssign](../-flat-matrix-ops/div-assign.md) | `open operator fun divAssign(update: Double): Unit` |
+| [exp](../-flat-matrix-ops/exp.md) | `open fun exp(): ` |
+| [expInPlace](../-flat-matrix-ops/exp-in-place.md) | `open fun expInPlace(): Unit` |
+| [expm1](../-flat-matrix-ops/expm1.md) | `open fun expm1(): ` |
+| [expm1InPlace](../-flat-matrix-ops/expm1-in-place.md) | `open fun expm1InPlace(): Unit` |
+| [fill](../-flat-matrix-ops/fill.md) | `open fun fill(init: Double): Unit` |
+| [log](../-flat-matrix-ops/log.md) | `open fun log(): ` |
+| [log1p](../-flat-matrix-ops/log1p.md) | `open fun log1p(): ` |
+| [log1pInPlace](../-flat-matrix-ops/log1p-in-place.md) | `open fun log1pInPlace(): Unit` |
+| [logInPlace](../-flat-matrix-ops/log-in-place.md) | `open fun logInPlace(): Unit` |
+| [logRescale](../-flat-matrix-ops/log-rescale.md) | `open fun logRescale(): Unit` |
+| [logSumExp](../-flat-matrix-ops/log-sum-exp.md) | `open fun logSumExp(): Double` |
+| [max](../-flat-matrix-ops/max.md) | `open fun max(): Double` |
+| [mean](../-flat-matrix-ops/mean.md) | `open fun mean(): Double` |
+| [min](../-flat-matrix-ops/min.md) | `open fun min(): Double` |
+| [minus](../-flat-matrix-ops/minus.md) | `open operator fun minus(update: Double): ` |
+| [minusAssign](../-flat-matrix-ops/minus-assign.md) | `open operator fun minusAssign(update: Double): Unit` |
+| [plus](../-flat-matrix-ops/plus.md) | `open operator fun plus(update: Double): ` |
+| [plusAssign](../-flat-matrix-ops/plus-assign.md) | `open operator fun plusAssign(update: Double): Unit` |
+| [sum](../-flat-matrix-ops/sum.md) | `open fun sum(): Double` |
+| [times](../-flat-matrix-ops/times.md) | `open operator fun times(update: Double): ` |
+| [timesAssign](../-flat-matrix-ops/times-assign.md) | `open operator fun timesAssign(update: Double): Unit` |
+| [unaryMinus](../-flat-matrix-ops/unary-minus.md) | `open operator fun unaryMinus(): ` |
+| [unaryPlus](../-flat-matrix-ops/unary-plus.md) | `open operator fun unaryPlus(): `[`FlatMatrixOps`](../-flat-matrix-ops/index.md)`` |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/offset.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/offset.md
new file mode 100644
index 0000000..f5ade0f
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/offset.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [offset](.)
+
+# offset
+
+`val offset: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L15)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/row-stride.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/row-stride.md
new file mode 100644
index 0000000..9b82626
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/row-stride.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [rowStride](.)
+
+# rowStride
+
+`val rowStride: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L16)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/row-view.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/row-view.md
new file mode 100644
index 0000000..61a83f6
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/row-view.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [rowView](.)
+
+# rowView
+
+`fun rowView(r: Int): `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L60)
+
+Returns a view of the [r](row-view.md#org.jetbrains.bio.viktor.StridedMatrix2$rowView(kotlin.Int)/r)-th row of this matrix.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/rows-number.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/rows-number.md
new file mode 100644
index 0000000..1922c3a
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/rows-number.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [rowsNumber](.)
+
+# rowsNumber
+
+`val rowsNumber: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L14)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/set.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/set.md
new file mode 100644
index 0000000..40980eb
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/set.md
@@ -0,0 +1,9 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [set](.)
+
+# set
+
+`operator fun set(r: Int, c: Int, value: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L44)
+`operator fun set(r: Int, other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L87)
+`operator fun set(r: Int, init: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L89)
+`operator fun set(any: `[`_I`](../_-i.md)`, c: Int, other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L98)
+`operator fun set(any: `[`_I`](../_-i.md)`, c: Int, init: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L100)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/to-array.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/to-array.md
new file mode 100644
index 0000000..7021e34
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/to-array.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [toArray](.)
+
+# toArray
+
+`fun toArray(): Array` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L151)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/to-string.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/to-string.md
new file mode 100644
index 0000000..eede2d0
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/to-string.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [toString](.)
+
+# toString
+
+`fun toString(): String` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L174)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/transpose.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/transpose.md
new file mode 100644
index 0000000..7c55c89
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix2/transpose.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix2](index.md) / [transpose](.)
+
+# transpose
+
+`fun transpose(): `[`StridedMatrix2`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L106)
+
+Constructs matrix transpose in O(1) time.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/-init-.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/-init-.md
new file mode 100644
index 0000000..25384bf
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/-init-.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [<init>](.)
+
+# <init>
+
+`StridedMatrix3(depth: Int, numRows: Int, numColumns: Int)`
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/check-dimensions.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/check-dimensions.md
new file mode 100644
index 0000000..8db54cf
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/check-dimensions.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [checkDimensions](.)
+
+# checkDimensions
+
+`fun checkDimensions(other: `[`StridedMatrix3`](index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L141)
+
+Ensures a given matrix has the same dimensions as this matrix.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/column-stride.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/column-stride.md
new file mode 100644
index 0000000..bd77206
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/column-stride.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [columnStride](.)
+
+# columnStride
+
+`val columnStride: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L14)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/columns-number.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/columns-number.md
new file mode 100644
index 0000000..9333e76
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/columns-number.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [columnsNumber](.)
+
+# columnsNumber
+
+`val columnsNumber: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L12)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/copy-to.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/copy-to.md
new file mode 100644
index 0000000..1c03651
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/copy-to.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [copyTo](.)
+
+# copyTo
+
+`fun copyTo(other: `[`StridedMatrix3`](index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L70)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/copy.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/copy.md
new file mode 100644
index 0000000..a545886
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/copy.md
@@ -0,0 +1,10 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [copy](.)
+
+# copy
+
+`fun copy(): `[`StridedMatrix3`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L64)
+
+Overrides [FlatMatrixOps.copy](../-flat-matrix-ops/copy.md)
+
+Returns the copy of this matrix.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/data.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/data.md
new file mode 100644
index 0000000..b970ace
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/data.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [data](.)
+
+# data
+
+`val data: DoubleArray` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L13)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/depth-stride.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/depth-stride.md
new file mode 100644
index 0000000..3699d72
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/depth-stride.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [depthStride](.)
+
+# depthStride
+
+`val depthStride: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L14)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/depth.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/depth.md
new file mode 100644
index 0000000..f7ce020
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/depth.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [depth](.)
+
+# depth
+
+`val depth: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L12)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/equals.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/equals.md
new file mode 100644
index 0000000..7e20753
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/equals.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [equals](.)
+
+# equals
+
+`fun equals(other: Any?): Boolean` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L111)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/flatten.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/flatten.md
new file mode 100644
index 0000000..3588c10
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/flatten.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [flatten](.)
+
+# flatten
+
+`fun flatten(): `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L80)
+
+Overrides [FlatMatrixOps.flatten](../-flat-matrix-ops/flatten.md)
+
+Returns a flat view of this matrix.
+
+If the matrix is not dense the method must raise an error.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/get.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/get.md
new file mode 100644
index 0000000..f0b5517
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/get.md
@@ -0,0 +1,7 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [get](.)
+
+# get
+
+`operator fun get(d: Int, r: Int, c: Int): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L37)
+`operator fun get(d: Int): `[`StridedMatrix2`](../-strided-matrix2/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L85)
+`operator fun get(d: Int, r: Int): `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L101)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/hash-code.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/hash-code.md
new file mode 100644
index 0000000..48cf4af
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/hash-code.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [hashCode](.)
+
+# hashCode
+
+`fun hashCode(): Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L132)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/index.md
new file mode 100644
index 0000000..95cc2d5
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/index.md
@@ -0,0 +1,80 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](.)
+
+# StridedMatrix3
+
+`class StridedMatrix3 : `[`FlatMatrixOps`](../-flat-matrix-ops/index.md)`` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L11)
+
+A specialization of [StridedMatrix](../-strided-matrix/index.md) for 3-D data.
+
+**Author**
+Sergei Lebedev
+
+**Since**
+0.1.0
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `StridedMatrix3(depth: Int, numRows: Int, numColumns: Int)` |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [columnStride](column-stride.md) | `val columnStride: Int` |
+| [columnsNumber](columns-number.md) | `val columnsNumber: Int` |
+| [data](data.md) | `val data: DoubleArray` |
+| [depth](depth.md) | `val depth: Int` |
+| [depthStride](depth-stride.md) | `val depthStride: Int` |
+| [offset](offset.md) | `val offset: Int` |
+| [rowStride](row-stride.md) | `val rowStride: Int` |
+| [rowsNumber](rows-number.md) | `val rowsNumber: Int` |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [checkDimensions](check-dimensions.md) | `fun checkDimensions(other: StridedMatrix3): Unit`
Ensures a given matrix has the same dimensions as this matrix. |
+| [copy](copy.md) | `fun copy(): StridedMatrix3`
Returns the copy of this matrix. |
+| [copyTo](copy-to.md) | `fun copyTo(other: StridedMatrix3): Unit` |
+| [equals](equals.md) | `fun equals(other: Any?): Boolean` |
+| [flatten](flatten.md) | `fun flatten(): `[`StridedVector`](../-strided-vector/index.md)
Returns a flat view of this matrix. |
+| [get](get.md) | `operator fun get(d: Int, r: Int, c: Int): Double`
`operator fun get(d: Int): `[`StridedMatrix2`](../-strided-matrix2/index.md)
`operator fun get(d: Int, r: Int): `[`StridedVector`](../-strided-vector/index.md) |
+| [hashCode](hash-code.md) | `fun hashCode(): Int` |
+| [set](set.md) | `operator fun set(d: Int, r: Int, c: Int, value: Double): Unit`
`operator fun set(d: Int, other: `[`StridedMatrix2`](../-strided-matrix2/index.md)`): Unit`
`operator fun set(d: Int, other: Double): Unit`
`operator fun set(d: Int, r: Int, other: Double): Unit`
`operator fun set(d: Int, r: Int, other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` |
+| [toArray](to-array.md) | `fun toArray(): Array>` |
+| [toString](to-string.md) | `fun toString(): String` |
+| [view](view.md) | `fun view(d: Int): `[`StridedMatrix2`](../-strided-matrix2/index.md) |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [argMax](../-flat-matrix-ops/arg-max.md) | `open fun argMax(): Int` |
+| [argMin](../-flat-matrix-ops/arg-min.md) | `open fun argMin(): Int` |
+| [div](../-flat-matrix-ops/div.md) | `open operator fun div(update: Double): ` |
+| [divAssign](../-flat-matrix-ops/div-assign.md) | `open operator fun divAssign(update: Double): Unit` |
+| [exp](../-flat-matrix-ops/exp.md) | `open fun exp(): ` |
+| [expInPlace](../-flat-matrix-ops/exp-in-place.md) | `open fun expInPlace(): Unit` |
+| [expm1](../-flat-matrix-ops/expm1.md) | `open fun expm1(): ` |
+| [expm1InPlace](../-flat-matrix-ops/expm1-in-place.md) | `open fun expm1InPlace(): Unit` |
+| [fill](../-flat-matrix-ops/fill.md) | `open fun fill(init: Double): Unit` |
+| [log](../-flat-matrix-ops/log.md) | `open fun log(): ` |
+| [log1p](../-flat-matrix-ops/log1p.md) | `open fun log1p(): ` |
+| [log1pInPlace](../-flat-matrix-ops/log1p-in-place.md) | `open fun log1pInPlace(): Unit` |
+| [logInPlace](../-flat-matrix-ops/log-in-place.md) | `open fun logInPlace(): Unit` |
+| [logRescale](../-flat-matrix-ops/log-rescale.md) | `open fun logRescale(): Unit` |
+| [logSumExp](../-flat-matrix-ops/log-sum-exp.md) | `open fun logSumExp(): Double` |
+| [max](../-flat-matrix-ops/max.md) | `open fun max(): Double` |
+| [mean](../-flat-matrix-ops/mean.md) | `open fun mean(): Double` |
+| [min](../-flat-matrix-ops/min.md) | `open fun min(): Double` |
+| [minus](../-flat-matrix-ops/minus.md) | `open operator fun minus(update: Double): ` |
+| [minusAssign](../-flat-matrix-ops/minus-assign.md) | `open operator fun minusAssign(update: Double): Unit` |
+| [plus](../-flat-matrix-ops/plus.md) | `open operator fun plus(update: Double): ` |
+| [plusAssign](../-flat-matrix-ops/plus-assign.md) | `open operator fun plusAssign(update: Double): Unit` |
+| [sum](../-flat-matrix-ops/sum.md) | `open fun sum(): Double` |
+| [times](../-flat-matrix-ops/times.md) | `open operator fun times(update: Double): ` |
+| [timesAssign](../-flat-matrix-ops/times-assign.md) | `open operator fun timesAssign(update: Double): Unit` |
+| [unaryMinus](../-flat-matrix-ops/unary-minus.md) | `open operator fun unaryMinus(): ` |
+| [unaryPlus](../-flat-matrix-ops/unary-plus.md) | `open operator fun unaryPlus(): `[`FlatMatrixOps`](../-flat-matrix-ops/index.md)`` |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/offset.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/offset.md
new file mode 100644
index 0000000..abf16ad
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/offset.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [offset](.)
+
+# offset
+
+`val offset: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L13)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/row-stride.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/row-stride.md
new file mode 100644
index 0000000..9cde8e0
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/row-stride.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [rowStride](.)
+
+# rowStride
+
+`val rowStride: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L14)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/rows-number.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/rows-number.md
new file mode 100644
index 0000000..7e6088e
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/rows-number.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [rowsNumber](.)
+
+# rowsNumber
+
+`val rowsNumber: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L12)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/set.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/set.md
new file mode 100644
index 0000000..dac24c1
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/set.md
@@ -0,0 +1,9 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [set](.)
+
+# set
+
+`operator fun set(d: Int, r: Int, c: Int, value: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L47)
+`operator fun set(d: Int, other: `[`StridedMatrix2`](../-strided-matrix2/index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L87)
+`operator fun set(d: Int, other: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L89)
+`operator fun set(d: Int, r: Int, other: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L103)
+`operator fun set(d: Int, r: Int, other: `[`StridedVector`](../-strided-vector/index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L105)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/to-array.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/to-array.md
new file mode 100644
index 0000000..65df57a
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/to-array.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [toArray](.)
+
+# toArray
+
+`fun toArray(): Array>` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L107)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/to-string.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/to-string.md
new file mode 100644
index 0000000..1f674da
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/to-string.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [toString](.)
+
+# toString
+
+`fun toString(): String` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L109)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/view.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/view.md
new file mode 100644
index 0000000..4cb56c2
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-matrix3/view.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedMatrix3](index.md) / [view](.)
+
+# view
+
+`fun view(d: Int): `[`StridedMatrix2`](../-strided-matrix2/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L91)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/-t.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/-t.md
new file mode 100644
index 0000000..6a51d4c
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/-t.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [T](.)
+
+# T
+
+`val T: `[`StridedMatrix2`](../-strided-matrix2/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L121)
+
+An alias for [transpose](transpose.md).
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/append.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/append.md
new file mode 100644
index 0000000..0168eee
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/append.md
@@ -0,0 +1,11 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [append](.)
+
+# append
+
+`fun append(other: `[`StridedVector`](index.md)`): `[`StridedVector`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L136)
+
+Appends this vector to another vector.
+
+**Since**
+0.2.3
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/concatenate.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/concatenate.md
new file mode 100644
index 0000000..99ef1ed
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/concatenate.md
@@ -0,0 +1,11 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [concatenate](.)
+
+# concatenate
+
+`@JvmStatic fun concatenate(first: `[`StridedVector`](index.md)`, vararg rest: `[`StridedVector`](index.md)`): `[`StridedVector`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L553)
+
+Joins a sequence of vectors into a single vector.
+
+**Since**
+0.2.3
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/contains.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/contains.md
new file mode 100644
index 0000000..d31eab2
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/contains.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [contains](.)
+
+# contains
+
+`operator fun contains(other: Double): Boolean` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L96)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/copy-to.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/copy-to.md
new file mode 100644
index 0000000..aa242cb
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/copy-to.md
@@ -0,0 +1,10 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [copyTo](.)
+
+# copyTo
+
+`open fun copyTo(other: `[`StridedVector`](index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L150)
+
+Copies the elements in this vector to [other](copy-to.md#org.jetbrains.bio.viktor.StridedVector$copyTo(org.jetbrains.bio.viktor.StridedVector)/other).
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/copy.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/copy.md
new file mode 100644
index 0000000..1d03208
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/copy.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [copy](.)
+
+# copy
+
+`fun copy(): `[`StridedVector`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L139)
+
+Returns a copy of the elements in this vector.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/cum-sum.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/cum-sum.md
new file mode 100644
index 0000000..f5fc63e
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/cum-sum.md
@@ -0,0 +1,10 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [cumSum](.)
+
+# cumSum
+
+`open fun cumSum(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L211)
+
+Computes cumulative sum of the elements.
+
+The operation is done **in place**.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/data.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/data.md
new file mode 100644
index 0000000..22876e3
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/data.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [data](.)
+
+# data
+
+`val data: DoubleArray` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L42)
+
+Raw data array.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/div-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/div-assign.md
new file mode 100644
index 0000000..1ff72bd
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/div-assign.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [divAssign](.)
+
+# divAssign
+
+`open operator fun divAssign(other: `[`StridedVector`](index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L402)
+`open operator fun divAssign(update: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L411)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/div.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/div.md
new file mode 100644
index 0000000..4017640
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/div.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [div](.)
+
+# div
+
+`operator fun div(other: `[`StridedVector`](index.md)`): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L400)
+`operator fun div(update: Double): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L409)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/dot.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/dot.md
new file mode 100644
index 0000000..17b6cc6
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/dot.md
@@ -0,0 +1,16 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [dot](.)
+
+# dot
+
+`infix fun dot(other: ShortArray): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L160)
+`infix fun dot(other: IntArray): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L165)
+`infix fun dot(other: DoubleArray): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L170)
+
+Computes a dot product of this vector with an array.
+
+`open infix fun dot(other: `[`StridedVector`](index.md)`): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L177)
+
+Computes a dot product between the two vectors.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/equals.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/equals.md
new file mode 100644
index 0000000..f3a868a
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/equals.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [equals](.)
+
+# equals
+
+`open fun equals(other: Any?): Boolean` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L477)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/exp-in-place.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/exp-in-place.md
new file mode 100644
index 0000000..c940d97
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/exp-in-place.md
@@ -0,0 +1,10 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [expInPlace](.)
+
+# expInPlace
+
+`open fun expInPlace(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L240)
+
+Computes the exponent of each element of this vector.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/exp.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/exp.md
new file mode 100644
index 0000000..da41c5b
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/exp.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [exp](.)
+
+# exp
+
+`fun exp(): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L233)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/expm1-in-place.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/expm1-in-place.md
new file mode 100644
index 0000000..82b40c0
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/expm1-in-place.md
@@ -0,0 +1,13 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [expm1InPlace](.)
+
+# expm1InPlace
+
+`open fun expm1InPlace(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L255)
+
+Computes exp(x) - 1 for each element of this vector.
+
+Optimized for dense vectors.
+
+**Since**
+0.3.0
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/expm1.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/expm1.md
new file mode 100644
index 0000000..41f2d5a
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/expm1.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [expm1](.)
+
+# expm1
+
+`fun expm1(): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L246)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/fill.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/fill.md
new file mode 100644
index 0000000..e3fed83
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/fill.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [fill](.)
+
+# fill
+
+`open fun fill(init: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L106)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/full.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/full.md
new file mode 100644
index 0000000..fddd6e0
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/full.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [full](.)
+
+# full
+
+`@JvmStatic fun full(size: Int, init: Double): `[`StridedVector`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L542)
+
+Creates an array filled with a given [init](full.md#org.jetbrains.bio.viktor.StridedVector.Companion$full(kotlin.Int, kotlin.Double)/init) element.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/get.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/get.md
new file mode 100644
index 0000000..e1fc39e
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/get.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [get](.)
+
+# get
+
+`operator fun get(pos: Int): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L52)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/hash-code.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/hash-code.md
new file mode 100644
index 0000000..05ed18d
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/hash-code.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [hashCode](.)
+
+# hashCode
+
+`open fun hashCode(): Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L497)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/index.md
new file mode 100644
index 0000000..12ce30b
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/index.md
@@ -0,0 +1,127 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](.)
+
+# StridedVector
+
+`open class StridedVector` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L40)
+
+A strided vector stored in a [DoubleArray](#).
+
+Vector is backed by the raw [data](data.md) array, which is guaranteed to
+contain at least [size](size.md) elements starting from the [offset](offset.md) index.
+
+The term *strided* means that unlike regular [DoubleArray](#) the
+elements of a vector can be at arbitrary index intervals (strides)
+from each other. For example
+
+data = [0,1,2,3,4,5](#)
+offset = 1
+size = 2
+stride = 3
+
+corresponds to a vector with elements
+
+[1,4](#)
+
+Vectors with `stride` equal to 1 are called called *dense*. The
+distinction is important because some of the operations can be
+significantly optimized for dense vectors.
+
+**Author**
+Sergei Lebedev
+
+**Since**
+0.1.0
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [T](-t.md) | `val T: `[`StridedMatrix2`](../-strided-matrix2/index.md)
An alias for [transpose](transpose.md). |
+| [data](data.md) | `val data: DoubleArray`
Raw data array. |
+| [indices](indices.md) | `val indices: IntRange` |
+| [offset](offset.md) | `val offset: Int`
Offset of the first vector element in the raw data array. |
+| [size](size.md) | `val size: Int`
Number of elements in the raw data array to use. |
+| [stride](stride.md) | `val stride: Int`
Indexing step. |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [append](append.md) | `fun append(other: StridedVector): StridedVector`
Appends this vector to another vector. |
+| [contains](contains.md) | `operator fun contains(other: Double): Boolean` |
+| [copy](copy.md) | `fun copy(): StridedVector`
Returns a copy of the elements in this vector. |
+| [copyTo](copy-to.md) | `open fun copyTo(other: StridedVector): Unit`
Copies the elements in this vector to [other](copy-to.md#org.jetbrains.bio.viktor.StridedVector$copyTo(org.jetbrains.bio.viktor.StridedVector)/other). |
+| [cumSum](cum-sum.md) | `open fun cumSum(): Unit`
Computes cumulative sum of the elements. |
+| [div](div.md) | `operator fun div(other: StridedVector): `
`operator fun div(update: Double): ` |
+| [divAssign](div-assign.md) | `open operator fun divAssign(other: StridedVector): Unit`
`open operator fun divAssign(update: Double): Unit` |
+| [dot](dot.md) | `infix fun dot(other: ShortArray): Double`
`infix fun dot(other: IntArray): Double`
`infix fun dot(other: DoubleArray): Double`
Computes a dot product of this vector with an array.`open infix fun dot(other: StridedVector): Double`
Computes a dot product between the two vectors. |
+| [equals](equals.md) | `open fun equals(other: Any?): Boolean` |
+| [exp](exp.md) | `fun exp(): ` |
+| [expInPlace](exp-in-place.md) | `open fun expInPlace(): Unit`
Computes the exponent of each element of this vector. |
+| [expm1](expm1.md) | `fun expm1(): ` |
+| [expm1InPlace](expm1-in-place.md) | `open fun expm1InPlace(): Unit`
Computes exp(x) - 1 for each element of this vector. |
+| [fill](fill.md) | `open fun fill(init: Double): Unit` |
+| [get](get.md) | `operator fun get(pos: Int): Double` |
+| [hashCode](hash-code.md) | `open fun hashCode(): Int` |
+| [isEmpty](is-empty.md) | `fun isEmpty(): Boolean` |
+| [isNotEmpty](is-not-empty.md) | `fun isNotEmpty(): Boolean` |
+| [iterator](iterator.md) | `operator fun iterator(): DoubleIterator`
Creates an iterator over the elements of the array. |
+| [log](log.md) | `fun log(): ` |
+| [log1p](log1p.md) | `fun log1p(): ` |
+| [log1pInPlace](log1p-in-place.md) | `open fun log1pInPlace(): Unit`
Computes log(1 + x) for each element of this vector. |
+| [logAddExp](log-add-exp.md) | `infix fun logAddExp(other: StridedVector): `
`open fun logAddExp(other: StridedVector, dst: StridedVector): Unit` |
+| [logInPlace](log-in-place.md) | `open fun logInPlace(): Unit`
Computes the natural log of each element of this vector. |
+| [logRescale](log-rescale.md) | `open fun logRescale(): Unit`
Rescales the element so that the exponent of the sum is 1.0. |
+| [logSumExp](log-sum-exp.md) | `open fun logSumExp(): Double`
Computes |
+| [max](max.md) | `open fun max(): Double`
Returns the maximum element. |
+| [mean](mean.md) | `open fun mean(): Double`
Computes the mean of the elements. |
+| [min](min.md) | `open fun min(): Double`
Returns the minimum element. |
+| [minus](minus.md) | `operator fun minus(other: StridedVector): `
`operator fun minus(update: Double): ` |
+| [minusAssign](minus-assign.md) | `open operator fun minusAssign(other: StridedVector): Unit`
`open operator fun minusAssign(update: Double): Unit` |
+| [plus](plus.md) | `operator fun plus(other: StridedVector): `
`operator fun plus(update: Double): ` |
+| [plusAssign](plus-assign.md) | `open operator fun plusAssign(other: StridedVector): Unit`
`open operator fun plusAssign(update: Double): Unit` |
+| [rescale](rescale.md) | `fun rescale(): Unit`
Rescales the elements so that the sum is 1.0. |
+| [reverse](reverse.md) | `fun reverse(): Unit` |
+| [sd](sd.md) | `open fun sd(): Double`
Computes the unbiased standard deviation of the elements. |
+| [set](set.md) | `operator fun set(pos: Int, value: Double): Unit`
`operator fun set(any: `[`_I`](../_-i.md)`, init: Double): Unit`
`operator fun set(any: `[`_I`](../_-i.md)`, other: StridedVector): Unit` |
+| [slice](slice.md) | `fun slice(from: Int, to: Int = size): StridedVector`
Creates a sliced view of this vector in O(1) time. |
+| [sum](sum.md) | `open fun sum(): Double`
Returns the sum of the elements using balanced summation. |
+| [times](times.md) | `operator fun times(other: StridedVector): `
`operator fun times(update: Double): ` |
+| [timesAssign](times-assign.md) | `open operator fun timesAssign(other: StridedVector): Unit`
`open operator fun timesAssign(update: Double): Unit` |
+| [toArray](to-array.md) | `open fun toArray(): DoubleArray` |
+| [toString](to-string.md) | `fun toString(maxDisplay: Int, format: `[`DecimalFormat`](http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html)` = DecimalFormat("#.####")): String`
`open fun toString(): String` |
+| [transpose](transpose.md) | `fun transpose(): `[`StridedMatrix2`](../-strided-matrix2/index.md)
Constructs a column-vector view of this vector in O(1) time. |
+| [unaryMinus](unary-minus.md) | `open operator fun unaryMinus(): StridedVector` |
+| [unaryPlus](unary-plus.md) | `operator fun unaryPlus(): StridedVector` |
+| [unsafeIndex](unsafe-index.md) | `open fun unsafeIndex(pos: Int): Int` |
+
+### Companion Object Functions
+
+| Name | Summary |
+|---|---|
+| [concatenate](concatenate.md) | `fun concatenate(first: StridedVector, vararg rest: StridedVector): StridedVector`
Joins a sequence of vectors into a single vector. |
+| [full](full.md) | `fun full(size: Int, init: Double): StridedVector`
Creates an array filled with a given [init](full.md#org.jetbrains.bio.viktor.StridedVector.Companion$full(kotlin.Int, kotlin.Double)/init) element. |
+| [invoke](invoke.md) | `operator fun invoke(size: Int): StridedVector`
Create a zero-filled vector of a given `size`.`operator fun invoke(size: Int, block: (Int) -> Double): StridedVector` |
+| [of](of.md) | `fun of(first: Double, vararg rest: Double): StridedVector`
Creates a vector with given elements. |
+| [stochastic](stochastic.md) | `fun stochastic(size: Int): StridedVector`
Creates an array with elements summing to one. |
+
+### Extension Functions
+
+| Name | Summary |
+|---|---|
+| [argMax](../arg-max.md) | `fun StridedVector.argMax(): Int`
Returns the index of the maxmimum element. |
+| [argMin](../arg-min.md) | `fun StridedVector.argMin(): Int`
Returns the index of the minimum element. |
+| [argSort](../arg-sort.md) | `fun StridedVector.argSort(reverse: Boolean = false): IntArray`
Returns a permutation of indices which makes the vector sorted. |
+| [partition](../partition.md) | `fun StridedVector.partition(p: Int): Unit`
Partitions the vector. |
+| [quantile](../quantile.md) | `fun StridedVector.quantile(q: Double = 0.5, randomGenerator: RandomGenerator = DEFAULT_RANDOM): Double`
Computes the [q](../quantile.md#org.jetbrains.bio.viktor$quantile(org.jetbrains.bio.viktor.StridedVector, kotlin.Double, org.apache.commons.math3.random.RandomGenerator)/q)-th order statistic over this vector. |
+| [reorder](../reorder.md) | `fun StridedVector.reorder(indices: IntArray): Unit`
Applies a given permutation of indices to the elements in the vector. |
+| [reshape](../reshape.md) | `fun StridedVector.reshape(depth: Int, numRows: Int, numColumns: Int): `[`StridedMatrix3`](../-strided-matrix3/index.md)
`fun StridedVector.reshape(numRows: Int, numColumns: Int): `[`StridedMatrix2`](../-strided-matrix2/index.md)
Reshapes this vector into a matrix in row-major order. |
+| [searchSorted](../search-sorted.md) | `fun StridedVector.searchSorted(target: Double): Int`
Returns the insertion index of [target](../search-sorted.md#org.jetbrains.bio.viktor$searchSorted(org.jetbrains.bio.viktor.StridedVector, kotlin.Double)/target) into a sorted vector. |
+| [shuffle](../shuffle.md) | `fun StridedVector.shuffle(randomGenerator: RandomGenerator = DEFAULT_RANDOM): Unit`
Randomly permutes the elements of this vector. |
+| [sort](../sort.md) | `fun StridedVector.sort(reverse: Boolean = false): Unit`
Sorts the elements in this vector in in descending order. |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [DenseVector](../-dense-vector/index.md) | `open class DenseVector : StridedVector`
A contiguous strided vector. |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/indices.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/indices.md
new file mode 100644
index 0000000..908523a
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/indices.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [indices](.)
+
+# indices
+
+`val indices: IntRange` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L50)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/invoke.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/invoke.md
new file mode 100644
index 0000000..5cc2931
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/invoke.md
@@ -0,0 +1,9 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [invoke](.)
+
+# invoke
+
+`operator fun invoke(size: Int): `[`StridedVector`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L516)
+
+Create a zero-filled vector of a given `size`.
+
+`inline operator fun invoke(size: Int, block: (Int) -> Double): `[`StridedVector`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L518)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/is-empty.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/is-empty.md
new file mode 100644
index 0000000..8dbdcf2
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/is-empty.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [isEmpty](.)
+
+# isEmpty
+
+`fun isEmpty(): Boolean` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L417)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/is-not-empty.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/is-not-empty.md
new file mode 100644
index 0000000..b14a007
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/is-not-empty.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [isNotEmpty](.)
+
+# isNotEmpty
+
+`fun isNotEmpty(): Boolean` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L419)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/iterator.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/iterator.md
new file mode 100644
index 0000000..f9ebb63
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/iterator.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [iterator](.)
+
+# iterator
+
+`operator fun iterator(): DoubleIterator` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L424)
+
+Creates an iterator over the elements of the array.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log-add-exp.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log-add-exp.md
new file mode 100644
index 0000000..b532981
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log-add-exp.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [logAddExp](.)
+
+# logAddExp
+
+`infix fun logAddExp(other: `[`StridedVector`](index.md)`): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L326)
+`open fun logAddExp(other: `[`StridedVector`](index.md)`, dst: `[`StridedVector`](index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L328)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log-in-place.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log-in-place.md
new file mode 100644
index 0000000..f2bf3d6
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log-in-place.md
@@ -0,0 +1,10 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [logInPlace](.)
+
+# logInPlace
+
+`open fun logInPlace(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L268)
+
+Computes the natural log of each element of this vector.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log-rescale.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log-rescale.md
new file mode 100644
index 0000000..570cee3
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log-rescale.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [logRescale](.)
+
+# logRescale
+
+`open fun logRescale(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L305)
+
+Rescales the element so that the exponent of the sum is 1.0.
+
+Optimized for dense vectors.
+
+The operation is done **in place**.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log-sum-exp.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log-sum-exp.md
new file mode 100644
index 0000000..15e9bbd
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log-sum-exp.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [logSumExp](.)
+
+# logSumExp
+
+`open fun logSumExp(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L316)
+
+Computes
+
+log(exp(v[0](#)) + ... + exp(v[size-1](#)))
+
+in a numerically stable way.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log.md
new file mode 100644
index 0000000..53994a8
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [log](.)
+
+# log
+
+`fun log(): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L261)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log1p-in-place.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log1p-in-place.md
new file mode 100644
index 0000000..8498b74
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log1p-in-place.md
@@ -0,0 +1,13 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [log1pInPlace](.)
+
+# log1pInPlace
+
+`open fun log1pInPlace(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L283)
+
+Computes log(1 + x) for each element of this vector.
+
+Optimized for dense vectors.
+
+**Since**
+0.3.0
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log1p.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log1p.md
new file mode 100644
index 0000000..0afe76d
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/log1p.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [log1p](.)
+
+# log1p
+
+`fun log1p(): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L274)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/max.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/max.md
new file mode 100644
index 0000000..4ee3cf7
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/max.md
@@ -0,0 +1,10 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [max](.)
+
+# max
+
+`open fun max(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L231)
+
+Returns the maximum element.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/mean.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/mean.md
new file mode 100644
index 0000000..539a061
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/mean.md
@@ -0,0 +1,10 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [mean](.)
+
+# mean
+
+`open fun mean(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L184)
+
+Computes the mean of the elements.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/min.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/min.md
new file mode 100644
index 0000000..e95d51c
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/min.md
@@ -0,0 +1,10 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [min](.)
+
+# min
+
+`open fun min(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L224)
+
+Returns the minimum element.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/minus-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/minus-assign.md
new file mode 100644
index 0000000..d7e0297
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/minus-assign.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [minusAssign](.)
+
+# minusAssign
+
+`open operator fun minusAssign(other: `[`StridedVector`](index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L368)
+`open operator fun minusAssign(update: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L377)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/minus.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/minus.md
new file mode 100644
index 0000000..5aae146
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/minus.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [minus](.)
+
+# minus
+
+`operator fun minus(other: `[`StridedVector`](index.md)`): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L366)
+`operator fun minus(update: Double): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L375)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/of.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/of.md
new file mode 100644
index 0000000..22edbfd
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/of.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [of](.)
+
+# of
+
+`@JvmStatic fun of(first: Double, vararg rest: Double): `[`StridedVector`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L529)
+
+Creates a vector with given elements.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/offset.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/offset.md
new file mode 100644
index 0000000..7a35767
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/offset.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [offset](.)
+
+# offset
+
+`val offset: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L44)
+
+Offset of the first vector element in the raw data array.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/plus-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/plus-assign.md
new file mode 100644
index 0000000..abeca85
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/plus-assign.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [plusAssign](.)
+
+# plusAssign
+
+`open operator fun plusAssign(other: `[`StridedVector`](index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L351)
+`open operator fun plusAssign(update: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L360)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/plus.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/plus.md
new file mode 100644
index 0000000..5598012
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/plus.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [plus](.)
+
+# plus
+
+`operator fun plus(other: `[`StridedVector`](index.md)`): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L349)
+`operator fun plus(update: Double): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L358)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/rescale.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/rescale.md
new file mode 100644
index 0000000..4c90994
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/rescale.md
@@ -0,0 +1,10 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [rescale](.)
+
+# rescale
+
+`fun rescale(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L294)
+
+Rescales the elements so that the sum is 1.0.
+
+The operation is done **in place**.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/reverse.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/reverse.md
new file mode 100644
index 0000000..e22d081
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/reverse.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [reverse](.)
+
+# reverse
+
+`fun reverse(): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L112)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/sd.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/sd.md
new file mode 100644
index 0000000..89ab34b
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/sd.md
@@ -0,0 +1,13 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [sd](.)
+
+# sd
+
+`open fun sd(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L193)
+
+Computes the unbiased standard deviation of the elements.
+
+Optimized for dense vectors.
+
+**Since**
+0.3.0
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/set.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/set.md
new file mode 100644
index 0000000..1e31587
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/set.md
@@ -0,0 +1,7 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [set](.)
+
+# set
+
+`operator fun set(pos: Int, value: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L65)
+`operator fun set(any: `[`_I`](../_-i.md)`, init: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L92)
+`operator fun set(any: `[`_I`](../_-i.md)`, other: `[`StridedVector`](index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L94)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/size.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/size.md
new file mode 100644
index 0000000..26ead61
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/size.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [size](.)
+
+# size
+
+`val size: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L46)
+
+Number of elements in the raw data array to use.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/slice.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/slice.md
new file mode 100644
index 0000000..553994a
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/slice.md
@@ -0,0 +1,13 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [slice](.)
+
+# slice
+
+`fun slice(from: Int, to: Int = size): `[`StridedVector`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L84)
+
+Creates a sliced view of this vector in O(1) time.
+
+### Parameters
+
+`from` - the first index of the slice (inclusive).
+
+`to` - the last index of the slice (exclusive).
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/stochastic.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/stochastic.md
new file mode 100644
index 0000000..7ad2ed0
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/stochastic.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [stochastic](.)
+
+# stochastic
+
+`@JvmStatic fun stochastic(size: Int): `[`StridedVector`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L537)
+
+Creates an array with elements summing to one.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/stride.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/stride.md
new file mode 100644
index 0000000..a02c8e6
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/stride.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [stride](.)
+
+# stride
+
+`val stride: Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L48)
+
+Indexing step.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/sum.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/sum.md
new file mode 100644
index 0000000..32c7e20
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/sum.md
@@ -0,0 +1,10 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [sum](.)
+
+# sum
+
+`open fun sum(): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L204)
+
+Returns the sum of the elements using balanced summation.
+
+Optimized for dense vectors.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/times-assign.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/times-assign.md
new file mode 100644
index 0000000..167bf34
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/times-assign.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [timesAssign](.)
+
+# timesAssign
+
+`open operator fun timesAssign(other: `[`StridedVector`](index.md)`): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L385)
+`open operator fun timesAssign(update: Double): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L394)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/times.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/times.md
new file mode 100644
index 0000000..dae0f09
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/times.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [times](.)
+
+# times
+
+`operator fun times(other: `[`StridedVector`](index.md)`): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L383)
+`operator fun times(update: Double): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L392)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/to-array.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/to-array.md
new file mode 100644
index 0000000..7fea4f5
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/to-array.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [toArray](.)
+
+# toArray
+
+`open fun toArray(): DoubleArray` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L421)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/to-string.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/to-string.md
new file mode 100644
index 0000000..346c618
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/to-string.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [toString](.)
+
+# toString
+
+`fun toString(maxDisplay: Int, format: `[`DecimalFormat`](http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html)` = DecimalFormat("#.####")): String` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L443)
+`open fun toString(): String` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L475)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/transpose.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/transpose.md
new file mode 100644
index 0000000..a0d4ad0
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/transpose.md
@@ -0,0 +1,11 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [transpose](.)
+
+# transpose
+
+`fun transpose(): `[`StridedMatrix2`](../-strided-matrix2/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L129)
+
+Constructs a column-vector view of this vector in O(1) time.
+
+A column vector is a matrix with [size](size.md) rows and a single column,
+e.g. `[1, 2, 3]^T` is `[[1], [2], [3]]`.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/unary-minus.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/unary-minus.md
new file mode 100644
index 0000000..9d511ea
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/unary-minus.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [unaryMinus](.)
+
+# unaryMinus
+
+`open operator fun unaryMinus(): `[`StridedVector`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L338)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/unary-plus.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/unary-plus.md
new file mode 100644
index 0000000..6e168ef
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/unary-plus.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [unaryPlus](.)
+
+# unaryPlus
+
+`operator fun unaryPlus(): `[`StridedVector`](index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L336)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/unsafe-index.md b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/unsafe-index.md
new file mode 100644
index 0000000..e4416e5
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/-strided-vector/unsafe-index.md
@@ -0,0 +1,5 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [StridedVector](index.md) / [unsafeIndex](.)
+
+# unsafeIndex
+
+`protected open fun unsafeIndex(pos: Int): Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L60)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/_-i.md b/docs/0.3.2/org.jetbrains.bio.viktor/_-i.md
new file mode 100644
index 0000000..c5ec7cf
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/_-i.md
@@ -0,0 +1,12 @@
+[0.3.2](../index.md) / [org.jetbrains.bio.viktor](index.md) / [_I](.)
+
+# _I
+
+`object _I` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMagic.kt#L9)
+
+A special object used to denote all indices.
+
+**Since**
+0.1.1 Renamed to `_I` because all-underscore names are reserved
+for internal use in Kotlin.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/arg-max.md b/docs/0.3.2/org.jetbrains.bio.viktor/arg-max.md
new file mode 100644
index 0000000..6869f64
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/arg-max.md
@@ -0,0 +1,8 @@
+[0.3.2](../index.md) / [org.jetbrains.bio.viktor](index.md) / [argMax](.)
+
+# argMax
+
+`fun `[`StridedVector`](-strided-vector/index.md)`.argMax(): Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/Searching.kt#L42)
+
+Returns the index of the maxmimum element.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/arg-min.md b/docs/0.3.2/org.jetbrains.bio.viktor/arg-min.md
new file mode 100644
index 0000000..9bcfc60
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/arg-min.md
@@ -0,0 +1,8 @@
+[0.3.2](../index.md) / [org.jetbrains.bio.viktor](index.md) / [argMin](.)
+
+# argMin
+
+`fun `[`StridedVector`](-strided-vector/index.md)`.argMin(): Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/Searching.kt#L26)
+
+Returns the index of the minimum element.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/arg-sort.md b/docs/0.3.2/org.jetbrains.bio.viktor/arg-sort.md
new file mode 100644
index 0000000..d54b4e9
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/arg-sort.md
@@ -0,0 +1,11 @@
+[0.3.2](../index.md) / [org.jetbrains.bio.viktor](index.md) / [argSort](.)
+
+# argSort
+
+`fun `[`StridedVector`](-strided-vector/index.md)`.argSort(reverse: Boolean = false): IntArray` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/Sorting.kt#L20)
+
+Returns a permutation of indices which makes the vector sorted.
+
+### Parameters
+
+`reverse` - see [.sort](#) for details.
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/index.md
new file mode 100644
index 0000000..a414ac2
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/index.md
@@ -0,0 +1,42 @@
+[0.3.2](../index.md) / [org.jetbrains.bio.viktor](.)
+
+## Package org.jetbrains.bio.viktor
+
+### Types
+
+| Name | Summary |
+|---|---|
+| [DenseVector](-dense-vector/index.md) | `open class DenseVector : `[`StridedVector`](-strided-vector/index.md)
A contiguous strided vector. |
+| [FlatMatrixOps](-flat-matrix-ops/index.md) | `interface FlatMatrixOps>`
A common interface for whole-matrix operations. |
+| [KahanSum](-kahan-sum/index.md) | `class KahanSum`
Kahan-Babuska summation. |
+| [LargeDenseVector](-large-dense-vector/index.md) | `class LargeDenseVector : `[`DenseVector`](-dense-vector/index.md)
A contiguous vector of size at least `[DenseVector.DENSE_SPLIT_SIZE] + 1`. |
+| [NativeSpeedups](-native-speedups/index.md) | `object NativeSpeedups` |
+| [ResourceLibrary](-resource-library/index.md) | `class ResourceLibrary` |
+| [SmallDenseVector](-small-dense-vector/index.md) | `class SmallDenseVector : `[`DenseVector`](-dense-vector/index.md)
A contiguous strided vector of size at most [DenseVector.DENSE_SPLIT_SIZE](-dense-vector/-d-e-n-s-e_-s-p-l-i-t_-s-i-z-e.md). |
+| [StridedMatrix](-strided-matrix/index.md) | `object StridedMatrix`
A strided matrix stored in a flat [DoubleArray](#). |
+| [StridedMatrix2](-strided-matrix2/index.md) | `class StridedMatrix2 : `[`FlatMatrixOps`](-flat-matrix-ops/index.md)`<`[`StridedMatrix2`](-strided-matrix2/index.md)`>`
A specialization of [StridedMatrix](-strided-matrix/index.md) for 2-D data. |
+| [StridedMatrix3](-strided-matrix3/index.md) | `class StridedMatrix3 : `[`FlatMatrixOps`](-flat-matrix-ops/index.md)`<`[`StridedMatrix3`](-strided-matrix3/index.md)`>`
A specialization of [StridedMatrix](-strided-matrix/index.md) for 3-D data. |
+| [StridedVector](-strided-vector/index.md) | `open class StridedVector`
A strided vector stored in a [DoubleArray](#). |
+| [_I](_-i.md) | `object _I`
A special object used to denote all indices. |
+
+### Extensions for External Classes
+
+| Name | Summary |
+|---|---|
+| [kotlin.Double](kotlin.-double/index.md) | |
+| [kotlin.DoubleArray](kotlin.-double-array/index.md) | |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [argMax](arg-max.md) | `fun `[`StridedVector`](-strided-vector/index.md)`.argMax(): Int`
Returns the index of the maxmimum element. |
+| [argMin](arg-min.md) | `fun `[`StridedVector`](-strided-vector/index.md)`.argMin(): Int`
Returns the index of the minimum element. |
+| [argSort](arg-sort.md) | `fun `[`StridedVector`](-strided-vector/index.md)`.argSort(reverse: Boolean = false): IntArray`
Returns a permutation of indices which makes the vector sorted. |
+| [partition](partition.md) | `fun `[`StridedVector`](-strided-vector/index.md)`.partition(p: Int): Unit`
Partitions the vector. |
+| [quantile](quantile.md) | `fun `[`StridedVector`](-strided-vector/index.md)`.quantile(q: Double = 0.5, randomGenerator: RandomGenerator = DEFAULT_RANDOM): Double`
Computes the [q](quantile.md#org.jetbrains.bio.viktor$quantile(org.jetbrains.bio.viktor.StridedVector, kotlin.Double, org.apache.commons.math3.random.RandomGenerator)/q)-th order statistic over this vector. |
+| [reorder](reorder.md) | `fun `[`StridedVector`](-strided-vector/index.md)`.reorder(indices: IntArray): Unit`
Applies a given permutation of indices to the elements in the vector. |
+| [reshape](reshape.md) | `fun `[`StridedVector`](-strided-vector/index.md)`.reshape(depth: Int, numRows: Int, numColumns: Int): `[`StridedMatrix3`](-strided-matrix3/index.md)
`fun `[`StridedVector`](-strided-vector/index.md)`.reshape(numRows: Int, numColumns: Int): `[`StridedMatrix2`](-strided-matrix2/index.md)
Reshapes this vector into a matrix in row-major order. |
+| [searchSorted](search-sorted.md) | `fun `[`StridedVector`](-strided-vector/index.md)`.searchSorted(target: Double): Int`
Returns the insertion index of [target](search-sorted.md#org.jetbrains.bio.viktor$searchSorted(org.jetbrains.bio.viktor.StridedVector, kotlin.Double)/target) into a sorted vector. |
+| [shuffle](shuffle.md) | `fun `[`StridedVector`](-strided-vector/index.md)`.shuffle(randomGenerator: RandomGenerator = DEFAULT_RANDOM): Unit`
Randomly permutes the elements of this vector. |
+| [sort](sort.md) | `fun `[`StridedVector`](-strided-vector/index.md)`.sort(reverse: Boolean = false): Unit`
Sorts the elements in this vector in in descending order. |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double-array/as-strided.md b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double-array/as-strided.md
new file mode 100644
index 0000000..79aedfd
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double-array/as-strided.md
@@ -0,0 +1,8 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [kotlin.DoubleArray](index.md) / [asStrided](.)
+
+# asStrided
+
+`fun DoubleArray.asStrided(offset: Int = 0, size: Int = this.size): `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedVector.kt#L10)
+
+Wraps a given array of elements. The array will not be copied.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double-array/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double-array/index.md
new file mode 100644
index 0000000..29860e3
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double-array/index.md
@@ -0,0 +1,7 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [kotlin.DoubleArray](.)
+
+### Extensions for kotlin.DoubleArray
+
+| Name | Summary |
+|---|---|
+| [asStrided](as-strided.md) | `fun DoubleArray.asStrided(offset: Int = 0, size: Int = this.size): `[`StridedVector`](../-strided-vector/index.md)
Wraps a given array of elements. The array will not be copied. |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/div.md b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/div.md
new file mode 100644
index 0000000..3b73b8a
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/div.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [kotlin.Double](index.md) / [div](.)
+
+# div
+
+`operator fun Double.div(other: `[`StridedVector`](../-strided-vector/index.md)`): `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DoubleExtensions.kt#L59)
+`operator fun > Double.div(other: T): T` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DoubleExtensions.kt#L65)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/index.md b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/index.md
new file mode 100644
index 0000000..0121e30
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/index.md
@@ -0,0 +1,11 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [kotlin.Double](.)
+
+### Extensions for kotlin.Double
+
+| Name | Summary |
+|---|---|
+| [div](div.md) | `operator fun Double.div(other: `[`StridedVector`](../-strided-vector/index.md)`): `[`StridedVector`](../-strided-vector/index.md)
`operator fun > Double.div(other: T): T` |
+| [logAddExp](log-add-exp.md) | `infix fun Double.logAddExp(b: Double): Double`
Evaluates log(exp(a) + exp(b)) using the following trick |
+| [minus](minus.md) | `operator fun Double.minus(other: `[`StridedVector`](../-strided-vector/index.md)`): `[`StridedVector`](../-strided-vector/index.md)
`operator fun > Double.minus(other: T): T` |
+| [plus](plus.md) | `operator fun Double.plus(other: `[`StridedVector`](../-strided-vector/index.md)`): `
`operator fun > Double.plus(other: T): ` |
+| [times](times.md) | `operator fun Double.times(other: `[`StridedVector`](../-strided-vector/index.md)`): `
`operator fun > Double.times(other: T): ` |
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/log-add-exp.md b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/log-add-exp.md
new file mode 100644
index 0000000..063e264
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/log-add-exp.md
@@ -0,0 +1,12 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [kotlin.Double](index.md) / [logAddExp](.)
+
+# logAddExp
+
+`infix fun Double.logAddExp(b: Double): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/MoreMath.kt#L12)
+
+Evaluates log(exp(a) + exp(b)) using the following trick
+
+log(exp(a) + log(exp(b)) = a + log(1 + exp(b - a))
+
+assuming a >= b.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/minus.md b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/minus.md
new file mode 100644
index 0000000..d9b71dc
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/minus.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [kotlin.Double](index.md) / [minus](.)
+
+# minus
+
+`operator fun Double.minus(other: `[`StridedVector`](../-strided-vector/index.md)`): `[`StridedVector`](../-strided-vector/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DoubleExtensions.kt#L28)
+`operator fun > Double.minus(other: T): T` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DoubleExtensions.kt#L34)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/plus.md b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/plus.md
new file mode 100644
index 0000000..587bfec
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/plus.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [kotlin.Double](index.md) / [plus](.)
+
+# plus
+
+`inline operator fun Double.plus(other: `[`StridedVector`](../-strided-vector/index.md)`): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DoubleExtensions.kt#L40)
+`inline operator fun > Double.plus(other: T): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DoubleExtensions.kt#L42)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/times.md b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/times.md
new file mode 100644
index 0000000..f622ca1
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/kotlin.-double/times.md
@@ -0,0 +1,6 @@
+[0.3.2](../../index.md) / [org.jetbrains.bio.viktor](../index.md) / [kotlin.Double](index.md) / [times](.)
+
+# times
+
+`inline operator fun Double.times(other: `[`StridedVector`](../-strided-vector/index.md)`): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DoubleExtensions.kt#L44)
+`inline operator fun > Double.times(other: T): ` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/DoubleExtensions.kt#L46)
\ No newline at end of file
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/partition.md b/docs/0.3.2/org.jetbrains.bio.viktor/partition.md
new file mode 100644
index 0000000..1dc4086
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/partition.md
@@ -0,0 +1,23 @@
+[0.3.2](../index.md) / [org.jetbrains.bio.viktor](index.md) / [partition](.)
+
+# partition
+
+`fun `[`StridedVector`](-strided-vector/index.md)`.partition(p: Int): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/Sorting.kt#L75)
+
+Partitions the vector.
+
+Rearranges the elements in this vector in such a way that
+the [p](partition.md#org.jetbrains.bio.viktor$partition(org.jetbrains.bio.viktor.StridedVector, kotlin.Int)/p)-th element moves to its position in the sorted copy
+of the vector. All elements smaller than the [p](partition.md#org.jetbrains.bio.viktor$partition(org.jetbrains.bio.viktor.StridedVector, kotlin.Int)/p)-th element
+are moved before this element, and all elements greater or
+equals to this element are moved behind it.
+
+The operation is done **in place**.
+
+### Parameters
+
+`p` - the index of the element to partition by.
+
+**Since**
+0.2.3
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/quantile.md b/docs/0.3.2/org.jetbrains.bio.viktor/quantile.md
new file mode 100644
index 0000000..9726193
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/quantile.md
@@ -0,0 +1,17 @@
+[0.3.2](../index.md) / [org.jetbrains.bio.viktor](index.md) / [quantile](.)
+
+# quantile
+
+`fun `[`StridedVector`](-strided-vector/index.md)`.quantile(q: Double = 0.5, randomGenerator: RandomGenerator = DEFAULT_RANDOM): Double` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/Random.kt#L51)
+
+Computes the [q](quantile.md#org.jetbrains.bio.viktor$quantile(org.jetbrains.bio.viktor.StridedVector, kotlin.Double, org.apache.commons.math3.random.RandomGenerator)/q)-th order statistic over this vector.
+
+The implementation follows that of Commons Math. See JavaDoc of
+[Percentile](#) for computational details.
+
+The vector is modified in-place. Do a [copy](#) of the vector
+to avoid mutation if necessary.
+
+**Since**
+0.2.0
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/reorder.md b/docs/0.3.2/org.jetbrains.bio.viktor/reorder.md
new file mode 100644
index 0000000..05416e2
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/reorder.md
@@ -0,0 +1,8 @@
+[0.3.2](../index.md) / [org.jetbrains.bio.viktor](index.md) / [reorder](.)
+
+# reorder
+
+`fun `[`StridedVector`](-strided-vector/index.md)`.reorder(indices: IntArray): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/Sorting.kt#L41)
+
+Applies a given permutation of indices to the elements in the vector.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/reshape.md b/docs/0.3.2/org.jetbrains.bio.viktor/reshape.md
new file mode 100644
index 0000000..278b32f
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/reshape.md
@@ -0,0 +1,9 @@
+[0.3.2](../index.md) / [org.jetbrains.bio.viktor](index.md) / [reshape](.)
+
+# reshape
+
+`fun `[`StridedVector`](-strided-vector/index.md)`.reshape(depth: Int, numRows: Int, numColumns: Int): `[`StridedMatrix3`](-strided-matrix3/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix3.kt#L149)
+`fun `[`StridedVector`](-strided-vector/index.md)`.reshape(numRows: Int, numColumns: Int): `[`StridedMatrix2`](-strided-matrix2/index.md) [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/StridedMatrix2.kt#L213)
+
+Reshapes this vector into a matrix in row-major order.
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/search-sorted.md b/docs/0.3.2/org.jetbrains.bio.viktor/search-sorted.md
new file mode 100644
index 0000000..4063306
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/search-sorted.md
@@ -0,0 +1,14 @@
+[0.3.2](../index.md) / [org.jetbrains.bio.viktor](index.md) / [searchSorted](.)
+
+# searchSorted
+
+`fun `[`StridedVector`](-strided-vector/index.md)`.searchSorted(target: Double): Int` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/Searching.kt#L11)
+
+Returns the insertion index of [target](search-sorted.md#org.jetbrains.bio.viktor$searchSorted(org.jetbrains.bio.viktor.StridedVector, kotlin.Double)/target) into a sorted vector.
+
+If [target](search-sorted.md#org.jetbrains.bio.viktor$searchSorted(org.jetbrains.bio.viktor.StridedVector, kotlin.Double)/target) already appears in this vector, the returned
+index is just before the leftmost occurrence of [target](search-sorted.md#org.jetbrains.bio.viktor$searchSorted(org.jetbrains.bio.viktor.StridedVector, kotlin.Double)/target).
+
+**Since**
+0.2.3
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/shuffle.md b/docs/0.3.2/org.jetbrains.bio.viktor/shuffle.md
new file mode 100644
index 0000000..f387a3a
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/shuffle.md
@@ -0,0 +1,13 @@
+[0.3.2](../index.md) / [org.jetbrains.bio.viktor](index.md) / [shuffle](.)
+
+# shuffle
+
+`fun `[`StridedVector`](-strided-vector/index.md)`.shuffle(randomGenerator: RandomGenerator = DEFAULT_RANDOM): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/Random.kt#L76)
+
+Randomly permutes the elements of this vector.
+
+See https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle.
+
+**Since**
+0.2.0
+
diff --git a/docs/0.3.2/org.jetbrains.bio.viktor/sort.md b/docs/0.3.2/org.jetbrains.bio.viktor/sort.md
new file mode 100644
index 0000000..5eea692
--- /dev/null
+++ b/docs/0.3.2/org.jetbrains.bio.viktor/sort.md
@@ -0,0 +1,14 @@
+[0.3.2](../index.md) / [org.jetbrains.bio.viktor](index.md) / [sort](.)
+
+# sort
+
+`fun `[`StridedVector`](-strided-vector/index.md)`.sort(reverse: Boolean = false): Unit` [(source)](https://github.com/JetBrains-Research/viktor/blob/0.3.2/src/main/kotlin/org/jetbrains/bio/viktor/Sorting.kt#L13)
+
+Sorts the elements in this vector in in descending order.
+
+The operation is done **in place**.
+
+### Parameters
+
+`reverse` - if `true` the elements are sorted in `ascending` order.
+Defaults to `false`.
\ No newline at end of file