orthogonal_decompose_matrix T_orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix orthogonal_decompose_matrix (Operator)
orthogonal_decompose_matrix T_orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix orthogonal_decompose_matrix
— 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 orthogonal_decompose_matrix
decomposes the
Matrix
defined by the matrix handle MatrixID MatrixID MatrixID matrixID matrix_id
. The
results are stored in the two generated matrices
MatrixOrthogonal
and MatrixTriangular
. The
operator returns the matrix handles MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID matrixOrthogonalID matrix_orthogonal_id
and
MatrixTriangularID MatrixTriangularID MatrixTriangularID matrixTriangularID matrix_triangular_id
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 get_full_matrix
.
For OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type
= 'full' "full" "full" "full" "full" all results of
the decomposition are stored in the matrices
MatrixOrthogonal
and MatrixTriangular
. For
OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type
= 'reduced' "reduced" "reduced" "reduced" "reduced" only a part of
result elements of the matrices MatrixOrthogonal
and
MatrixTriangular
are stored. Therefore the sizes of these
matrices are smaller than for OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type
=
'full' "full" "full" "full" "full" .
For the parameter ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal computeOrthogonal compute_orthogonal
= 'true' "true" "true" "true" "true" both
output matrices are computed. For the ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal computeOrthogonal compute_orthogonal
=
'false' "false" "false" "false" "false" only the matrix MatrixTriangular
is
computed. Thus, the runtime of the operation takes fewer time.
The type of the Matrix
can be selected via the parameter
DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
. For DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
=
'qr' "qr" "qr" "qr" "qr" a QR decomposition (Quadratic/Right) or for
DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
= 'ql' "ql" "ql" "ql" "ql" a QL decomposition
(Quadratic/Left) is computed. The decomposition is
written as
Example:
DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
= 'qr' "qr" "qr" "qr" "qr" ,
OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type
= 'full' "full" "full" "full" "full"
Example:
DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
= 'qr' "qr" "qr" "qr" "qr" ,
OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type
= 'reduced' "reduced" "reduced" "reduced" "reduced"
Example:
DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
= 'ql' "ql" "ql" "ql" "ql" ,
OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type
= 'full' "full" "full" "full" "full"
Example:
DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
= 'ql' "ql" "ql" "ql" "ql" ,
OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type
= 'reduced' "reduced" "reduced" "reduced" "reduced"
For DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
= 'rq' "rq" "rq" "rq" "rq" a RQ decomposition
(Right/Quadratic) or for DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
= 'lq' "lq" "lq" "lq" "lq"
a LQ decomposition (Left/Quadratic) is computed. The decomposition
is written as
Example:
DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
= 'rq' "rq" "rq" "rq" "rq" ,
OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type
= 'full' "full" "full" "full" "full"
Example:
DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
= 'rq' "rq" "rq" "rq" "rq" ,
OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type
= 'reduced' "reduced" "reduced" "reduced" "reduced"
Example:
DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
= 'lq' "lq" "lq" "lq" "lq" ,
OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type
= 'full' "full" "full" "full" "full"
Example:
DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
= 'lq' "lq" "lq" "lq" "lq" ,
OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type
= '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 matrix_id
(input_control) matrix →
HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix handle of the input matrix.
DecompositionType DecompositionType DecompositionType decompositionType decomposition_type
(input_control) string →
HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Method of decomposition.
Default:
'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 output_matrices_type
(input_control) string →
HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Type of output matrices.
Default:
'full'
"full"
"full"
"full"
"full"
List of values:
'full' "full" "full" "full" "full" , 'reduced' "reduced" "reduced" "reduced" "reduced"
ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal computeOrthogonal compute_orthogonal
(input_control) string →
HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Computation of the orthogonal matrix.
Default:
'true'
"true"
"true"
"true"
"true"
List of values:
'false' "false" "false" "false" "false" , 'true' "true" "true" "true" "true"
MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID matrixOrthogonalID matrix_orthogonal_id
(output_control) matrix →
HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix handle with the orthogonal part of the
decomposed input matrix.
MatrixTriangularID MatrixTriangularID MatrixTriangularID matrixTriangularID matrix_triangular_id
(output_control) matrix →
HMatrix , HTuple HHandle 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 orthogonal_decompose_matrix
returns the value 2 (
H_MSG_TRUE )
. If
necessary, an exception is raised.
Possible Predecessors
create_matrix create_matrix CreateMatrix CreateMatrix create_matrix
Possible Successors
get_full_matrix get_full_matrix GetFullMatrix GetFullMatrix get_full_matrix
,
get_value_matrix get_value_matrix GetValueMatrix GetValueMatrix get_value_matrix
See also
decompose_matrix decompose_matrix DecomposeMatrix DecomposeMatrix decompose_matrix
,
solve_matrix solve_matrix SolveMatrix SolveMatrix solve_matrix
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