kmath/docs/linear.md
Iaroslav Postovalov c97f81b277
Merge remote-tracking branch 'origin/dev' into even-more-docs
# Conflicts:
#	build.gradle.kts
#	kmath-core/src/commonMain/kotlin/kscience/kmath/operations/Complex.kt
#	kmath-memory/src/commonMain/kotlin/kscience/kmath/memory/Memory.kt
#	kmath-memory/src/commonMain/kotlin/kscience/kmath/memory/MemorySpec.kt
#	kmath-memory/src/commonMain/kotlin/kscience/memory/Memory.kt
#	kmath-memory/src/commonMain/kotlin/kscience/memory/MemorySpec.kt
#	kmath-memory/src/commonMain/kotlin/scientifik/memory/Memory.kt
#	kmath-memory/src/commonMain/kotlin/scientifik/memory/MemorySpec.kt
#	kmath-memory/src/jsMain/kotlin/kscience/kmath/memory/DataViewMemory.kt
#	kmath-memory/src/jsMain/kotlin/kscience/memory/DataViewMemory.kt
#	kmath-memory/src/jsMain/kotlin/scientifik/memory/DataViewMemory.kt
#	kmath-memory/src/jvmMain/kotlin/kscience/kmath/memory/ByteBufferMemory.kt
#	kmath-memory/src/jvmMain/kotlin/kscience/memory/ByteBufferMemory.kt
#	kmath-memory/src/jvmMain/kotlin/scientifik/memory/ByteBufferMemory.kt
2020-09-28 03:10:24 +07:00

880 B

Basic linear algebra layout

KMath support for linear algebra organized in a context-oriented way. Meaning that operations are in most cases declared in context classes, and are not the members of classes that store data. This allows more flexible approach to maintain multiple back-ends. The new operations added as extensions to contexts instead of being member functions of data structures.

Two major contexts used for linear algebra and hyper-geometry:

  • VectorSpace forms a mathematical space on top of array-like structure (Buffer and its type alias Point used for geometry).

  • MatrixContext forms a space-like context for 2d-structures. It does not store matrix size and therefore does not implement Space interface (it is impossible to create zero element without knowing the matrix size).

Vector spaces

Matrix operations

Back-end overview