Skip to content

Doxygen updates #44

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 19 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@

* * *

[TOC]

* * *

About
=====

Expand All @@ -36,11 +32,8 @@ eigenvalue problems, and singular value problems.
PLASMA was ported from [QUARK](http://icl.cs.utk.edu/quark/)
to [OpenMP](http://www.openmp.org/) using the modern features of the latter.
At the same time, PLASMA was moved from its ICL SVN repository
to this Bitbucket Mercurial repository (a move to Git is forthcoming).
to Mercurial and later to GitHub.
The content of this repository reflects the progress of the transition.
Before the transition is complete, the last release of the old PLASMA
is available here:
https://bitbucket.org/icl/plasma/downloads/plasma-2.8.tar.gz

More information about the old PLASMA based on QUARK is included below.

Expand Down Expand Up @@ -100,31 +93,39 @@ Citing

Feel free to use the following publications to reference PLASMA:

* Asim YarKhan, Jakub Kurzak, Piotr Luszczek, Jack Dongarra,
* Jack Dongarra, Mark Gates, Azzam Haidar, Jakub Kurzak, Piotr Luszczek,
Panruo Wu, Ichitaro Yamazaki, Asim Yarkhan, Maksims Abalenkovs, Negin
Bagherpour, Sven Hammarling, Jakub Šístek, David Stevens, Mawussi
Zounon, Samuel D. Relton.
**PLASMA: Parallel linear algebra software for multicore using OpenMP.**
*ACM Transactions on Mathematical Software (TOMS)*,
[Volume 45, Issue 2, May 2019](https://doi.org/10.1145/3264491).

* Asim YarKhan, Jakub Kurzak, Piotr Luszczek, Jack Dongarra.
**Porting the PLASMA Numerical Library to the OpenMP Standard**,
*International Journal of Parallel Programming*,
[First Online: 14 June 2016](http://dx.doi.org/10.1007/s10766-016-0441-6).
[Volume 45, June 2016](http://dx.doi.org/10.1007/s10766-016-0441-6).

* Simplice Donfack, Jack Dongarra, Mathieu Faverge, Mark Gates,
Jakub Kurzak, Piotr Luszczek, Ichitaro Yamazaki,
Jakub Kurzak, Piotr Luszczek, Ichitaro Yamazaki.
**A survey of recent developments in parallel implementations
of Gaussian elimination**,
*Concurrency and Computation: Practice and Experience*,
[Volume 27, Issue 5, April 2015, Pages 1292–1309](http://dx.doi.org/10.1002/cpe.3306).

* Azzam Haidar, Jakub Kurzak, Piotr Luszczek,
* Azzam Haidar, Jakub Kurzak, Piotr Luszczek.
**An improved parallel singular value algorithm and its implementation
for multicore hardware**,
*Proceedings of the International Conference on High Performance Computing,
Networking, Storage and Analysis*
[Article No. 90](http://dx.doi.org/10.1145/2503210.2503292), ACM, 2013.

* Jakub Kurzak, Hatem Ltaief, Jack Dongarra, Rosa M. Badia,
* Jakub Kurzak, Hatem Ltaief, Jack Dongarra, Rosa M. Badia.
**Scheduling dense linear algebra operations on multicore processors**,
*Concurrency and Computation: Practice and Experience*,
[Volume 22, Issue 1, January 2010, Pages 15–44](http://dx.doi.org/10.1002/cpe.1467).

* Alfredo Buttari, Julien Langou, Jakub Kurzak, Jack Dongarra,
* Alfredo Buttari, Julien Langou, Jakub Kurzak, Jack Dongarra.
**A class of parallel tiled linear algebra algorithms for multicore architectures**,
*Parallel Computing*,
[Volume 35, Issue 1, January 2009, Pages 38–53](http://dx.doi.org/10.1016/j.parco.2008.10.002).
Expand All @@ -141,8 +142,9 @@ Work on PLASMA was also partially funded by NSF grants:

* [SI2-SSI: Collaborative Research: Sustained Innovation for Linear Algebra Software (SILAS)](http://www.nsf.gov/awardsearch/showAward?AWD_ID=1339822),
* [SHF: Small: Empirical Autotuning of Parallel Computation for Scalable Hybrid Systems](http://nsf.gov/awardsearch/showAward?AWD_ID=1527706) (a.k.a. DARE).
* [Collaborative Research: Frameworks: Basic ALgebra LIbraries for Sustainable Technology with Interdisciplinary Collaboration (BALLISTIC)](https://www.nsf.gov/awardsearch/showAward?AWD_ID=2004541&HistoricalAwards=false)

Currently, PLASMA is being developed in collaboration with European Commission funded [Horizon 2020](https://ec.europa.eu/programmes/horizon2020/) projects:
PLASMA was developed in collaboration with European Commission funded [Horizon 2020](https://ec.europa.eu/programmes/horizon2020/) projects:

* [NLAFET: Parallel Numerical Linear Algebra for Future Extreme Scale Systems](http://www.nlafet.eu), Grant Agreement no. 671633,
* [INTERTWinE: Programming Model INTERoperability ToWards Exascale](http://www.intertwine-project.eu), Grant Agreement no. 671602,
Expand Down Expand Up @@ -198,7 +200,7 @@ License

-- Innovative Computing Laboratory
-- University of Tennessee
-- (C) Copyright 2008-2017
-- (C) Copyright 2008-2025

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
Expand Down Expand Up @@ -229,6 +231,7 @@ Old PLASMA version based on QUARK
=================================

The old version PLASMA is still available for reference but is no longer maintained.
https://bitbucket.org/icl/plasma/downloads/plasma-2.8.tar.gz

* Old overview: https://icl.utk.edu/plasma/overview/
* Old release news: https://icl.utk.edu/plasma/news/
Expand Down
1 change: 0 additions & 1 deletion compute/clag2z.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,6 @@ int plasma_clag2z(int m, int n,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
Empty file modified compute/pzhbtrd_static.c
100755 → 100644
Empty file.
1 change: 0 additions & 1 deletion compute/zcgbsv.c
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,6 @@ int plasma_zcgbsv(int n, int kl, int ku, int nrhs,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PLASMA_SUCCESS (the
Expand Down
1 change: 0 additions & 1 deletion compute/zcgesv.c
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,6 @@ static bool conv(double *Rnorm, double *Xnorm, int n, double cte) {
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PLASMA_SUCCESS (the
Expand Down
1 change: 0 additions & 1 deletion compute/zcposv.c
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,6 @@ static bool conv(double *Rnorm, double *Xnorm, int n, double cte)
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PLASMA_SUCCESS (the
Expand Down
13 changes: 6 additions & 7 deletions compute/zgbmm.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@
* @ingroup plasma_gbmm
*
* Performs one of the matrix-matrix operations
*
* \f[ C = \alpha [op( A )\times op( B )] + \beta C, \f]
*
* \[
* C = \alpha op( A ) op( B ) + \beta C,
* \]
* where op( X ) is one of:
* \f[ op( X ) = X, \f]
* \f[ op( X ) = X^T, \f]
* \f[ op( X ) = X^H, \f]
* \[ op( X ) = X, \]
* \[ op( X ) = X^T, \]
* \[ op( X ) = X^H, \]
*
* alpha and beta are scalars, and A, B and C are matrices, with op( A )
* an m-by-k band matrix, op( B ) a k-by-n matrix and C an m-by-n matrix.
Expand Down Expand Up @@ -319,7 +319,6 @@ int plasma_zgbmm(plasma_enum_t transa, plasma_enum_t transb,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
5 changes: 2 additions & 3 deletions compute/zgbsv.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
* The number of right hand sides, i.e., the number of
* columns of the matrix B. nrhs >= 0.
*
* @param[in,out] AB
* @param[in,out] pAB
* Details of the LU factorization of the band matrix A, as
* computed by plasma_zgbtrf.
*
Expand All @@ -52,7 +52,7 @@
* The pivot indices; for 1 <= i <= min(m,n), row i of the
* matrix was interchanged with row ipiv(i).
*
* @param[in,out] B
* @param[in,out] pB
* On entry, the n-by-nrhs right hand side matrix B.
* On exit, if return value = 0, the n-by-nrhs solution matrix X.
*
Expand Down Expand Up @@ -204,7 +204,6 @@ int plasma_zgbsv(int n, int kl, int ku, int nrhs,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
3 changes: 1 addition & 2 deletions compute/zgbtrf.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
* @param[in] ku
* The number of superdiagonals within the band of A. ku >= 0.
*
* @param[in,out] AB
* @param[in,out] pAB
* Details of the LU factorization of the band matrix A, as
* computed by plasma_zgbtrf.
*
Expand Down Expand Up @@ -175,7 +175,6 @@ int plasma_zgbtrf(int m, int n, int kl, int ku,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
9 changes: 6 additions & 3 deletions compute/zgbtrs.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
* The number of right hand sides, i.e., the number of
* columns of the matrix B. nrhs >= 0.
*
* @param[in,out] AB
* @param[in,out] pAB
* Details of the LU factorization of the band matrix A, as
* computed by plasma_zgbtrf.
*
Expand All @@ -57,7 +57,7 @@
* The pivot indices; for 1 <= i <= min(m,n), row i of the
* matrix was interchanged with row ipiv(i).
*
* @param[in,out] B
* @param[in,out] pB
* On entry, the n-by-nrhs right hand side matrix B.
* On exit, if return value = 0, the n-by-nrhs solution matrix X.
*
Expand Down Expand Up @@ -214,6 +214,10 @@ int plasma_zgbtrs(plasma_enum_t trans, int n, int kl, int ku, int nrhs,
* The triangular factor U or L from the Cholesky factorization
* A = U^H*U or A = L*L^H, computed by plasma_zpotrf.
*
* @param[in] ipiv
* The pivot indices; for 1 <= i <= min(m,n), row i of the
* matrix was interchanged with row ipiv(i).
*
* @param[in,out] B
* On entry, the n-by-nrhs right hand side matrix B.
* On exit, if return value = 0, the n-by-nrhs solution matrix X.
Expand All @@ -226,7 +230,6 @@ int plasma_zgbtrs(plasma_enum_t trans, int n, int kl, int ku, int nrhs,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
13 changes: 6 additions & 7 deletions compute/zgeadd.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@
*
* Performs an addition of two general rectangular matrices similarly to the
* pzgeadd() function from the PBLAS library:
*
* \f[ B = \alpha * op( A ) + \beta * B, \f]
*
* \[
* B = \alpha * op( A ) + \beta * B,
* \]
* where op( X ) is one of:
* \f[ op( X ) = X, \f]
* \f[ op( X ) = X^T, \f]
* \f[ op( X ) = X^H, \f]
* \[ op( X ) = X, \]
* \[ op( X ) = X^T, \]
* \[ op( X ) = X^H, \]
*
* alpha and beta are scalars and A, B are matrices with op( A ) an m-by-n or
* n-by-m matrix depending on the value of transa and B an m-by-n matrix.
Expand Down Expand Up @@ -250,7 +250,6 @@ int plasma_zgeadd(plasma_enum_t transa,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
9 changes: 3 additions & 6 deletions compute/zgeinv.c
Original file line number Diff line number Diff line change
Expand Up @@ -148,15 +148,13 @@ int plasma_zgeinv(int m, int n, plasma_complex64_t *pA, int lda, int *ipiv)
*
* @ingroup plasma_geinv
*
* Computes the inverse of a complex Hermitian
* positive definite matrix A using the Cholesky factorization.
* Computes the inverse of a general matrix A using the LU factorization.
*
*******************************************************************************
*
* @param[in] A
* On entry, the Hermitian positive definite matrix A.
* On exit, the upper or lower triangle of the (Hermitian)
* inverse of A, overwriting the input factor U or L.
* On entry, the general matrix A.
* On exit, the inverse of A.
*
* @param[out] ipiv
* The pivot indices; for 1 <= i <= min(m,n), row i of the
Expand All @@ -173,7 +171,6 @@ int plasma_zgeinv(int m, int n, plasma_complex64_t *pA, int lda, int *ipiv)
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
5 changes: 3 additions & 2 deletions compute/zgelqf.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@
*
* Computes tile LQ factorization of a complex m-by-n matrix A.
* The factorization has the form
* \f[ A = L \times Q \f],
* \[
* A = L Q,
* \]
* where L is a lower trapezoidal with positive diagonal and Q is a matrix with
* orthonormal rows.
*
Expand Down Expand Up @@ -197,7 +199,6 @@ int plasma_zgelqf(int m, int n,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
1 change: 0 additions & 1 deletion compute/zgelqs.c
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,6 @@ int plasma_zgelqs(int m, int n, int nrhs,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
1 change: 0 additions & 1 deletion compute/zgels.c
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,6 @@ int plasma_zgels(plasma_enum_t trans,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
13 changes: 6 additions & 7 deletions compute/zgemm.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@
* @ingroup plasma_gemm
*
* Performs one of the matrix-matrix operations
*
* \f[ C = \alpha [op( A )\times op( B )] + \beta C, \f]
*
* \[
* C = \alpha op( A ) op( B ) + \beta C,
* \]
* where op( X ) is one of:
* \f[ op( X ) = X, \f]
* \f[ op( X ) = X^T, \f]
* \f[ op( X ) = X^H, \f]
* \[ op( X ) = X, \]
* \[ op( X ) = X^T, \]
* \[ op( X ) = X^H, \]
*
* alpha and beta are scalars, and A, B and C are matrices, with op( A )
* an m-by-k matrix, op( B ) a k-by-n matrix and C an m-by-n matrix.
Expand Down Expand Up @@ -297,7 +297,6 @@ int plasma_zgemm(plasma_enum_t transa, plasma_enum_t transb,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
5 changes: 3 additions & 2 deletions compute/zgeqrf.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@
*
* Computes a tile QR factorization of a real or complex m-by-n matrix A.
* The factorization has the form
* \f[ A = Q \times R \f],
* \[
* A = Q R,
* \]
* where Q is a matrix with orthonormal columns and R is an upper triangular
* with positive diagonal.
*
Expand Down Expand Up @@ -202,7 +204,6 @@ int plasma_zgeqrf(int m, int n,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
1 change: 0 additions & 1 deletion compute/zgeqrs.c
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,6 @@ int plasma_zgeqrs(int m, int n, int nrhs,
* @param[out] request
* Identifies this function call (for exception handling purposes).
*
* @retval void
* Errors are returned by setting sequence->status and
* request->status to error values. The sequence->status and
* request->status should never be set to PlasmaSuccess (the
Expand Down
Loading