orthogonal_decompose_matrix T_orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix (Operator)
Name
orthogonal_decompose_matrix T_orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix
— Perform an orthogonal decomposition of a matrix.
Signature
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
HMatrix HMatrix ::OrthogonalDecomposeMatrix (const wchar_t* DecompositionType , const wchar_t* OutputMatricesType , const wchar_t* ComputeOrthogonal , HMatrix* MatrixTriangularID ) const
(Windows only)
Description
The operator orthogonal_decompose_matrix orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix
decomposes the
Matrix Matrix Matrix Matrix matrix
defined by the matrix handle MatrixID MatrixID MatrixID MatrixID matrixID
. The
results are stored in the two generated matrices
MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal matrixOrthogonal
and MatrixTriangular MatrixTriangular MatrixTriangular MatrixTriangular matrixTriangular
. The
operator returns the matrix handles MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID matrixOrthogonalID
and
MatrixTriangularID MatrixTriangularID MatrixTriangularID MatrixTriangularID matrixTriangularID
of these two matrices. Access
to the elements of the matrices is possible e.g. with the operator
get_full_matrix get_full_matrix GetFullMatrix GetFullMatrix GetFullMatrix
.
For OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
= 'full' "full" "full" "full" "full" all results of
the decomposition are stored in the matrices
MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal matrixOrthogonal
and MatrixTriangular MatrixTriangular MatrixTriangular MatrixTriangular matrixTriangular
. For
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
= 'reduced' "reduced" "reduced" "reduced" "reduced" only a part of
result elements of the matrices MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal matrixOrthogonal
and
MatrixTriangular MatrixTriangular MatrixTriangular MatrixTriangular matrixTriangular
are stored. Therefore the sizes of these
matrices are smaller than for OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
=
'full' "full" "full" "full" "full" .
For the parameter ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal computeOrthogonal
= 'true' "true" "true" "true" "true" both
output matrices are computed. For the ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal computeOrthogonal
=
'false' "false" "false" "false" "false" only the matrix MatrixTriangular MatrixTriangular MatrixTriangular MatrixTriangular matrixTriangular
is
computed. Thus, the runtime of the operation takes fewer time.
The type of the Matrix Matrix Matrix Matrix matrix
can be selected via the parameter
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
. For DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
=
'qr' "qr" "qr" "qr" "qr" a QR decomposition (Quadratic/Right) or for
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'ql' "ql" "ql" "ql" "ql" a QL decomposition
(Quadratic/Left) is computed. The decomposition is
written as
Matrix Matrix Matrix Matrix matrix
= MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal matrixOrthogonal
* MatrixTriangular MatrixTriangular MatrixTriangular MatrixTriangular matrixTriangular
.
Example for DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'qr' "qr" "qr" "qr" "qr" and
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
= 'full' "full" "full" "full" "full" :
Example for DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'qr' "qr" "qr" "qr" "qr" and
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
= 'reduced' "reduced" "reduced" "reduced" "reduced" :
Example for DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'ql' "ql" "ql" "ql" "ql" and
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
= 'full' "full" "full" "full" "full" :
Example for DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'ql' "ql" "ql" "ql" "ql" and
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
= 'reduced' "reduced" "reduced" "reduced" "reduced" :
For DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'rq' "rq" "rq" "rq" "rq" a RQ decomposition
(Right/Quadratic) or for DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'lq' "lq" "lq" "lq" "lq"
a LQ decomposition (Left/Quadratic) is computed. The decomposition
is written as
Matrix Matrix Matrix Matrix matrix
= MatrixTriangular MatrixTriangular MatrixTriangular MatrixTriangular matrixTriangular
* MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal matrixOrthogonal
.
Example for DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'rq' "rq" "rq" "rq" "rq" and
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
= 'full' "full" "full" "full" "full" :
Example for DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'rq' "rq" "rq" "rq" "rq" and
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
= 'reduced' "reduced" "reduced" "reduced" "reduced" :
Example for DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'lq' "lq" "lq" "lq" "lq" and
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
= 'full' "full" "full" "full" "full" :
Example for DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'lq' "lq" "lq" "lq" "lq" and
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
= '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.
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Processed without parallelization.
Parameters
MatrixID MatrixID MatrixID MatrixID matrixID
(input_control) matrix →
HMatrix , HTuple HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix handle of the input matrix.
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
(input_control) string →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
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"
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
(input_control) string →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Type of output matrices.
Default value:
'full'
"full"
"full"
"full"
"full"
List of values: 'full' "full" "full" "full" "full" , 'reduced' "reduced" "reduced" "reduced" "reduced"
ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal computeOrthogonal
(input_control) string →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
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"
MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID matrixOrthogonalID
(output_control) matrix →
HMatrix , HTuple HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix handle with the orthogonal part of the
decomposed input matrix.
MatrixTriangularID MatrixTriangularID MatrixTriangularID MatrixTriangularID matrixTriangularID
(output_control) matrix →
HMatrix , HTuple HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix handle with the triangular part of the
decomposed input matrix.
Result
If the parameters are valid, the operator
orthogonal_decompose_matrix orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix
returns the value 2 (H_MSG_TRUE). If
necessary, an exception is raised.
Possible Predecessors
create_matrix create_matrix CreateMatrix CreateMatrix CreateMatrix
Possible Successors
get_full_matrix get_full_matrix GetFullMatrix GetFullMatrix GetFullMatrix
,
get_value_matrix get_value_matrix GetValueMatrix GetValueMatrix GetValueMatrix
See also
decompose_matrix decompose_matrix DecomposeMatrix DecomposeMatrix DecomposeMatrix
,
solve_matrix solve_matrix SolveMatrix SolveMatrix SolveMatrix
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