Packages

  • package root
    Definition Classes
    root
  • package de
    Definition Classes
    root
  • package h2b
    Definition Classes
    de
  • package scala
    Definition Classes
    h2b
  • package lib
    Definition Classes
    scala
  • package math
    Definition Classes
    lib
  • package linalg

    LinAlg provides data types and operations for algebraic vectors and matrices.

    LinAlg provides data types and operations for algebraic vectors and matrices.

    Vector and Matrix elements can be of arbitrary type, provided that a factory for that element type is available. Currently, factories exist for Double, Float, Long, Int, Short, Byte and Char.

    Vector and matrix (row and column) indices can be any integer (to state more precisely, an index must be in the interval [Mindex, Maxdex], as defined in the Index object). But only elements corresponding to a subset of that whole integer range actually are stored (the concrete elements), while all other elements by definition are zero (virtual elements).

    This concept (which I got to value a long time ago with the ALGOL68 library prelude TORRIX [1]) does not only provide a natural approach to operations with vectors and matrixes of different index ranges, but also prevents from index-out-of-bounds exceptions.

    Concrete index ranges (those indices that correspond to concrete elements) implicitly or explicitly are assigned when a vector or matrix is created. By default, it starts at 1 and extends to the number of elements specified, but this is customizable.

    Vectors and Matrixes both are immutable by design, so there exist no update methods or the like (you cannot do v(i) = something). There are, however, builder classes that allow you to build Vectors and Matrixes element by element.

    Currently, operations on vectors and matrices require identical element types. For instance, you can add a Vector[Int] to another Vector[Int], but you cannot add a Vector[Int] to another Vector[Double].

    Definition Classes
    math
    See also

    [1] S. G. van der Meulen, P. Kühling, "Programmieren in ALGOL68", Bd. II (Berlin, New York: de Gruyter), 149-188 (1977)

  • package building

    Vector and matrix builders.

    Vector and matrix builders.

    Since

    3.0.0

  • package factory

    Vector and matrix factories including scalar operations and concrete factories for standard types.

    Vector and matrix factories including scalar operations and concrete factories for standard types.

    Since

    3.0.0

  • package storage

    Storage engines for vectors and matrices.

    Storage engines for vectors and matrices.

    Since

    3.0.0

  • GenMatrixLike
  • GenVectorLike
  • Index
  • Index2
  • Matrix
  • MatrixLike
  • ScalarOps
  • SparseMatrix
  • SparseMatrixLike
  • SparseVector
  • SparseVectorLike
  • Vector
  • VectorLike
  • VectorOps

package linalg

LinAlg provides data types and operations for algebraic vectors and matrices.

Vector and Matrix elements can be of arbitrary type, provided that a factory for that element type is available. Currently, factories exist for Double, Float, Long, Int, Short, Byte and Char.

Vector and matrix (row and column) indices can be any integer (to state more precisely, an index must be in the interval [Mindex, Maxdex], as defined in the Index object). But only elements corresponding to a subset of that whole integer range actually are stored (the concrete elements), while all other elements by definition are zero (virtual elements).

This concept (which I got to value a long time ago with the ALGOL68 library prelude TORRIX [1]) does not only provide a natural approach to operations with vectors and matrixes of different index ranges, but also prevents from index-out-of-bounds exceptions.

Concrete index ranges (those indices that correspond to concrete elements) implicitly or explicitly are assigned when a vector or matrix is created. By default, it starts at 1 and extends to the number of elements specified, but this is customizable.

Vectors and Matrixes both are immutable by design, so there exist no update methods or the like (you cannot do v(i) = something). There are, however, builder classes that allow you to build Vectors and Matrixes element by element.

Currently, operations on vectors and matrices require identical element types. For instance, you can add a Vector[Int] to another Vector[Int], but you cannot add a Vector[Int] to another Vector[Double].

See also

