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