Name
orthogonal_decompose_matrixT_orthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix — Perform an orthogonal decomposition of a matrix.
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
The operator orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix decomposes the
MatrixMatrixMatrixMatrixmatrix defined by the matrix handle MatrixIDMatrixIDMatrixIDMatrixIDmatrixID. The
results are stored in the two generated matrices
MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal and MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular. The
operator returns the matrix handles MatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDmatrixOrthogonalID and
MatrixTriangularIDMatrixTriangularIDMatrixTriangularIDMatrixTriangularIDmatrixTriangularID of these two matrices. Access
to the elements of the matrices is possible e.g. with the operator
get_full_matrixget_full_matrixGetFullMatrixGetFullMatrixGetFullMatrix.
For OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full" all results of
the decomposition are stored in the matrices
MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal and MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular. For
OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced" only a part of
result elements of the matrices MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal and
MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular are stored. Therefore the sizes of these
matrices are smaller than for OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType =
'full'"full""full""full""full".
For the parameter ComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonal = 'true'"true""true""true""true" both
output matrices are computed. For the ComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonal =
'false'"false""false""false""false" only the matrix MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular is
computed. Thus, the runtime of the operation takes fewer time.
The type of the MatrixMatrixMatrixMatrixmatrix can be selected via the parameter
DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType. For DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType =
'qr'"qr""qr""qr""qr" a QR decomposition (Quadratic/Right) or for
DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'ql'"ql""ql""ql""ql" a QL decomposition
(Quadratic/Left) is computed. The decomposition is
written as
MatrixMatrixMatrixMatrixmatrix = MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal * MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular.
Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'qr'"qr""qr""qr""qr" and
OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full":
Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'qr'"qr""qr""qr""qr" and
OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced":
Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'ql'"ql""ql""ql""ql" and
OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full":
Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'ql'"ql""ql""ql""ql" and
OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced":
For DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'rq'"rq""rq""rq""rq" a RQ decomposition
(Right/Quadratic) or for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'lq'"lq""lq""lq""lq"
a LQ decomposition (Left/Quadratic) is computed. The decomposition
is written as
MatrixMatrixMatrixMatrixmatrix = MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular * MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal.
Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'rq'"rq""rq""rq""rq" and
OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full":
Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'rq'"rq""rq""rq""rq" and
OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced":
Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'lq'"lq""lq""lq""lq" and
OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full":
Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'lq'"lq""lq""lq""lq" and
OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = '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.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Matrix handle of the input matrix.
Method of decomposition.
Default value:
'qr'
"qr"
"qr"
"qr"
"qr"
List of values: 'lq'"lq""lq""lq""lq", 'ql'"ql""ql""ql""ql", 'qr'"qr""qr""qr""qr", 'rq'"rq""rq""rq""rq"
Type of output matrices.
Default value:
'full'
"full"
"full"
"full"
"full"
List of values: 'full'"full""full""full""full", 'reduced'"reduced""reduced""reduced""reduced"
Computation of the orthogonal matrix.
Default value:
'true'
"true"
"true"
"true"
"true"
List of values: 'false'"false""false""false""false", 'true'"true""true""true""true"
Matrix handle with the orthogonal part of the
decomposed input matrix.
Matrix handle with the triangular part of the
decomposed input matrix.
If the parameters are valid, the operator
orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix returns the value 2 (H_MSG_TRUE). If
necessary, an exception is raised.
create_matrixcreate_matrixCreateMatrixCreateMatrixCreateMatrix
get_full_matrixget_full_matrixGetFullMatrixGetFullMatrixGetFullMatrix,
get_value_matrixget_value_matrixGetValueMatrixGetValueMatrixGetValueMatrix
decompose_matrixdecompose_matrixDecomposeMatrixDecomposeMatrixDecomposeMatrix,
solve_matrixsolve_matrixSolveMatrixSolveMatrixSolveMatrix
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.
Foundation