Libraries.Compute.MatrixTransform.SingularValueDecomposition Documentation

This class calculates a matrix into three matrices. It is a matrix decomposition/reduction of a matrix A into a unitary matrix U, a diagonal matrix D and a complex unitary matrix V such that: A = U*D*V^(T) This was adapted from the same model in Apache Commons, but was expanded upon to simplify the library and add a variety of helper actions that were missing. More information about this class can be found on its documentation page SingularValueDecomposition: https://commons.apache.org/proper/commons-math/javadocs/api-3.6.1/index.html For more information: https://en.wikipedia.org/wiki/Singular_value_decomposition

Example Code

use Libraries.Compute.Matrix
use Libraries.Compute.MatrixTransform.SingularValueDecomposition

class Main
    action Main
        Matrix matrix
        matrix:Fill(3, 3, 5.0)
        SingularValueDecomposition decomp
        decomp:Calculate(matrix)
        output decomp:GetDiagonalMatrix():ToText()
    end
end

Inherits from: Libraries.Language.Object

Actions Documentation

Calculate(Libraries.Compute.Matrix matrix)

precisionSafeMin = 1.0*math:RaiseToPower(10, -p)

Parameters

Compare(Libraries.Language.Object object)

This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.

Parameters

Return

integer: The Compare result, Smaller, Equal, or Larger.

Example

Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)

Equals(Libraries.Language.Object object)

This action determines if two objects are equal based on their hash code values.

Parameters

Return

boolean: True if the hash codes are equal and false if they are not equal.

Example

use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)

GetDiagonalMatrix()

This matrix represents the orthogonal matrix transposed (VT).

Return

Libraries.Compute.Matrix:

GetFirstOrthogonalMatrix()

This matrix represents the orthogonal matrix (U).

Return

Libraries.Compute.Matrix:

GetFirstOrthogonalTransposedMatrix()

This matrix represents the diagonal matrix (D)

Return

Libraries.Compute.Matrix:

GetHashCode()

This action gets the hash code for an object.

Return

integer: The integer hash code of the object.

Example

Object o
integer hash = o:GetHashCode()

GetInverse()

This action calls solve using the identity matrix as a parameter, with the size given by the transpose.

Return

Libraries.Compute.Matrix:

GetOriginalMatrix()

Set the small value tolerance used to calculate rank and pseudo-inverse

Return

Libraries.Compute.Matrix:

GetRank()

Return

integer

GetSecondOrthogonalMatrix()

GetSecondOrthogonalTransposedMatrix()

Solve(Libraries.Compute.Matrix matrix)