object SVDecomp extends SVDecomp
The SVDecomp
object provides several test matrices as well as methods
for making full representations, reducing dimensionality, determining rank
and testing SVD factorizations.
- Alphabetic
- By Inheritance
- SVDecomp
- SVDecomp
- Factorization
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
type
FactorType = (MatriD, VectoD, MatriD)
Factor type contains 'u, s, v' which are the left orthogonal matrix, the diagonal matrix/vector containing singular values and the right orthogonal matrix.
Factor type contains 'u, s, v' which are the left orthogonal matrix, the diagonal matrix/vector containing singular values and the right orthogonal matrix.
- Definition Classes
- SVDecomp
-
type
FactorTypeFull = (MatriD, MatriD, MatriD)
- Definition Classes
- SVDecomp
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val a1: MatrixD
- val a2: MatrixD
- val a3: MatrixD
- val a4: MatrixD
- val a5: MatrixD
- val a6: MatrixD
- val a7: MatrixD
- val a8: MatrixD
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
conditionNum: Double
Compute the condition number of 'this' matrix, i.e., the ratio of the largest singular value to the smallest.
Compute the condition number of 'this' matrix, i.e., the ratio of the largest singular value to the smallest. Note, if not of full rank, it will be infinity.
- Definition Classes
- SVDecomp
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
factor(): Unit
Factor/deflate the matrix by iteratively turning elements not in the main diagonal to zero.
Factor/deflate the matrix by iteratively turning elements not in the main diagonal to zero.
- Definition Classes
- SVDecomp → Factorization
-
def
factor1(): MatriD
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t', returning only the first matrix.
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t', returning only the first matrix.
- Definition Classes
- Factorization
-
def
factor12(): (MatriD, MatriD)
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t' or a = q * r, returning both the first and second matrices.
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t' or a = q * r, returning both the first and second matrices.
- Definition Classes
- Factorization
-
def
factor123(): FactorType
Factor/deflate the matrix by iteratively turning elements not in the main diagonal to zero.
Factor/deflate the matrix by iteratively turning elements not in the main diagonal to zero. Then return the vector of singular values (i.e., the main diagonal), along with the left and right singular matrices.
- Definition Classes
- SVDecomp
-
def
factor2(): MatriD
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t', returning only the second matrix.
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t', returning only the second matrix.
- Definition Classes
- Factorization
-
def
factorFull(u_s_v: FactorType): FactorTypeFull
Convert an SVD factoring to its full representation, returning the result as three matrices.
Convert an SVD factoring to its full representation, returning the result as three matrices.
- u_s_v
the 3-way factorization
-
val
factored: Boolean
Flag indicating whether the matrix has been factored
Flag indicating whether the matrix has been factored
- Attributes
- protected
- Definition Classes
- Factorization
-
def
factors: (MatriD, MatriD)
Return the two factored matrices.
Return the two factored matrices.
- Definition Classes
- SVDecomp → Factorization
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
flip(u: MatriD, v: MatriD): Unit
Flip negative main diagonal elements in the singular vectors to positive.
Flip negative main diagonal elements in the singular vectors to positive.
- u
the left orthongonal matrix
- v
the right orthongonal matrix
- Definition Classes
- SVDecomp
-
def
flip(u: MatriD, s: VectoD): Unit
Flip negative singular values to positive and set singular values close to zero to zero.
Flip negative singular values to positive and set singular values close to zero to zero.
- u
the left orthongonal matrix
- s
the vector of singular values
- Definition Classes
- SVDecomp
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
rank(s: VectorD): Int
Determine the rank of a matrix by counting the number of non-zero singular values.
Determine the rank of a matrix by counting the number of non-zero singular values. The implementation assumes zero singular values are last in the vector.
- s
the vector of singular values for the matrix whose rank is sought
-
def
reduce(u_s_v: FactorType, k: Int): FactorType
Reduce the dimensionality of the 'u', 's' and 'v' matrices from 'n' to 'k'.
Reduce the dimensionality of the 'u', 's' and 'v' matrices from 'n' to 'k'. If 'k = rank', there is no loss of information; when 'k < rank', multiplying the three matrices results in an approximation (little is lost so long as the singular values set to zero (i.e., clipped) are small).
- u_s_v
the 3-way factorization
- k
the desired dimensionality
-
def
reorder(ft: FactorType): Unit
Reorder the singular values to be in non-increasing order.
Reorder the singular values to be in non-increasing order. Must swap singular vectors in lock step with singular values. To minimize the number of swaps, selection sort is used.
- ft
the factored matrix (u, s, v)
- Definition Classes
- SVDecomp
-
def
solve(b: VectoD): VectoD
Solve for 'x' in 'a^t*a*x = b' using
SVD
.Solve for 'x' in 'a^t*a*x = b' using
SVD
.- b
the constant vector
- Definition Classes
- SVDecomp → Factorization
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
test(a: MatriD, svd: SVDecomp, name: String): Unit
Test the SVD Factorization algorithm on matrix 'a' by factoring the matrix into a left matrix u, a vector s, and a right matrix v.
Test the SVD Factorization algorithm on matrix 'a' by factoring the matrix into a left matrix u, a vector s, and a right matrix v. Then multiply back to recover the original matrix 'u ** s * v.t'.
- a
the orginal matrix
- name
the name of the test case
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )