ClassesClassesClassesClasses | | | | Operators

orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix (Operator)

Name

orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix — Perform an orthogonal decomposition of a matrix.

Signature

orthogonal_decompose_matrix( : : MatrixID, DecompositionType, OutputMatricesType, ComputeOrthogonal : MatrixOrthogonalID, MatrixTriangularID)

Herror orthogonal_decompose_matrix(const Hlong MatrixID, const char* DecompositionType, const char* OutputMatricesType, const char* ComputeOrthogonal, Hlong* MatrixOrthogonalID, Hlong* MatrixTriangularID)

Herror T_orthogonal_decompose_matrix(const Htuple MatrixID, const Htuple DecompositionType, const Htuple OutputMatricesType, const Htuple ComputeOrthogonal, Htuple* MatrixOrthogonalID, Htuple* MatrixTriangularID)

Herror orthogonal_decompose_matrix(const HTuple& MatrixID, const HTuple& DecompositionType, const HTuple& OutputMatricesType, const HTuple& ComputeOrthogonal, Hlong* MatrixOrthogonalID, Hlong* MatrixTriangularID)

HMatrix HMatrix::OrthogonalDecomposeMatrix(const HTuple& DecompositionType, const HTuple& OutputMatricesType, const HTuple& ComputeOrthogonal, HMatrix* MatrixTriangularID) const

void OrthogonalDecomposeMatrix(const HTuple& MatrixID, const HTuple& DecompositionType, const HTuple& OutputMatricesType, const HTuple& ComputeOrthogonal, HTuple* MatrixOrthogonalID, HTuple* MatrixTriangularID)

HMatrix HMatrix::OrthogonalDecomposeMatrix(const HString& DecompositionType, const HString& OutputMatricesType, const HString& ComputeOrthogonal, HMatrix* MatrixTriangularID) const

HMatrix HMatrix::OrthogonalDecomposeMatrix(const char* DecompositionType, const char* OutputMatricesType, const char* ComputeOrthogonal, HMatrix* MatrixTriangularID) const

void HOperatorSetX.OrthogonalDecomposeMatrix(
[in] VARIANT MatrixID, [in] VARIANT DecompositionType, [in] VARIANT OutputMatricesType, [in] VARIANT ComputeOrthogonal, [out] VARIANT* MatrixOrthogonalID, [out] VARIANT* MatrixTriangularID)

IHMatrixX* HMatrixX.OrthogonalDecomposeMatrix(
[in] BSTR DecompositionType, [in] BSTR OutputMatricesType, [in] BSTR ComputeOrthogonal, [out] IHMatrixX** MatrixTriangularID)

static void HOperatorSet.OrthogonalDecomposeMatrix(HTuple matrixID, HTuple decompositionType, HTuple outputMatricesType, HTuple computeOrthogonal, out HTuple matrixOrthogonalID, out HTuple matrixTriangularID)

HMatrix HMatrix.OrthogonalDecomposeMatrix(string decompositionType, string outputMatricesType, string computeOrthogonal, out HMatrix matrixTriangularID)

Description

The operator orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix decomposes the MatrixMatrixMatrixMatrixMatrixmatrix defined by the matrix handle MatrixIDMatrixIDMatrixIDMatrixIDMatrixIDmatrixID. The results are stored in the two generated matrices MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal and MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular. The operator returns the matrix handles MatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDmatrixOrthogonalID and MatrixTriangularIDMatrixTriangularIDMatrixTriangularIDMatrixTriangularIDMatrixTriangularIDmatrixTriangularID of these two matrices. Access to the elements of the matrices is possible e.g. with the operator get_full_matrixget_full_matrixGetFullMatrixget_full_matrixGetFullMatrixGetFullMatrix.

For OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full""full" all results of the decomposition are stored in the matrices MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal and MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular. For OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced""reduced" only a part of result elements of the matrices MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal and MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular are stored. Therefore the sizes of these matrices are smaller than for OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full""full".

For the parameter ComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonal = 'true'"true""true""true""true""true" both output matrices are computed. For the ComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonal = 'false'"false""false""false""false""false" only the matrix MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular is computed. Thus, the runtime of the operation takes fewer time.

The type of the MatrixMatrixMatrixMatrixMatrixmatrix can be selected via the parameter DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType. For DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'qr'"qr""qr""qr""qr""qr" a QR decomposition (Quadratic/Right) or for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'ql'"ql""ql""ql""ql""ql" a QL decomposition (Quadratic/Left) is computed. The decomposition is written as

  MatrixMatrixMatrixMatrixMatrixmatrix = MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal * MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular.

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'qr'"qr""qr""qr""qr""qr" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full""full":

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'qr'"qr""qr""qr""qr""qr" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced""reduced":

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'ql'"ql""ql""ql""ql""ql" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full""full":

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'ql'"ql""ql""ql""ql""ql" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced""reduced":

For DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'rq'"rq""rq""rq""rq""rq" a RQ decomposition (Right/Quadratic) or for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'lq'"lq""lq""lq""lq""lq" a LQ decomposition (Left/Quadratic) is computed. The decomposition is written as

  MatrixMatrixMatrixMatrixMatrixmatrix = MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular * MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal.

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'rq'"rq""rq""rq""rq""rq" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full""full":

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'rq'"rq""rq""rq""rq""rq" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced""reduced":

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'lq'"lq""lq""lq""lq""lq" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full""full":

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'lq'"lq""lq""lq""lq""lq" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced""reduced":

It should be noted that in the examples there are differences in the meaning of the numbers of the output matrices: The results of the elements are per definition a certain value if the number of this value is shown as an integer number, e.g., 0 or 1. If the number is shown as a floating point number, e.g., 0.0 or 1.0, the value is computed.

Parallelization

Parameters

MatrixIDMatrixIDMatrixIDMatrixIDMatrixIDmatrixID (input_control)  matrix → HMatrix, HTupleHTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Matrix handle of the input matrix.

DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType (input_control)  string → HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Method of decomposition.

Default value: 'qr' "qr" "qr" "qr" "qr" "qr"

List of values: 'lq'"lq""lq""lq""lq""lq", 'ql'"ql""ql""ql""ql""ql", 'qr'"qr""qr""qr""qr""qr", 'rq'"rq""rq""rq""rq""rq"

OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType (input_control)  string → HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Type of output matrices.

Default value: 'full' "full" "full" "full" "full" "full"

List of values: 'full'"full""full""full""full""full", 'reduced'"reduced""reduced""reduced""reduced""reduced"

ComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonal (input_control)  string → HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Computation of the orthogonal matrix.

Default value: 'true' "true" "true" "true" "true" "true"

List of values: 'false'"false""false""false""false""false", 'true'"true""true""true""true""true"

MatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDmatrixOrthogonalID (output_control)  matrix → HMatrix, HTupleHTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Matrix handle with the orthogonal part of the decomposed input matrix.

MatrixTriangularIDMatrixTriangularIDMatrixTriangularIDMatrixTriangularIDMatrixTriangularIDmatrixTriangularID (output_control)  matrix → HMatrix, HTupleHTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Matrix handle with the triangular part of the decomposed input matrix.

Result

If the parameters are valid, the operator orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix returns the value 2 (H_MSG_TRUE). If necessary, an exception is raised.

Possible Predecessors

create_matrixcreate_matrixCreateMatrixcreate_matrixCreateMatrixCreateMatrix

Possible Successors

get_full_matrixget_full_matrixGetFullMatrixget_full_matrixGetFullMatrixGetFullMatrix, get_value_matrixget_value_matrixGetValueMatrixget_value_matrixGetValueMatrixGetValueMatrix

See also

decompose_matrixdecompose_matrixDecomposeMatrixdecompose_matrixDecomposeMatrixDecomposeMatrix, solve_matrixsolve_matrixSolveMatrixsolve_matrixSolveMatrixSolveMatrix

References

David Poole: “Linear Algebra: A Modern Introduction”; Thomson; Belmont; 2006.
Gene H. Golub, Charles F. van Loan: “Matrix Computations”; The Johns Hopkins University Press; Baltimore and London; 1996.

Module

Foundation


ClassesClassesClassesClasses | | | | Operators