scalation.linalgebra

Matrii

Related Doc: package linalgebra

trait Matrii extends Error

The Matrii trait specifies the operations to be defined by four concrete implemeting classes: MatrixI.

Linear Supertypes
Error, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Matrii
  2. Error
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def *(x: Int): Matrii

    Multiply this matrix by scalar x.

    Multiply this matrix by scalar x.

    x

    the scalar to multiply by

  2. abstract def *(u: VectorI): VectorI

    Multiply this matrix by vector u.

    Multiply this matrix by vector u.

    u

    the vector to multiply by

  3. abstract def **(u: VectorI): Matrii

    Multiply this matrix by vector u to produce another matrix (a_ij * u_j)

    Multiply this matrix by vector u to produce another matrix (a_ij * u_j)

    u

    the vector to multiply by

  4. abstract def **=(u: VectorI): Matrii

    Multiply in-place this matrix by vector u to produce another matrix (a_ij * u_j)

    Multiply in-place this matrix by vector u to produce another matrix (a_ij * u_j)

    u

    the vector to multiply by

  5. abstract def *=(x: Int): Matrii

    Multiply in-place this matrix by scalar x.

    Multiply in-place this matrix by scalar x.

    x

    the scalar to multiply by

  6. abstract def +(x: Int): Matrii

    Add this matrix and scalar x.

    Add this matrix and scalar x.

    x

    the scalar to add

  7. abstract def +(b: Matrii): Matrii

  8. abstract def ++(u: VectorI): Matrii

    Concatenate this matrix and vector u.

    Concatenate this matrix and vector u.

    u

    the vector to be concatenated as the new last row in matrix

  9. abstract def +=(x: Int): Matrii

    Add in-place this matrix and scalar x.

    Add in-place this matrix and scalar x.

    x

    the scalar to add

  10. abstract def -(x: Int): Matrii

    From this matrix subtract scalar x.

    From this matrix subtract scalar x.

    x

    the scalar to subtract

  11. abstract def -=(x: Int): Matrii

    From this matrix subtract in-place scalar x.

    From this matrix subtract in-place scalar x.

    x

    the scalar to subtract

  12. abstract def /(x: Int): Matrii

    Divide this matrix by scalar x.

    Divide this matrix by scalar x.

    x

    the scalar to divide by

  13. abstract def /=(x: Int): Matrii

    Divide in-place this matrix by scalar x.

    Divide in-place this matrix by scalar x.

    x

    the scalar to divide by

  14. abstract def apply(i: Int, jr: Range): VectorI

    Get a slice this matrix row-wise at index i and column-wise on range jr.

    Get a slice this matrix row-wise at index i and column-wise on range jr. Ex: u = a(2, 3..5)

    i

    the row index

    jr

    the column range

  15. abstract def apply(ir: Range, j: Int): VectorI

    Get a slice this matrix row-wise on range ir and column-wise at index j.

    Get a slice this matrix row-wise on range ir and column-wise at index j. Ex: u = a(2..4, 3)

    ir

    the row range

    j

    the column index

  16. abstract def apply(ir: Range, jr: Range): Matrii

    Get a slice this matrix row-wise on range ir and column-wise on range jr.

    Get a slice this matrix row-wise on range ir and column-wise on range jr. Ex: b = a(2..4, 3..5)

    ir

    the row range

    jr

    the column range

  17. abstract def apply(i: Int): VectorI

    Get this matrix's vector at the i-th index position (i-th row).

    Get this matrix's vector at the i-th index position (i-th row).

    i

    the row index

  18. abstract def apply(i: Int, j: Int): Int

    Get this matrix's element at the i,j-th index position.

    Get this matrix's element at the i,j-th index position.

    i

    the row index

    j

    the column index

  19. abstract def clean(thres: Int, relative: Boolean = true): Matrii

    Clean values in matrix at or below the threshold by setting them to zero.

    Clean values in matrix at or below the threshold by setting them to zero. Iterative algorithms give approximate values and if very close to zero, may throw off other calculations, e.g., in computing eigenvectors.

    thres

    the cutoff threshold (a small value)

    relative

    whether to use relative or absolute cutoff

  20. abstract def col(col: Int, from: Int = 0): VectorI

    Get column 'col' from the matrix, returning it as a vector.

    Get column 'col' from the matrix, returning it as a vector.

    col

    the column to extract from the matrix

    from

    the position to start extracting from

  21. abstract def det: Int

    Compute the determinant of this matrix.

  22. abstract def diag(p: Int, q: Int): Matrii

    Form a matrix [Ip, this, Iq] where Ir is a r by r identity matrix, by positioning the three matrices Ip, this and Iq along the diagonal.

    Form a matrix [Ip, this, Iq] where Ir is a r by r identity matrix, by positioning the three matrices Ip, this and Iq along the diagonal.

    p

    the size of identity matrix Ip

    q

    the size of identity matrix Iq

  23. abstract val dim1: Int

    Matrix dimension 1 (# rows)

  24. abstract val dim2: Int

    Matrix dimension 2 (# columns)

  25. abstract def getDiag(k: Int = 0): VectorI

    Get the kth diagonal of this matrix.

    Get the kth diagonal of this matrix. Assumes dim2 >= dim1.

    k

    how far above the main diagonal, e.g., (-1, 0, 1) for (sub, main, super)

  26. abstract def inverse: Matrii

    Invert this matrix (requires a squareMatrix) using partial pivoting.

  27. abstract def inverse_ip: Matrii

    Invert in-place this matrix (requires a squareMatrix) using partial pivoting.

  28. abstract def inverse_npp: Matrii

    Invert this matrix (requires a squareMatrix) not using partial pivoting.

  29. abstract def isNonnegative: Boolean

    Check whether this matrix is nonnegative (has no negative elements).

  30. abstract def isRectangular: Boolean

    Check whether this matrix is rectangular (all rows have the same number of columns).

  31. abstract def lud: (Matrii, Matrii)

    Decompose this matrix into the product of lower and upper triangular matrices (l, u) using the LU Decomposition algorithm.

    Decompose this matrix into the product of lower and upper triangular matrices (l, u) using the LU Decomposition algorithm. This version uses partial pivoting.

  32. abstract def lud_ip: (Matrii, Matrii)

    Decompose in-place this matrix into the product of lower and upper triangular matrices (l, u) using the LU Decomposition algorithm.

    Decompose in-place this matrix into the product of lower and upper triangular matrices (l, u) using the LU Decomposition algorithm. This version uses partial pivoting.

  33. abstract def max(e: Int = dim1): Int

    Find the maximum element in this matrix.

    Find the maximum element in this matrix.

    e

    the ending row index (exclusive) for the search

  34. abstract def min(e: Int = dim1): Int

    Find the minimum element in this matrix.

    Find the minimum element in this matrix.

    e

    the ending row index (exclusive) for the search

  35. abstract def norm1: Int

    Compute the 1-norm of this matrix, i.e., the maximum 1-norm of the column vectors.

    Compute the 1-norm of this matrix, i.e., the maximum 1-norm of the column vectors. This is useful for comparing matrices (a - b).norm1

  36. abstract def nullspace: VectorI

    Compute the (right) nullspace of this m by n matrix (requires n = m + 1) by performing Gauss-Jordan reduction and extracting the negation of the last column augmented by 1.

    Compute the (right) nullspace of this m by n matrix (requires n = m + 1) by performing Gauss-Jordan reduction and extracting the negation of the last column augmented by 1. The nullspace of matrix a is "this vector v times any scalar s", i.e., a*(v*s) = 0. The left nullspace of matrix a is the same as the right nullspace of a.t (a transpose).

  37. abstract def nullspace_ip: VectorI

    Compute the (right) nullspace in-place of this m by n matrix (requires n = m + 1) by performing Gauss-Jordan reduction and extracting the negation of the last column augmented by 1.

    Compute the (right) nullspace in-place of this m by n matrix (requires n = m + 1) by performing Gauss-Jordan reduction and extracting the negation of the last column augmented by 1. The nullspace of matrix a is "this vector v times any scalar s", i.e., a*(v*s) = 0. The left nullspace of matrix a is the same as the right nullspace of a.t (a transpose).

  38. abstract def reduce: Matrii

    Use Gauss-Jordan reduction on this matrix to make the left part embed an identity matrix.

    Use Gauss-Jordan reduction on this matrix to make the left part embed an identity matrix. A constraint on this m by n matrix is that n >= m.

  39. abstract def reduce_ip: Unit

    Use Gauss-Jordan reduction in-place on this matrix to make the left part embed an identity matrix.

    Use Gauss-Jordan reduction in-place on this matrix to make the left part embed an identity matrix. A constraint on this m by n matrix is that n >= m.

  40. abstract def selectCols(colIndex: Array[Int]): Matrii

    Select columns from this matrix according to the given index/basis.

    Select columns from this matrix according to the given index/basis. Ex: Can be used to divide a matrix into a basis and a non-basis.

    colIndex

    the column index positions (e.g., (0, 2, 5))

  41. abstract def selectRows(rowIndex: Array[Int]): Matrii

    Select rows from this matrix according to the given index/basis.

    Select rows from this matrix according to the given index/basis.

    rowIndex

    the row index positions (e.g., (0, 2, 5))

  42. abstract def set(i: Int, u: VectorI, j: Int = 0): Unit

    Set this matrix's ith row starting a column j to the vector u.

    Set this matrix's ith row starting a column j to the vector u.

    i

    the row index

    u

    the vector value to assign

    j

    the starting column index

  43. abstract def set(u: Array[Array[Int]]): Unit

    Set the values in this matrix as copies of the values in 2D array u.

    Set the values in this matrix as copies of the values in 2D array u.

    u

    the 2D array of values to assign

  44. abstract def set(x: Int): Unit

    Set all the elements in this matrix to the scalar x.

    Set all the elements in this matrix to the scalar x.

    x

    the scalar value to assign

  45. abstract def setCol(col: Int, u: VectorI): Unit

    Set column 'c' of the matrix to a vector.

    Set column 'c' of the matrix to a vector.

    u

    the vector to assign to the column

  46. abstract def setDiag(x: Int): Unit

    Set the main diagonal of this matrix to the scalar x.

    Set the main diagonal of this matrix to the scalar x. Assumes dim2 >= dim1.

    x

    the scalar to set the diagonal to

  47. abstract def setDiag(u: VectorI, k: Int = 0): Unit

    Set the kth diagonal of this matrix to the vector u.

    Set the kth diagonal of this matrix to the vector u. Assumes dim2 >= dim1.

    u

    the vector to set the diagonal to

    k

    how far above the main diagonal, e.g., (-1, 0, 1) for (sub, main, super)

  48. abstract def slice(r_from: Int, r_end: Int, c_from: Int, c_end: Int): Matrii

    Slice this matrix row-wise r_from to r_end and column-wise c_from to c_end.

    Slice this matrix row-wise r_from to r_end and column-wise c_from to c_end.

    r_from

    the start of the row slice (inclusive)

    r_end

    the end of the row slice (exclusive)

    c_from

    the start of the column slice (inclusive)

    c_end

    the end of the column slice (exclusive)

  49. abstract def slice(from: Int, end: Int): Matrii

    Slice this matrix row-wise from to end.

    Slice this matrix row-wise from to end.

    from

    the start row of the slice (inclusive)

    end

    the end row of the slice (exclusive)

  50. abstract def sliceExclude(row: Int, col: Int): Matrii

    Slice this matrix excluding the given row and column.

    Slice this matrix excluding the given row and column.

    row

    the row to exclude

    col

    the column to exclude

  51. abstract def solve(b: VectorI): VectorI

    Solve for x in the equation a*x = b where a is this matrix (see lud above).

    Solve for x in the equation a*x = b where a is this matrix (see lud above).

    b

    the constant vector.

  52. abstract def solve(lu: (Matrii, Matrii), b: VectorI): VectorI

    Solve for x in the equation l*u*x = b (see lud above).

    Solve for x in the equation l*u*x = b (see lud above).

    lu

    the lower and upper triangular matrices

    b

    the constant vector

  53. abstract def solve(l: Matrii, u: Matrii, b: VectorI): VectorI

    Solve for x in the equation l*u*x = b (see lud above).

    Solve for x in the equation l*u*x = b (see lud above).

    l

    the lower triangular matrix

    u

    the upper triangular matrix

    b

    the constant vector

  54. abstract def sum: Int

    Compute the sum of this matrix, i.e., the sum of its elements.

  55. abstract def sumAbs: Int

    Compute the abs sum of this matrix, i.e., the sum of the absolute value of its elements.

    Compute the abs sum of this matrix, i.e., the sum of the absolute value of its elements. This is useful for comparing matrices (a - b).sumAbs

  56. abstract def sumLower: Int

    Compute the sum of the lower triangular region of this matrix.

  57. abstract def t: Matrii

    Transpose this matrix (rows => columns).

  58. abstract def trace: Int

    Compute the trace of this matrix, i.e., the sum of the elements on the main diagonal.

    Compute the trace of this matrix, i.e., the sum of the elements on the main diagonal. Should also equal the sum of the eigenvalues.

    See also

    Eigen.scala

  59. abstract def update(i: Int, jr: Range, u: VectorI): Unit

    Set a slice this matrix row-wise at index i and column-wise on range jr.

    Set a slice this matrix row-wise at index i and column-wise on range jr. Ex: a(2, 3..5) = u

    i

    the row index

    jr

    the column range

    u

    the vector to assign

  60. abstract def update(ir: Range, j: Int, u: VectorI): Unit

    Set a slice this matrix row-wise on range ir and column-wise at index j.

    Set a slice this matrix row-wise on range ir and column-wise at index j. Ex: a(2..4, 3) = u

    ir

    the row range

    j

    the column index

    u

    the vector to assign

  61. abstract def update(i: Int, u: VectorI): Unit

    Set this matrix's row at the i-th index position to the vector u.

    Set this matrix's row at the i-th index position to the vector u.

    i

    the row index

    u

    the vector value to assign

  62. abstract def update(i: Int, j: Int, x: Int): Unit

    Set this matrix's element at the i,j-th index position to the scalar x.

    Set this matrix's element at the i,j-th index position to the scalar x.

    i

    the row index

    j

    the column index

    x

    the scalar value to assign

  63. abstract def ~^(p: Int): Matrii

    Raise this matrix to the pth power (for some integer p >= 2).

    Raise this matrix to the pth power (for some integer p >= 2).

    p

    the power to raise this matrix to

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. final def eq(arg0: AnyRef): Boolean

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

    Definition Classes
    AnyRef → Any
  8. var fString: String

    Format string used for printing vector values (change using setFormat)

    Format string used for printing vector values (change using setFormat)

    Attributes
    protected
  9. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. def flaw(method: String, message: String): Unit

    Show the flaw by printing the error message.

    Show the flaw by printing the error message.

    method

    the method where the error occurred

    message

    the error message

    Definition Classes
    Error
  11. def foreach[U](f: (Array[Int]) ⇒ U): Unit

    Iterate over the matrix row by row.

    Iterate over the matrix row by row.

    f

    the function to apply

  12. final def getClass(): Class[_]

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

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

    Definition Classes
    Any
  15. def isSquare: Boolean

    Check whether this matrix is square (same row and column dimensions).

  16. def isSymmetric: Boolean

    Check whether this matrix is symmetric.

  17. def leDimensions(b: Matrii): Boolean

    Check whether this matrix dimensions are less than or equal to (le) those of the other Matrix.

    Check whether this matrix dimensions are less than or equal to (le) those of the other Matrix.

    b

    the other matrix

  18. def mag: Int

    Find the magnitude of this matrix, the element value farthest from zero.

  19. final def ne(arg0: AnyRef): Boolean

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

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

    Definition Classes
    AnyRef
  22. val range1: Range

    Range for the storage array on dimension 1 (rows)

    Range for the storage array on dimension 1 (rows)

    Attributes
    protected
  23. val range2: Range

    Range for the storage array on dimension 2 (columns)

    Range for the storage array on dimension 2 (columns)

    Attributes
    protected
  24. def rank: Int

    Determine the rank of this m by n matrix by taking the upper triangular matrix from the LU Decomposition and counting the number of non-zero diagonal elements.

  25. def sameCrossDimensions(b: Matrii): Boolean

    Check whether this matrix and the other matrix have the same cross dimensions.

    Check whether this matrix and the other matrix have the same cross dimensions.

    b

    the other matrix

  26. def sameDimensions(b: Matrii): Boolean

    Check whether this matrix and the other Matrix have the same dimensions.

    Check whether this matrix and the other Matrix have the same dimensions.

    b

    the other matrix

  27. def setFormat(newFormat: String): Unit

    Set the format to the newFormat.

    Set the format to the newFormat.

    newFormat

    the new format string

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

    Definition Classes
    AnyRef
  29. def toString(): String

    Definition Classes
    AnyRef → Any
  30. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Error

Inherited from AnyRef

Inherited from Any

Ungrouped