[1] S. G. van der Meulen, P. Kühling, "Programmieren in ALGOL68", Bd. II (Berlin, New York: de Gruyter), 149-188 (1977)

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. linalg
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait GenMatrixLike[E, +M <: Matrix[E]] extends IterableLike[Vector[E], M]

    A template trait for matrices with operations suitable for all kinds of data storage.

    A template trait for matrices with operations suitable for all kinds of data storage. For performance reasons, some methods might be overriden by implementation traits in regard to specific storage engines.

    Since

    3.0.0

  2. trait GenVectorLike[E, +V <: Vector[E]] extends IterableLike[E, V]

    A template trait for vectors with operations suitable for all kinds of data storage.

    A template trait for vectors with operations suitable for all kinds of data storage. For performance reasons, some methods might be overriden by implementation traits in regard to specific storage engines.

    Since

    3.0.0

  3. class Index extends Seq[Int] with Equals

    Defines an immutable index range for vectors from low to high (both inclusive) with step 1.

  4. class Index2 extends Seq[(Int, Int)] with Equals

    Defines immutable index ranges for matrices from low to high (both inclusive) with step 1 in two dimensions (rows and columns), respectively.

  5. trait Matrix[E] extends Iterable[Vector[E]] with GenMatrixLike[E, Matrix[E]] with MatrixStore[E] with Equals with Immutable

    An immutable algebraic matrix consisting of E elements.

    An immutable algebraic matrix consisting of E elements.

    The index range of a matrix in both dimensions spans the whole Int set. The concrete range is [(index.dim1.low,index.dim1.high),(index.dim2.low,index.dim2.high)]; all values outside of the concrete range are treated as zero. An IndexOutOfBoundsException will never occur.

  6. trait MatrixLike[E, +M <: Matrix[E]] extends GenMatrixLike[E, M]

    Implementation trait for matrices of type Matrix[E}.

    Implementation trait for matrices of type Matrix[E}.

    Since

    2.0.0

  7. implicit class ScalarOps[E] extends AnyRef

    Defines vector and matrix operations on the scalar s as left operand.

  8. trait SparseMatrix[E] extends Matrix[E] with SparseMatrixLike[E, SparseMatrix[E]] with SparseRowMatrixStore[E]

    An immutable algebraic matrix with sparse storage of E elements.

    An immutable algebraic matrix with sparse storage of E elements.

    Since

    3.0.0

  9. trait SparseMatrixLike[E, +M <: SparseMatrix[E]] extends GenMatrixLike[E, M]

    Implementation trait for matrices of type SparseMatrix[E].

    Implementation trait for matrices of type SparseMatrix[E].

    Since

    3.0.0

  10. trait SparseVector[E] extends Vector[E] with SparseVectorLike[E, SparseVector[E]] with SparseVectorStore[E]

    An immutable algebraic vector with sparse storage of E elements.

    An immutable algebraic vector with sparse storage of E elements.

    Since

    3.0.0

  11. trait SparseVectorLike[E, +V <: SparseVector[E]] extends GenVectorLike[E, V]

    Implementation trait for vectors of type SparseVector[E].

    Implementation trait for vectors of type SparseVector[E].

    Since

    3.0.0

  12. trait Vector[E] extends Iterable[E] with GenVectorLike[E, Vector[E]] with VectorStore[E] with Equals with Immutable

    An immutable algebraic vector consisting of E elements.

    An immutable algebraic vector consisting of E elements.

    The index range of a vector spans the whole Int set. The concrete range is [index.low, index.high]; all values outside of the concrete range are treated as zero. An IndexOutOfBoundsException will never occur.

  13. trait VectorLike[E, +V <: Vector[E]] extends GenVectorLike[E, V]

    Implementation trait for vectors of type Vector[E}.

    Implementation trait for vectors of type Vector[E}.

    Since

    2.0.0

  14. implicit class VectorOps[E] extends AnyRef

    Defines matrix operations on the vector v as left operand.

Value Members

  1. object Index
  2. object Index2
  3. object Matrix
  4. object SparseMatrix
  5. object SparseVector
  6. object Vector

Inherited from AnyRef

Inherited from Any

Ungrouped