basis.math

FMxN

trait FMxN extends VectorSpace

An abstract M by N matrix space over a ring. Matrix spaces describe linear maps between vector spaces relative to the vector spaces' assumed bases. Matrix addition associates and commutes, and scalar multiplication associates, commutes, and distributes over matrix addition and scalar addition. Matrix and vector multiplication also both associate and distribute over matrix addition. Vectors in the row space multiply as columns on the right, and vectors in the column space multiply as rows on the left. Addition and scalar multiplication both have an identity element, and every matrix has an additive inverse. To the extent practicable, the following axioms should hold.

Axioms for matrix addition:

Axioms for scalar multiplication:

Axioms for vector multiplication:

Axioms for matrix multiplication:

Distributive laws:

Self Type
FMxN
Source
FMxN.scala
Version

0.1

Since

0.0

Linear Supertypes
VectorSpace, AnyRef, Any
Known Subclasses
Type Hierarchy Learn more about scaladoc diagrams
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. FMxN
  2. VectorSpace
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. type Col = (Col)#Vector

    The type of vectors in the column space.

  2. abstract type Matrix <: MatrixFMxN

    The type of matrices in this matrix space.

  3. trait MatrixFMxN extends VectorElement

    A matrix in this matrix space.

  4. type Row = (Row)#Vector

    The type of vectors in the row space.

  5. type Scalar = Element

    The type of scalars in this matrix space.

    The type of scalars in this matrix space.

    Definition Classes
    VectorSpace
  6. type Transpose = (Transpose)#Matrix

    The type of matrix transposes.

  7. type Vector = Matrix

    The type of vectors in this matrix space; equivalent to the type of matrices.

    The type of vectors in this matrix space; equivalent to the type of matrices.

    Definition Classes
    FMxNVectorSpace
  8. trait VectorElement extends Any

    A vector in this vector space.

    A vector in this vector space.

    Definition Classes
    VectorSpace

Abstract Value Members

  1. abstract val Col: FN { val Scalar: FMxN.this.Scalar.type }

  2. abstract val Row: FN { val Scalar: FMxN.this.Scalar.type }

    Returns the row space.

  3. abstract val Scalar: Ring

    Returns the scalar set of this vector space.

    Returns the scalar set of this vector space.

    Definition Classes
    VectorSpace
  4. implicit abstract def ScalarTag: ClassTag[Scalar]

  5. abstract val Transpose: FMxN { ... /* 3 definitions in type refinement */ }

    Returns the transpose of this matrix space.

  6. abstract def apply(entries: Array[Scalar]): Matrix

    Returns a new matrix with the given row-major entries.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def cols(cols: Col*): Matrix

    Returns a new matrix with the given columns.

  7. def dim: Int

  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  17. def product[A <: FMxN { val Scalar: FMxN.this.Scalar.type }, B <: FMxN { val Scalar: FMxN.this.Scalar.type }](matrixA: product.A.MatrixFMxN, matrixB: product.B.MatrixFMxN): Matrix

    Returns the matrix product of the first matrix, whose column space equals this column space, times the second matrix, whose row space equals this row space, where the row space of the first matrix equals the column space of the second matrix.

  18. def rows(rows: Row*): Matrix

    Returns a new matrix with the given rows.

  19. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  20. def toString(): String

    Definition Classes
    AnyRef → Any
  21. def unit: Matrix

    Returns the identity matrix of this matrix space, if one exists.

  22. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. def zero: Matrix

    Returns the additive identity of this matrix space.

    Returns the additive identity of this matrix space.

    Definition Classes
    FMxNVectorSpace

Inherited from VectorSpace

Inherited from AnyRef

Inherited from Any

Ungrouped