From 17c83e934d3bd74e34fcca73232cb38769216775 Mon Sep 17 00:00:00 2001 From: Florent Pruvost <florent.pruvost@inria.fr> Date: Tue, 12 Sep 2017 11:56:15 +0200 Subject: [PATCH] organize linear algebra routines --- doc/orgmode/chapters/using.org | 204 +++++++++++++++++---------------- 1 file changed, 108 insertions(+), 96 deletions(-) diff --git a/doc/orgmode/chapters/using.org b/doc/orgmode/chapters/using.org index b70be3b0e..3f266ccbe 100644 --- a/doc/orgmode/chapters/using.org +++ b/doc/orgmode/chapters/using.org @@ -1,6 +1,7 @@ # This file is part of the Chameleon User's Guide. # Copyright (C) 2017 Inria # See the file ../users_guide.org for copying conditions. +#+OPTIONS: tex:t ** Linking an external application with Chameleon libraries Compilation and link with Chameleon libraries have been tested with @@ -145,8 +146,8 @@ * POSV: solve linear systems with symmetric positive-definite matrix * GESV_INCPIV: solve linear systems with general matrix * GELS: linear least squares with general matrix - * GELS_HQR: - * GELS_SYSTOLIC: + * GELS_HQR: gels with hierarchical tree + * GELS_SYSTOLIC: gels with systolic tree * *timing*: contains timing drivers to assess performances of Chameleon routines. There are two sets of executables, those who do not use the tile interface and those who do (with _tile in the @@ -207,10 +208,10 @@ * GESV_INCPIV: solve linear system for a general matrix using the tile LU algorithm with partial tile pivoting with row interchanges matrix * GEQRF: QR factorization of a general matrix * GELQF: LQ factorization of a general matrix - * QEQRF_HQR + * QEQRF_HQR: GEQRF with hierarchical tree * QEQRS: solve linear systems using a QR factorization * GELS: solves overdetermined or underdetermined linear systems involving a general matrix using the QR or the LQ factorization - * GESVD + * GESVD: general matrix singular value decomposition *** Execution trace using StarPU <<sec:trace>> @@ -744,98 +745,109 @@ with the Chameleon library. For details about these functions please refer to the doxygen documentation. /name/ can be one of the following: - * geadd: matrix matrix addition - * gelqf: LQ factorization - * gelqf_param: gelqf with hqr - * gelqs: computes a minimum-norm solution min || A*X - B || using - the LQ factorization - * gelqs_param: gelqs with hqr - * gels: solves overdetermined or underdetermined linear systems - using LQ or QR - * gels_param: gels with hqr - * gemm: matrix matrix multiply and addition - * geqrf: QR factorization - * geqrf_param: geqrf with hqr - * geqrs: computes a minimum-norm solution min || A*X - B || using - the RQ factorization - * geqrs_param: geqrs with hqr - * gesv_incpiv: linear systems solving with LU factorization and - partial pivoting - * gesv_nopiv: linear systems solving with LU factorization and - without pivoting - * gesvd: singular value decomposition - * getrf_incpiv: LU factorization with partial pivoting - * getrf_nopiv: LU factorization without pivoting - * getrs_incpiv: linear systems solving using existing LU - factorization with partial pivoting - * getrs_nopiv: linear systems solving using existing LU - factorization without pivoting - * hemm: gemm with A Hermitian - * herk: rank k operations with A Hermitian - * her2k: rank 2k operations with A Hermitian - * heevd: eigenvalues/eigenvectors computation with A Hermitian - * hetrd: reduces a complex Hermitian matrix A to real symmetric - tridiagonal form S - * lacpy: copy matrix into another - * lange: computes norm of a matrix (Max, One, Inf, Frobenius) - * lanhe: lange with A Hermitian - * lansy: lange with A symmetric - * lantr: lange with A triangular - * lascal: scales a matrix - * laset: copy the triangular part of a matrix into another, set a - value for the diagonal and off-diagonal part - * lauum: computes the product U * U' or L' * L, where the - triangular factor U or L is stored in the upper or lower - triangular part of the array A - * plghe: generates a random Hermitian matrix - * plgsy: generates a random symmetrix matrix - * plrnt: generates a random matrix - * posv: linear systems solving using Cholesky factorization - * potrf: Cholesky factorization - * potri: computes the inverse of a complex Hermitian positive - definite matrix A using the Cholesky factorization A - * potrimm: - * potrs: linear systems solving using existing Cholesky - factorization - * symm: gemm with A symmetric - * syrk: rank k operations with A symmetric - * syr2k: rank 2k with A symmetric - * sysv: linear systems solving using Cholesky decomposition with - A symmetric - * sytrf: Cholesky decomposition with A symmetric - * sytrs: linear systems solving using existing Cholesky - decomposition with A symmetric - * tpgqrt: generates a partial Q matrix formed with a blocked QR - factorization of a "triangular-pentagonal" matrix C, which is - composed of a unused triangular block and a pentagonal block V, - using the compact representation for Q. See tpqrt to - generate V - * tpqrt: computes a blocked QR factorization of a - "triangular-pentagonal" matrix C, which is composed of a - triangular block A and a pentagonal block B, using the compact - representation for Q - * tradd: trapezoidal matrices addition - * trmm: gemm with A triangular - * trsm: computes triangular solve - * trsmpl: performs the forward substitution step of solving a - system of linear equations after the tile LU factorization of - the matrix - * trsmrv: - * trtri: computes the inverse of a complex upper or lower triangular matrix A - * unglq: generates an M-by-N matrix Q with orthonormal rows, - which is defined as the first M rows of a product of the - elementary reflectors returned by MORSE_zgelqf - * unglq_param: unglq with hqr - * ungqr: generates an M-by-N matrix Q with orthonormal columns, - which is defined as the first N columns of a product of the - elementary reflectors returned by MORSE_zgeqrf - * ungqr_param: ungqr with hqr - * unmlq: overwrites C with Q*C or C*Q or equivalent operations - with transposition on conjugate on C (see doxygen - documentation) - * unmlq_param: unmlq with hqr - * unmqr: similar to unmlq (see doxygen documentation) - * unmqr_param: unmqr with hqr + + * *BLAS 2/3 routines* + * gemm: matrix matrix multiply and addition + * hemm: gemm with A Hermitian + * herk: rank k operations with A Hermitian + * her2k: rank 2k operations with A Hermitian + * lauum: computes the product U * U' or L' * L, where the + triangular factor U or L is stored in the upper or lower + triangular part of the array A + * symm: gemm with A symmetric + * syrk: rank k operations with A symmetric + * syr2k: rank 2k with A symmetric + * trmm: gemm with A triangular + * *Triangular solving* + * trsm: computes triangular solve + * trsmpl: performs the forward substitution step of solving a + system of linear equations after the tile LU factorization of + the matrix + * trsmrv: + * trtri: computes the inverse of a complex upper or lower triangular matrix A + * *$LL^T$ (Cholesky) routines* + * posv: linear systems solving using Cholesky factorization + * potrf: Cholesky factorization + * potri: computes the inverse of a complex Hermitian positive + definite matrix A using the Cholesky factorization A + * potrimm: + * potrs: linear systems solving using existing Cholesky + factorization + * sysv: linear systems solving using Cholesky decomposition with + A symmetric + * sytrf: Cholesky decomposition with A symmetric + * sytrs: linear systems solving using existing Cholesky + decomposition with A symmetric + * *$LU$ routines* + * gesv_incpiv: linear systems solving with LU factorization and + partial pivoting + * gesv_nopiv: linear systems solving with LU factorization and + without pivoting + * getrf_incpiv: LU factorization with partial pivoting + * getrf_nopiv: LU factorization without pivoting + * getrs_incpiv: linear systems solving using existing LU + factorization with partial pivoting + * getrs_nopiv: linear systems solving using existing LU + factorization without pivoting + * *$QR/LQ$ routines* + * gelqf: LQ factorization + * gelqf_param: gelqf with hqr + * gelqs: computes a minimum-norm solution min || A*X - B || using + the LQ factorization + * gelqs_param: gelqs with hqr + * gels: Uses QR or LQ factorization to solve a overdetermined or + underdetermined linear system with full rank matrix + * gels_param: gels with hqr + * geqrf: QR factorization + * geqrf_param: geqrf with hqr + * geqrs: computes a minimum-norm solution min || A*X - B || using + the RQ factorization + * hetrd: reduces a complex Hermitian matrix A to real symmetric + tridiagonal form S + * geqrs_param: geqrs with hqr + * tpgqrt: generates a partial Q matrix formed with a blocked QR + factorization of a "triangular-pentagonal" matrix C, which is + composed of a unused triangular block and a pentagonal block V, + using the compact representation for Q. See tpqrt to + generate V + * tpqrt: computes a blocked QR factorization of a + "triangular-pentagonal" matrix C, which is composed of a + triangular block A and a pentagonal block B, using the compact + representation for Q + * unglq: generates an M-by-N matrix Q with orthonormal rows, + which is defined as the first M rows of a product of the + elementary reflectors returned by MORSE_zgelqf + * unglq_param: unglq with hqr + * ungqr: generates an M-by-N matrix Q with orthonormal columns, + which is defined as the first N columns of a product of the + elementary reflectors returned by MORSE_zgeqrf + * ungqr_param: ungqr with hqr + * unmlq: overwrites C with Q*C or C*Q or equivalent operations + with transposition on conjugate on C (see doxygen + documentation) + * unmlq_param: unmlq with hqr + * unmqr: similar to unmlq (see doxygen documentation) + * unmqr_param: unmqr with hqr + * *EVD/SVD* + * gesvd: singular value decomposition + * heevd: eigenvalues/eigenvectors computation with A Hermitian + * *Extra routines* + * *Norms* + * lange: computes norm of a matrix (Max, One, Inf, Frobenius) + * lanhe: lange with A Hermitian + * lansy: lange with A symmetric + * lantr: lange with A triangular + * *Random matrices generation* + * plghe: generates a random Hermitian matrix + * plgsy: generates a random symmetrix matrix + * plrnt: generates a random matrix + * *Others* + * geadd: general matrix matrix addition + * lacpy: copy matrix into another + * lascal: scales a matrix + * laset: copy the triangular part of a matrix into another, set a + value for the diagonal and off-diagonal part + * tradd: trapezoidal matrices addition **** Options routines Enable MORSE feature. -- GitLab