You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

coverage.md 5.4 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. Coverage of ReLAPACK
  2. ====================
  3. This file lists all LAPACK compute routines that are covered by recursive
  4. algorithms in ReLAPACK, it also lists all of LAPACK's blocked algorithms which
  5. are not (yet) part of ReLAPACK.
  6. <!-- START doctoc generated TOC please keep comment here to allow auto update -->
  7. <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
  8. **Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
  9. - [List of covered LAPACK routines](#list-of-covered-lapack-routines)
  10. - [`xlauum`](#xlauum)
  11. - [`xsygst`](#xsygst)
  12. - [`xtrtri`](#xtrtri)
  13. - [`xpotrf`](#xpotrf)
  14. - [`xpbtrf`](#xpbtrf)
  15. - [`xsytrf`](#xsytrf)
  16. - [`xgetrf`](#xgetrf)
  17. - [`xgbtrf`](#xgbtrf)
  18. - [`xtrsyl`](#xtrsyl)
  19. - [`xtgsyl`](#xtgsyl)
  20. - [Covered BLAS extension](#covered-blas-extension)
  21. - [`xgemmt`](#xgemmt)
  22. - [Not covered yet](#not-covered-yet)
  23. - [`xpstrf`](#xpstrf)
  24. - [Not covered: extra FLOPs](#not-covered-extra-flops)
  25. - [QR decomposition (and related)](#qr-decomposition-and-related)
  26. - [Symmetric reduction to tridiagonal](#symmetric-reduction-to-tridiagonal)
  27. - [Symmetric reduction to bidiagonal](#symmetric-reduction-to-bidiagonal)
  28. - [Reduction to upper Hessenberg](#reduction-to-upper-hessenberg)
  29. <!-- END doctoc generated TOC please keep comment here to allow auto update -->
  30. List of covered LAPACK routines
  31. -------------------------------
  32. ### `xlauum`
  33. Multiplication of a triangular matrix with its (complex conjugate) transpose,
  34. resulting in a symmetric (Hermitian) matrix.
  35. Routines: `slauum`, `dlauum`, `clauum`, `zlauum`
  36. Operations:
  37. * A = L^T L
  38. * A = U U^T
  39. ### `xsygst`
  40. Simultaneous two-sided multiplication of a symmetric matrix with a triangular
  41. matrix and its transpose
  42. Routines: `ssygst`, `dsygst`, `chegst`, `zhegst`
  43. Operations:
  44. * A = inv(L) A inv(L^T)
  45. * A = inv(U^T) A inv(U)
  46. * A = L^T A L
  47. * A = U A U^T
  48. ### `xtrtri`
  49. Inversion of a triangular matrix
  50. Routines: `strtri`, `dtrtri`, `ctrtri`, `ztrtri`
  51. Operations:
  52. * L = inv(L)
  53. * U = inv(U)
  54. ### `xpotrf`
  55. Cholesky decomposition of a symmetric (Hermitian) positive definite matrix
  56. Routines: `spotrf`, `dpotrf`, `cpotrf`, `zpotrf`
  57. Operations:
  58. * L L^T = A
  59. * U^T U = A
  60. ### `xpbtrf`
  61. Cholesky decomposition of a banded symmetric (Hermitian) positive definite matrix
  62. Routines: `spbtrf`, `dpbtrf`, `cpbtrf`, `zpbtrf`
  63. Operations:
  64. * L L^T = A
  65. * U^T U = A
  66. ### `xsytrf`
  67. LDL decomposition of a symmetric (or Hermitian) matrix
  68. Routines:
  69. * `ssytrf`, `dsytrf`, `csytrf`, `chetrf`, `zsytrf`, `zhetrf`,
  70. * `ssytrf_rook`, `dsytrf_rook`, `csytrf_rook`, `chetrf_rook`, `zsytrf_rook`,
  71. `zhetrf_rook`
  72. Operations:
  73. * L D L^T = A
  74. * U^T D U = A
  75. ### `xgetrf`
  76. LU decomposition of a general matrix with pivoting
  77. Routines: `sgetrf`, `dgetrf`, `cgetrf`, `zgetrf`
  78. Operation: P L U = A
  79. ### `xgbtrf`
  80. LU decomposition of a general banded matrix with pivoting
  81. Routines: `sgbtrf`, `dgbtrf`, `cgbtrf`, `zgbtrf`
  82. Operation: L U = A
  83. ### `xtrsyl`
  84. Solution of the quasi-triangular Sylvester equation
  85. Routines: `strsyl`, `dtrsyl`, `ctrsyl`, `ztrsyl`
  86. Operations:
  87. * A X + B Y = C -> X
  88. * A^T X + B Y = C -> X
  89. * A X + B^T Y = C -> X
  90. * A^T X + B^T Y = C -> X
  91. * A X - B Y = C -> X
  92. * A^T X - B Y = C -> X
  93. * A X - B^T Y = C -> X
  94. * A^T X - B^T Y = C -> X
  95. ### `xtgsyl`
  96. Solution of the generalized Sylvester equations
  97. Routines: `stgsyl`, `dtgsyl`, `ctgsyl`, `ztgsyl`
  98. Operations:
  99. * A R - L B = C, D R - L E = F -> L, R
  100. * A^T R + D^T L = C, R B^T - L E^T = -F -> L, R
  101. Covered BLAS extension
  102. ----------------------
  103. ### `xgemmt`
  104. Matrix-matrix product updating only a triangular part of the result
  105. Routines: `sgemmt`, `dgemmt`, `cgemmt`, `zgemmt`
  106. Operations:
  107. * C = alpha A B + beta C
  108. * C = alpha A B^T + beta C
  109. * C = alpha A^T B + beta C
  110. * C = alpha A^T B^T + beta C
  111. Not covered yet
  112. ---------------
  113. The following operation is implemented as a blocked algorithm in LAPACK but
  114. currently not yet covered in ReLAPACK as a recursive algorithm
  115. ### `xpstrf`
  116. Cholesky decomposition of a positive semi-definite matrix with complete pivoting.
  117. Routines: `spstrf`, `dpstrf`, `cpstrf`, `zpstrf`
  118. Operations:
  119. * P L L^T P^T = A
  120. * P U^T U P^T = A
  121. Not covered: extra FLOPs
  122. ------------------------
  123. The following routines are not covered because recursive variants would require
  124. considerably more FLOPs or operate on banded matrices.
  125. ### QR decomposition (and related)
  126. Routines:
  127. * `sgeqrf`, `dgeqrf`, `cgeqrf`, `zgeqrf`
  128. * `sgerqf`, `dgerqf`, `cgerqf`, `zgerqf`
  129. * `sgeqlf`, `dgeqlf`, `cgeqlf`, `zgeqlf`
  130. * `sgelqf`, `dgelqf`, `cgelqf`, `zgelqf`
  131. * `stzrzf`, `dtzrzf`, `ctzrzf`, `ztzrzf`
  132. Operations: Q R = A, R Q = A, Q L = A, L Q = A, R Z = A
  133. Routines for multiplication with Q:
  134. * `sormqr`, `dormqr`, `cunmqr`, `zunmqr`
  135. * `sormrq`, `dormrq`, `cunmrq`, `zunmrq`
  136. * `sormql`, `dormql`, `cunmql`, `zunmql`
  137. * `sormlq`, `dormlq`, `cunmlq`, `zunmlq`
  138. * `sormrz`, `dormrz`, `cunmrz`, `zunmrz`
  139. Operations: C = Q C, C = C Q, C = Q^T C, C = C Q^T
  140. Routines for construction of Q:
  141. * `sorgqr`, `dorgqr`, `cungqr`, `zungqr`
  142. * `sorgrq`, `dorgrq`, `cungrq`, `zungrq`
  143. * `sorgql`, `dorgql`, `cungql`, `zungql`
  144. * `sorglq`, `dorglq`, `cunglq`, `zunglq`
  145. ### Symmetric reduction to tridiagonal
  146. Routines: `ssytrd`, `dsytrd`, `csytrd`, `zsytrd`
  147. Operation: Q T Q^T = A
  148. ### Symmetric reduction to bidiagonal
  149. Routines: `ssybrd`, `dsybrd`, `csybrd`, `zsybrd`
  150. Operation: Q T P^T = A
  151. ### Reduction to upper Hessenberg
  152. Routines: `sgehrd`, `dgehrd`, `cgehrd`, `zgehrd`
  153. Operation: Q H Q^T = A