PLASMA  2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
plasma_d.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define REAL

Functions

int PLASMA_dgebrd (PLASMA_enum jobu, PLASMA_enum jobvt, int M, int N, double *A, int LDA, double *D, double *E, double *U, int LDU, double *VT, int LDVT, PLASMA_desc *T)
int PLASMA_dgeev (PLASMA_enum jobvl, PLASMA_enum jobvr, int N, double *A, int LDA, double *W, double *VL, int LDVL, double *VR, int LDVR, double *T)
int PLASMA_dgehrd (int N, int ILO, int IHI, double *A, int LDA, double *T)
int PLASMA_dgelqf (int M, int N, double *A, int LDA, double *T)
int PLASMA_dgelqs (int M, int N, int NRHS, double *A, int LDA, double *T, double *B, int LDB)
int PLASMA_dgels (PLASMA_enum trans, int M, int N, int NRHS, double *A, int LDA, double *T, double *B, int LDB)
int PLASMA_dgemm (PLASMA_enum transA, PLASMA_enum transB, int M, int N, int K, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC)
int PLASMA_dgeqrf (int M, int N, double *A, int LDA, double *T)
int PLASMA_dgeqrs (int M, int N, int NRHS, double *A, int LDA, double *T, double *B, int LDB)
int PLASMA_dgesv (int N, int NRHS, double *A, int LDA, int *IPIV, double *B, int LDB)
int PLASMA_dgesv_incpiv (int N, int NRHS, double *A, int LDA, double *L, int *IPIV, double *B, int LDB)
int PLASMA_dgesvd (PLASMA_enum jobu, PLASMA_enum jobvt, int M, int N, double *A, int LDA, double *S, double *U, int LDU, double *VT, int LDVT, PLASMA_desc *T)
int PLASMA_dgetrf (int M, int N, double *A, int LDA, int *IPIV)
int PLASMA_dgetrf_incpiv (int M, int N, double *A, int LDA, double *L, int *IPIV)
int PLASMA_dgetri (int N, double *A, int LDA, int *IPIV)
int PLASMA_dgetrs (PLASMA_enum trans, int N, int NRHS, double *A, int LDA, int *IPIV, double *B, int LDB)
int PLASMA_dgetrs_incpiv (PLASMA_enum trans, int N, int NRHS, double *A, int LDA, double *L, int *IPIV, double *B, int LDB)
int PLASMA_dsyev (PLASMA_enum jobz, PLASMA_enum uplo, int N, double *A, int LDA, double *W, PLASMA_desc *T, double *Q, int LDQ)
int PLASMA_dsygv (PLASMA_enum itype, PLASMA_enum jobz, PLASMA_enum uplo, int N, double *A, int LDA, double *B, int LDB, double *W, PLASMA_desc *T, double *Q, int LDQ)
int PLASMA_dsygst (PLASMA_enum itype, PLASMA_enum uplo, int N, double *A, int LDA, double *B, int LDB)
int PLASMA_dsytrd (PLASMA_enum jobz, PLASMA_enum uplo, int N, double *A, int LDA, double *D, double *E, PLASMA_desc *T, double *Q, int LDQ)
int PLASMA_dlacpy (PLASMA_enum uplo, int M, int N, double *A, int LDA, double *B, int LDB)
double PLASMA_dlange (PLASMA_enum norm, int M, int N, double *A, int LDA, double *work)
double PLASMA_dlansy (PLASMA_enum norm, PLASMA_enum uplo, int N, double *A, int LDA, double *work)
int PLASMA_dlaset (PLASMA_enum uplo, int M, int N, double alpha, double beta, double *A, int LDA)
int PLASMA_dlaswp (int N, double *A, int LDA, int K1, int K2, int *IPIV, int INCX)
int PLASMA_dlaswpc (int N, double *A, int LDA, int K1, int K2, int *IPIV, int INCX)
int PLASMA_dlauum (PLASMA_enum uplo, int N, double *A, int LDA)
int PLASMA_dplgsy (double bump, int N, double *A, int LDA, unsigned long long int seed)
int PLASMA_dplrnt (int M, int N, double *A, int LDA, unsigned long long int seed)
int PLASMA_dposv (PLASMA_enum uplo, int N, int NRHS, double *A, int LDA, double *B, int LDB)
int PLASMA_dpotrf (PLASMA_enum uplo, int N, double *A, int LDA)
int PLASMA_dpotri (PLASMA_enum uplo, int N, double *A, int LDA)
int PLASMA_dpotrs (PLASMA_enum uplo, int N, int NRHS, double *A, int LDA, double *B, int LDB)
int PLASMA_dsymm (PLASMA_enum side, PLASMA_enum uplo, int M, int N, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC)
int PLASMA_dsyrk (PLASMA_enum uplo, PLASMA_enum trans, int N, int K, double alpha, double *A, int LDA, double beta, double *C, int LDC)
int PLASMA_dsyr2k (PLASMA_enum uplo, PLASMA_enum trans, int N, int K, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC)
int PLASMA_dtrmm (PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, int N, int NRHS, double alpha, double *A, int LDA, double *B, int LDB)
int PLASMA_dtrsm (PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, int N, int NRHS, double alpha, double *A, int LDA, double *B, int LDB)
int PLASMA_dtrsmpl (int N, int NRHS, double *A, int LDA, double *L, int *IPIV, double *B, int LDB)
int PLASMA_dtrsmrv (PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, int N, int NRHS, double alpha, double *A, int LDA, double *B, int LDB)
int PLASMA_dtrtri (PLASMA_enum uplo, PLASMA_enum diag, int N, double *A, int LDA)
int PLASMA_dorgbr (PLASMA_enum side, int M, int N, int K, double *A, int LDA, double *T, double *Q, int LDQ)
int PLASMA_dorghr (int N, int ILO, int IHI, double *A, int LDA, double *T, double *Q, int LDQ)
int PLASMA_dorglq (int M, int N, int K, double *A, int LDA, double *T, double *B, int LDB)
int PLASMA_dorgqr (int M, int N, int K, double *A, int LDA, double *T, double *B, int LDB)
int PLASMA_dorgtr (PLASMA_enum uplo, int N, double *A, int LDA, double *T, double *B, int LDB)
int PLASMA_dormlq (PLASMA_enum side, PLASMA_enum trans, int M, int N, int K, double *A, int LDA, double *T, double *B, int LDB)
int PLASMA_dormqr (PLASMA_enum side, PLASMA_enum trans, int M, int N, int K, double *A, int LDA, double *T, double *B, int LDB)
int PLASMA_dgecfi (int m, int n, double *A, PLASMA_enum fin, int imb, int inb, PLASMA_enum fout, int omb, int onb)
int PLASMA_dgetmi (int m, int n, double *A, PLASMA_enum fin, int mb, int nb)
int PLASMA_dgebrd_Tile (PLASMA_enum jobu, PLASMA_enum jobvt, PLASMA_desc *A, double *D, double *E, PLASMA_desc *U, PLASMA_desc *VT, PLASMA_desc *T)
int PLASMA_dgeev_Tile (PLASMA_enum jobvl, PLASMA_enum jobvr, PLASMA_desc *A, double *W, PLASMA_desc *VL, PLASMA_desc *VR, PLASMA_desc *T)
int PLASMA_dgehrd_Tile (PLASMA_desc *A, PLASMA_desc *T)
int PLASMA_dgelqf_Tile (PLASMA_desc *A, PLASMA_desc *T)
int PLASMA_dgelqs_Tile (PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B)
int PLASMA_dgels_Tile (PLASMA_enum trans, PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B)
int PLASMA_dgemm_Tile (PLASMA_enum transA, PLASMA_enum transB, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C)
int PLASMA_dgeqrf_Tile (PLASMA_desc *A, PLASMA_desc *T)
int PLASMA_dgeqrs_Tile (PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B)
int PLASMA_dgesv_Tile (PLASMA_desc *A, int *IPIV, PLASMA_desc *B)
int PLASMA_dgesv_incpiv_Tile (PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B)
int PLASMA_dgesvd_Tile (PLASMA_enum jobu, PLASMA_enum jobvt, PLASMA_desc *A, double *S, PLASMA_desc *U, PLASMA_desc *VT, PLASMA_desc *T)
int PLASMA_dgetrf_Tile (PLASMA_desc *A, int *IPIV)
int PLASMA_dgetrf_incpiv_Tile (PLASMA_desc *A, PLASMA_desc *L, int *IPIV)
int PLASMA_dgetri_Tile (PLASMA_desc *A, int *IPIV)
int PLASMA_dgetrs_Tile (PLASMA_enum trans, PLASMA_desc *A, int *IPIV, PLASMA_desc *B)
int PLASMA_dgetrs_incpiv_Tile (PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B)
int PLASMA_dsyev_Tile (PLASMA_enum jobz, PLASMA_enum uplo, PLASMA_desc *A, double *W, PLASMA_desc *T, PLASMA_desc *Q)
int PLASMA_dsygv_Tile (PLASMA_enum itype, PLASMA_enum jobz, PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B, double *W, PLASMA_desc *T, PLASMA_desc *Q)
int PLASMA_dsygst_Tile (PLASMA_enum itype, PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B)
int PLASMA_dsytrd_Tile (PLASMA_enum jobz, PLASMA_enum uplo, PLASMA_desc *A, double *D, double *E, PLASMA_desc *T, PLASMA_desc *Q)
int PLASMA_dlacpy_Tile (PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B)
double PLASMA_dlange_Tile (PLASMA_enum norm, PLASMA_desc *A, double *work)
double PLASMA_dlansy_Tile (PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc *A, double *work)
int PLASMA_dlaset_Tile (PLASMA_enum uplo, double alpha, double beta, PLASMA_desc *A)
int PLASMA_dlaswp_Tile (PLASMA_desc *A, int K1, int K2, int *IPIV, int INCX)
int PLASMA_dlaswpc_Tile (PLASMA_desc *A, int K1, int K2, int *IPIV, int INCX)
int PLASMA_dlauum_Tile (PLASMA_enum uplo, PLASMA_desc *A)
int PLASMA_dplgsy_Tile (double bump, PLASMA_desc *A, unsigned long long int seed)
int PLASMA_dplrnt_Tile (PLASMA_desc *A, unsigned long long int seed)
int PLASMA_dposv_Tile (PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B)
int PLASMA_dpotrf_Tile (PLASMA_enum uplo, PLASMA_desc *A)
int PLASMA_dpotri_Tile (PLASMA_enum uplo, PLASMA_desc *A)
int PLASMA_dpotrs_Tile (PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B)
int PLASMA_dsymm_Tile (PLASMA_enum side, PLASMA_enum uplo, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C)
int PLASMA_dsyrk_Tile (PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc *A, double beta, PLASMA_desc *C)
int PLASMA_dsyr2k_Tile (PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C)
int PLASMA_dtrmm_Tile (PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, double alpha, PLASMA_desc *A, PLASMA_desc *B)
int PLASMA_dtrsm_Tile (PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, double alpha, PLASMA_desc *A, PLASMA_desc *B)
int PLASMA_dtrsmpl_Tile (PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B)
int PLASMA_dtrsmrv_Tile (PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, double alpha, PLASMA_desc *A, PLASMA_desc *B)
int PLASMA_dtrtri_Tile (PLASMA_enum uplo, PLASMA_enum diag, PLASMA_desc *A)
int PLASMA_dorgbr_Tile (PLASMA_enum size, PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *Q)
int PLASMA_dorghr_Tile (PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *Q)
int PLASMA_dorglq_Tile (PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B)
int PLASMA_dorgqr_Tile (PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B)
int PLASMA_dorgtr_Tile (PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B)
int PLASMA_dormlq_Tile (PLASMA_enum side, PLASMA_enum trans, PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B)
int PLASMA_dormqr_Tile (PLASMA_enum side, PLASMA_enum trans, PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B)
int PLASMA_dgebrd_Tile_Async (PLASMA_enum jobu, PLASMA_enum jobvt, PLASMA_desc *A, double *D, double *E, PLASMA_desc *U, PLASMA_desc *VT, PLASMA_desc *T, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgeev_Tile_Async (PLASMA_enum jobvl, PLASMA_enum jobvr, PLASMA_desc *A, double *W, PLASMA_desc *VL, PLASMA_desc *VR, PLASMA_desc *T, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgehrd_Tile_Async (PLASMA_desc *A, PLASMA_desc *T, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgelqf_Tile_Async (PLASMA_desc *A, PLASMA_desc *T, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgelqs_Tile_Async (PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgels_Tile_Async (PLASMA_enum trans, PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgemm_Tile_Async (PLASMA_enum transA, PLASMA_enum transB, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgeqrf_Tile_Async (PLASMA_desc *A, PLASMA_desc *T, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgeqrs_Tile_Async (PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgesv_Tile_Async (PLASMA_desc *A, int *IPIV, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgesv_incpiv_Tile_Async (PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgesvd_Tile_Async (PLASMA_enum jobu, PLASMA_enum jobvt, PLASMA_desc *A, double *S, PLASMA_desc *U, PLASMA_desc *VT, PLASMA_desc *T, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgetrf_Tile_Async (PLASMA_desc *A, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgetrf_incpiv_Tile_Async (PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgetri_Tile_Async (PLASMA_desc *A, int *IPIV, PLASMA_desc *W, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgetrs_Tile_Async (PLASMA_enum trans, PLASMA_desc *A, int *IPIV, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgetrs_incpiv_Tile_Async (PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dsyev_Tile_Async (PLASMA_enum jobz, PLASMA_enum uplo, PLASMA_desc *A, double *W, PLASMA_desc *T, PLASMA_desc *Q, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dsygv_Tile_Async (PLASMA_enum itype, PLASMA_enum jobz, PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B, double *W, PLASMA_desc *T, PLASMA_desc *Q, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dsygst_Tile_Async (PLASMA_enum itype, PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dsytrd_Tile_Async (PLASMA_enum jobz, PLASMA_enum uplo, PLASMA_desc *A, double *D, double *E, PLASMA_desc *T, PLASMA_desc *Q, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dlacpy_Tile_Async (PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dlange_Tile_Async (PLASMA_enum norm, PLASMA_desc *A, double *work, double *value, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dlansy_Tile_Async (PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc *A, double *work, double *value, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dlaset_Tile_Async (PLASMA_enum uplo, double alpha, double beta, PLASMA_desc *A, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dlaswp_Tile_Async (PLASMA_desc *A, int K1, int K2, int *IPIV, int INCX, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dlaswpc_Tile_Async (PLASMA_desc *A, int K1, int K2, int *IPIV, int INCX, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dlauum_Tile_Async (PLASMA_enum uplo, PLASMA_desc *A, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dplgsy_Tile_Async (double bump, PLASMA_desc *A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dplrnt_Tile_Async (PLASMA_desc *A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dposv_Tile_Async (PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dpotrf_Tile_Async (PLASMA_enum uplo, PLASMA_desc *A, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dpotri_Tile_Async (PLASMA_enum uplo, PLASMA_desc *A, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dpotrs_Tile_Async (PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dsymm_Tile_Async (PLASMA_enum side, PLASMA_enum uplo, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dsyrk_Tile_Async (PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc *A, double beta, PLASMA_desc *C, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dsyr2k_Tile_Async (PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dtrmm_Tile_Async (PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, double alpha, PLASMA_desc *A, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dtrsm_Tile_Async (PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, double alpha, PLASMA_desc *A, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dtrsmpl_Tile_Async (PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dtrsmrv_Tile_Async (PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, double alpha, PLASMA_desc *A, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dtrtri_Tile_Async (PLASMA_enum uplo, PLASMA_enum diag, PLASMA_desc *A, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dorgbr_Tile_Async (PLASMA_enum side, PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *Q, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dorghr_Tile_Async (PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *Q, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dorglq_Tile_Async (PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dorgqr_Tile_Async (PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dorgtr_Tile_Async (PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dormlq_Tile_Async (PLASMA_enum side, PLASMA_enum trans, PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dormqr_Tile_Async (PLASMA_enum side, PLASMA_enum trans, PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgecfi_Async (int m, int n, double *A, PLASMA_enum f_in, int imb, int inb, PLASMA_enum f_out, int omb, int onb, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dgetmi_Async (int m, int n, double *A, PLASMA_enum f_in, int mb, int inb, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_Alloc_Workspace_dgelqf (int M, int N, double **T)
int PLASMA_Alloc_Workspace_dgels (int M, int N, double **T)
int PLASMA_Alloc_Workspace_dgeqrf (int M, int N, double **T)
int PLASMA_Alloc_Workspace_dgesv_incpiv (int N, double **L, int **IPIV)
int PLASMA_Alloc_Workspace_dgetrf_incpiv (int M, int N, double **L, int **IPIV)
int PLASMA_Alloc_Workspace_dgebrd (int M, int N, PLASMA_desc **descT)
int PLASMA_Alloc_Workspace_dgeev (int N, PLASMA_desc **descT)
int PLASMA_Alloc_Workspace_dgehrd (int N, PLASMA_desc **descT)
int PLASMA_Alloc_Workspace_dgesvd (int M, int N, PLASMA_desc **descT)
int PLASMA_Alloc_Workspace_dsyev (int M, int N, PLASMA_desc **descT)
int PLASMA_Alloc_Workspace_dsygv (int M, int N, PLASMA_desc **descT)
int PLASMA_Alloc_Workspace_dsytrd (int M, int N, PLASMA_desc **descT)
int PLASMA_Alloc_Workspace_dgelqf_Tile (int M, int N, PLASMA_desc **descT)
int PLASMA_Alloc_Workspace_dgels_Tile (int M, int N, PLASMA_desc **descT)
int PLASMA_Alloc_Workspace_dgeqrf_Tile (int M, int N, PLASMA_desc **descT)
int PLASMA_Alloc_Workspace_dgesv_incpiv_Tile (int N, PLASMA_desc **descL, int **IPIV)
int PLASMA_Alloc_Workspace_dgetrf_incpiv_Tile (int N, PLASMA_desc **descL, int **IPIV)
int PLASMA_Alloc_Workspace_dgetri_Tile_Async (PLASMA_desc *A, PLASMA_desc *W)
int PLASMA_dLapack_to_Tile (double *Af77, int LDA, PLASMA_desc *A)
int PLASMA_dTile_to_Lapack (PLASMA_desc *A, double *Af77, int LDA)
int PLASMA_dLapack_to_Tile_Async (double *Af77, int LDA, PLASMA_desc *A, PLASMA_sequence *sequence, PLASMA_request *request)
int PLASMA_dTile_to_Lapack_Async (PLASMA_desc *A, double *Af77, int LDA, PLASMA_sequence *sequence, PLASMA_request *request)

Detailed Description

PLASMA header file for double routines PLASMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver

Version:
2.4.5
Author:
Jakub Kurzak
Hatem Ltaief
Mathieu Faverge
Azzam Haidar
Date:
2010-11-15 d Tue Nov 22 14:35:11 2011

Definition in file plasma_d.h.


Macro Definition Documentation

#define REAL

Definition at line 22 of file plasma_d.h.


Function Documentation

int PLASMA_Alloc_Workspace_dgebrd ( int  M,
int  N,
PLASMA_desc **  descT 
)

PLASMA_Alloc_Workspace_dgebrd - Allocates workspace for PLASMA_dgebrd or PLASMA_dgebrd_Tile routine.

Parameters:
[in]MThe number of rows of the matrix A. M >= 0.
[in]NThe number of columns of the matrix A. N >= 0.
[out]TOn exit, workspace handle for storage of the extra T factors required by the tile BRD.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 89 of file workspace_d.c.

References plasma_alloc_ibnb_tile(), PLASMA_FUNC_DGEBRD, and PlasmaRealDouble.

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dgeev ( int  N,
PLASMA_desc **  descT 
)

PLASMA_Alloc_Workspace_dgeev - Allocates workspace for PLASMA_dgeev or PLASMA_dgeev_Tile routine.

Parameters:
[in]NThe order of the matrix A. N >= 0.
[out]TOn exit, workspace handle for storage of the extra T factors required by the tile Hessenberg.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 40 of file workspace_d.c.

References plasma_alloc_ibnb_tile(), PLASMA_FUNC_DGEEV, and PlasmaRealDouble.

Here is the call graph for this function:

int PLASMA_Alloc_Workspace_dgehrd ( int  N,
PLASMA_desc **  descT 
)

PLASMA_Alloc_Workspace_dgehrd - Allocates workspace for PLASMA_dgehrd or PLASMA_dgehrd_Tile routine.

Parameters:
[in]NThe number of columns of the matrix A. N >= 0.
[out]TOn exit, workspace handle for storage of the extra T factors required by the tile Hessenberg.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 63 of file workspace_d.c.

References plasma_alloc_ibnb_tile(), PLASMA_FUNC_DGEHRD, and PlasmaRealDouble.

Here is the call graph for this function:

int PLASMA_Alloc_Workspace_dgelqf ( int  M,
int  N,
double **  T 
)

Declarations of workspace allocation functions (tile layout) - alphabetical order

PLASMA_Alloc_Workspace_dgelqf - Allocates workspace for PLASMA_dgelqf or PLASMA_dgelqf_Tile routines.

Parameters:
[in]MThe number of rows of the matrix A. M >= 0.
[in]NThe number of columns of the matrix A. N >= 0.
[out]TOn exit, workspace handle for storage of the extra T factors required by the tile LQ factorization.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 225 of file workspace_d.c.

References plasma_alloc_ibnb(), PLASMA_FUNC_DGELS, and PlasmaRealDouble.

{

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dgelqf_Tile ( int  M,
int  N,
PLASMA_desc **  descT 
)

Declarations of workspace allocation functions (tile layout, asynchronous execution) - alphabetical order

PLASMA_Alloc_Workspace_dgelqf_Tile - Allocates tile workspace for PLASMA_dgels_Tile routine.

Parameters:
[in]MThe number of rows of the matrix A. M >= 0.
[in]NThe number of columns of the matrix A. N >= 0.
[out]descTOn exit, PLASMA_desc on workspace handle for storage of the extra T factors required by the tile QR or the tile LQ factorization.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 252 of file workspace_d.c.

References plasma_alloc_ibnb_tile(), PLASMA_FUNC_DGELS, and PlasmaRealDouble.

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dgels ( int  M,
int  N,
double **  T 
)

PLASMA_Alloc_Workspace_dgels - Allocates workspace for PLASMA_dgels or PLASMA_dgels_Tile routine.

Parameters:
[in]MThe number of rows of the matrix A. M >= 0.
[in]NThe number of columns of the matrix A. N >= 0.
[out]TOn exit, workspace handle for storage of the extra T factors required by the tile QR or the tile LQ factorization.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 116 of file workspace_d.c.

References plasma_alloc_ibnb(), PLASMA_FUNC_DGELS, and PlasmaRealDouble.

{

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dgels_Tile ( int  M,
int  N,
PLASMA_desc **  descT 
)

@ -192,33 +120,6 @

PLASMA_Alloc_Workspace_dgels_Tile - Allocates tile workspace for PLASMA_dgels_Tile routine.

Parameters:
[in]MThe number of rows of the matrix A. M >= 0.
[in]NThe number of columns of the matrix A. N >= 0.
[out]descTOn exit, PLASMA_desc on workspace handle for storage of the extra T factors required by the tile QR or the tile LQ factorization.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 144 of file workspace_d.c.

References plasma_alloc_ibnb_tile(), PLASMA_FUNC_DGELS, and PlasmaRealDouble.

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dgeqrf ( int  M,
int  N,
double **  T 
)

PLASMA_Alloc_Workspace_dgeqrf - Allocates workspace for PLASMA_dgeqrf or PLASMA_dgeqrf_Tile routine.

Parameters:
[in]MThe number of rows of the matrix A. M >= 0.
[in]NThe number of columns of the matrix A. N >= 0.
[out]TOn exit, workspace handle for storage of the extra T factors required by the tile QR factorization.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 171 of file workspace_d.c.

References plasma_alloc_ibnb(), PLASMA_FUNC_DGELS, and PlasmaRealDouble.

{

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dgeqrf_Tile ( int  M,
int  N,
PLASMA_desc **  descT 
)

PLASMA_Alloc_Workspace_dgeqrf_Tile - Allocates tile workspace for PLASMA_dgels_Tile routine.

Parameters:
[in]MThe number of rows of the matrix A. M >= 0.
[in]NThe number of columns of the matrix A. N >= 0.
[out]descTOn exit, PLASMA_desc on workspace handle for storage of the extra T factors required by the tile QR or the tile LQ factorization.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 198 of file workspace_d.c.

References plasma_alloc_ibnb_tile(), PLASMA_FUNC_DGELS, and PlasmaRealDouble.

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dgesv_incpiv ( int  N,
double **  L,
int **  IPIV 
)

PLASMA_Alloc_Workspace_dgesv - Allocates workspace for PLASMA_dgesv or PLASMA_dgesv_Tile routines.

Parameters:
[in]NThe number of linear equations, i.e., the order of the matrix A. N >= 0.
[out]LOn exit, workspace handle for storage of the extra L factors required by the tile LU factorization.
[out]IPIVOn exit, workspace handle for storage of pivot indexes required by the tile LU factorization (not equivalent to LAPACK).
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 280 of file workspace_d.c.

References plasma_alloc_ibnb(), plasma_alloc_ipiv(), PLASMA_FUNC_DGESV, PLASMA_SUCCESS, and PlasmaRealDouble.

{
int status = plasma_alloc_ibnb(N, N, PLASMA_FUNC_DGESV, PlasmaRealDouble, (void**)L);
if (status != PLASMA_SUCCESS)
return status;
return plasma_alloc_ipiv(N, N, PLASMA_FUNC_DGESV, (void**)IPIV); }

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dgesv_incpiv_Tile ( int  N,
PLASMA_desc **  descL,
int **  IPIV 
)

PLASMA_Alloc_Workspace_dgesv_Tile - Allocates workspace for PLASMA_dgesv_Tile routines.

Parameters:
[in]NThe number of linear equations, i.e., the order of the matrix A. N >= 0.
[out]descLOn exit, PLASMA descriptor on workspace handle for storage of the extra L factors required by the tile LU factorization.
[out]IPIVOn exit, workspace handle for storage of pivot indexes required by the tile LU factorization (not equivalent to LAPACK).
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 311 of file workspace_d.c.

References plasma_alloc_ibnb_tile(), plasma_alloc_ipiv(), PLASMA_FUNC_DGESV, PLASMA_SUCCESS, and PlasmaRealDouble.

{
if (status != PLASMA_SUCCESS)
return status;
return plasma_alloc_ipiv(N, N, PLASMA_FUNC_DGESV, (void **)IPIV);
}

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dgesvd ( int  M,
int  N,
PLASMA_desc **  descT 
)

PLASMA_Alloc_Workspace_dgesvd - Allocates workspace for PLASMA_dgesvd or PLASMA_dgesvd_Tile routine.

Parameters:
[in]MThe number of rows of the matrix A. M >= 0.
[in]NThe number of columns of the matrix A. N >= 0.
[out]TOn exit, workspace handle for storage of the extra T factors required by the tile BRD.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 341 of file workspace_d.c.

References plasma_alloc_ibnb_tile(), PLASMA_FUNC_DGESVD, and PlasmaRealDouble.

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dgetrf_incpiv ( int  M,
int  N,
double **  L,
int **  IPIV 
)

PLASMA_Alloc_Workspace_dgetrf_incpiv - Allocates workspace for PLASMA_dgetrf_incpiv or PLASMA_dgetrf_incpiv_Tile or PLASMA_dgetrf_incpiv_Tile_Async routines.

Parameters:
[in]MThe number of rows of the matrix A. M >= 0.
[in]NThe number of columns of the matrix A. N >= 0.
[out]LOn exit, workspace handle for storage of the extra L factors required by the tile LU factorization.
[out]IPIVOn exit, workspace handle for storage of pivot indexes required by the tile LU factorization (not equivalent to LAPACK).
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit
See also:
PLASMA_dgetrf_incpiv
PLASMA_dgetrf_incpiv_Tile
PLASMA_dgetrf_incpiv_Tile_Async

Definition at line 379 of file workspace_d.c.

References plasma_alloc_ibnb(), plasma_alloc_ipiv(), PLASMA_FUNC_DGESV, PLASMA_SUCCESS, and PlasmaRealDouble.

{
int status = plasma_alloc_ibnb(M, N, PLASMA_FUNC_DGESV, PlasmaRealDouble, (void**)L);
if (status != PLASMA_SUCCESS)
return status;
return plasma_alloc_ipiv(M, N, PLASMA_FUNC_DGESV, (void**)IPIV); }

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dgetrf_incpiv_Tile ( int  N,
PLASMA_desc **  descL,
int **  IPIV 
)

PLASMA_Alloc_Workspace_dgetrf_incpiv_Tile - Allocates workspace for PLASMA_dgesv_incpiv_Tile or PLASMA_dgesv_incpiv_Tile_Async routines.

Parameters:
[in]NThe number of linear equations, i.e., the order of the matrix A. N >= 0.
[out]descLOn exit, PLASMA descriptor on workspace handle for storage of the extra L factors required by the tile LU factorization.
[out]IPIVOn exit, workspace handle for storage of pivot indexes required by the tile LU factorization (not equivalent to LAPACK).
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 411 of file workspace_d.c.

References plasma_alloc_ibnb_tile(), plasma_alloc_ipiv(), PLASMA_FUNC_DGESV, PLASMA_SUCCESS, and PlasmaRealDouble.

{
if (status != PLASMA_SUCCESS)
return status;
return plasma_alloc_ipiv(N, N, PLASMA_FUNC_DGESV, (void **)IPIV);
}

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dgetri_Tile_Async ( PLASMA_desc A,
PLASMA_desc W 
)

Definition at line 311 of file dgetri.c.

References plasma_desc_t::m, plasma_desc_t::mb, plasma_desc_t::nb, plasma_ddesc_alloc, plasma_desc_mat_free(), and PLASMA_SUCCESS.

{
plasma_ddesc_alloc( *W, A->mb, A->nb, A->m, A->nb, 0, 0, A->m, A->nb,
}

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dsyev ( int  M,
int  N,
PLASMA_desc **  descT 
)

PLASMA_Alloc_Workspace_dsyev - Allocates workspace for PLASMA_dsyev or PLASMA_dsyev_Tile routine.

Parameters:
[in]MThe number of rows of the matrix A. M >= 0.
[in]NThe number of columns of the matrix A. N >= 0.
[out]TOn exit, workspace handle for storage of the extra T factors required by the tile TRD.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 441 of file workspace_d.c.

References plasma_alloc_ibnb_tile(), PLASMA_FUNC_DSYEV, and PlasmaRealDouble.

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dsygv ( int  M,
int  N,
PLASMA_desc **  descT 
)

PLASMA_Alloc_Workspace_dsygv - Allocates workspace for PLASMA_dsygv or PLASMA_dsygv_Tile routine.

Parameters:
[in]MThe number of rows of the matrix A. M >= 0.
[in]NThe number of columns of the matrix A. N >= 0.
[out]TOn exit, workspace handle for storage of the extra T factors required by the tile TRD.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 467 of file workspace_d.c.

References plasma_alloc_ibnb_tile(), PLASMA_FUNC_DSYGV, and PlasmaRealDouble.

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_Alloc_Workspace_dsytrd ( int  M,
int  N,
PLASMA_desc **  descT 
)

PLASMA_Alloc_Workspace_dsytrd - Allocates workspace for PLASMA_dsytrd or PLASMA_dsytrd_Tile routine.

Parameters:
[in]MThe number of rows of the matrix A. M >= 0.
[in]NThe number of columns of the matrix A. N >= 0.
[out]TOn exit, workspace handle for storage of the extra T factors required by the tile TRD.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 493 of file workspace_d.c.

References plasma_alloc_ibnb_tile(), PLASMA_FUNC_DSYTRD, and PlasmaRealDouble.

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_dgecfi ( int  m,
int  n,
double *  A,
PLASMA_enum  f_in,
int  imb,
int  inb,
PLASMA_enum  f_out,
int  omb,
int  onb 
)

PLASMA_dgecfi convert the matrice A in place from format f_in to format f_out

Parameters:
[in]mNumber of rows of matrix A
[in]nNumber of columns of matrix A
[in,out]AMatrix of size L*m*n
[in]f_inOriginal format of the matrix A. Must be part of (PlasmaCM, PlasmaRM, PlasmaCCRB, PlasmaCRRB, PlasmaRCRB, PlasmaRRRB)
[in]imbNumber of rows of each block in original format
[in]inbNumber of columns of each block in original format
[in]f_outFormat requested for the matrix A. Must be part of (PlasmaCM, PlasmaRM, PlasmaCCRB, PlasmaCRRB, PlasmaRCRB, PlasmaRRRB)
[in]ombNumber of rows of each block in requested format
[in]onbNumber of columns of each block in requested format
See also:
PLASMA_dgecfi_Async

Definition at line 69 of file dgecfi.c.

References plasma_context_self(), PLASMA_dgecfi_Async(), plasma_dynamic_sync, PLASMA_ERR_NOT_INITIALIZED, plasma_fatal_error(), PLASMA_REQUEST_INITIALIZER, plasma_sequence_create(), plasma_sequence_destroy(), and plasma_sequence_t::status.

{
PLASMA_sequence *sequence = NULL;
int status;
plasma = plasma_context_self();
if (plasma == NULL) {
plasma_fatal_error(__func__, "PLASMA not initialized");
}
plasma_sequence_create(plasma, &sequence);
f_in, imb, inb,
f_out, omb, onb,
sequence, &request);
status = sequence->status;
plasma_sequence_destroy(plasma, sequence);
return status;
}

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_dgecfi_Async ( int  m,
int  n,
double *  A,
PLASMA_enum  f_in,
int  imb,
int  inb,
PLASMA_enum  f_out,
int  omb,
int  onb,
PLASMA_sequence sequence,
PLASMA_request request 
)

PLASMA_dgecfi_Async convert the matrice A in place from format f_in to format f_out

Parameters:
[in]mNumber of rows of matrix A
[in]nNumber of columns of matrix A
[in,out]AMatrix of size L*m*n
[in]f_inOriginal format of the matrix A. Must be part of (PlasmaCM, PlasmaRM, PlasmaCCRB, PlasmaCRRB, PlasmaRCRB, PlasmaRRRB)
[in]imbNumber of rows of each block in original format
[in]inbNumber of columns of each block in original format
[in]f_outFormat requested for the matrix A. Must be part of (PlasmaCM, PlasmaRM, PlasmaCCRB, PlasmaCRRB, PlasmaRCRB, PlasmaRRRB)
[in]ombNumber of rows of each block in requested format
[in]onbNumber of columns of each block in requested format
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).
See also:
PLASMA_dgecfi

Definition at line 148 of file dgecfi.c.

References CORE_dswpab(), ipt_cal2, ipt_call, max, plasma_context_self(), PLASMA_dgecfi_Async(), PLASMA_ERR_NOT_INITIALIZED, plasma_error(), plasma_fatal_error(), PLASMA_NB, plasma_pdpack(), plasma_pdunpack(), plasma_static_call_6, PLASMA_SUCCESS, PlasmaCCRB, PlasmaCM, PlasmaCRRB, PlasmaRCRB, PlasmaRM, PlasmaRRRB, plasma_context_struct::quark, QUARK_Barrier(), and W.

{
double *W = NULL;
int im1, in1, om1, on1;
size_t A11, A21, A12, A22;
/* Check Plasma context */
plasma = plasma_context_self();
if (plasma == NULL) {
plasma_fatal_error(__func__, "PLASMA not initialized");
}
/* Check arguments */
if( ( f_in != PlasmaCM ) && ( f_in != PlasmaRM )
&& ( f_in != PlasmaCCRB ) && ( f_in != PlasmaRRRB )
&& ( f_in != PlasmaCRRB ) && ( f_in != PlasmaRCRB ) )
{
plasma_error(__func__, "Input format unknown");
return -4;
}
if( ( f_out != PlasmaCM ) && ( f_out != PlasmaRM )
&& ( f_out != PlasmaCCRB ) && ( f_out != PlasmaRRRB )
&& ( f_out != PlasmaCRRB ) && ( f_out != PlasmaRCRB ) )
{
plasma_error(__func__, "Input format unknown");
return -7;
}
/* quick return */
if( (f_in == f_out) && ( (f_in == PlasmaCM) || (f_in == PlasmaRM))
&& (imb == omb) && ( inb == onb ) ) {
}
if ( (f_in == PlasmaCM) || (f_in == PlasmaRM) )
{
if ( (f_out == PlasmaCM) || (f_out == PlasmaRM) ){
imb = omb = PLASMA_NB;
inb = onb = PLASMA_NB;
} else {
imb = omb;
inb = onb;
}
}
else if ( (f_out == PlasmaCM) || (f_out == PlasmaRM) )
{
omb = imb;
onb = inb;
}
/* calculate number of full blocks */
im1 = (m / imb) * imb;
in1 = (n / inb) * inb;
om1 = (m / omb) * omb;
on1 = (n / onb) * onb;
/* separate the four submatrices A11, A12, A21, A22 */
if( f_in == PlasmaCM ) {
if( om1 < m ) {
int, m,
int, on1,
double*, A,
int, (m-om1),
PLASMA_sequence*, sequence,
PLASMA_request*, request);
if ( on1 < n) {
int, m,
int, (n-on1),
double*, &(A[m*on1]),
int, (m-om1),
PLASMA_sequence*, sequence,
PLASMA_request*, request);
}
}
}
else if ( f_in == PlasmaRM ) {
if( on1 < n ) {
int, n,
int, om1,
double*, A,
int, (n-on1),
PLASMA_sequence*, sequence,
PLASMA_request*, request);
if( om1 < m ) {
int, n,
int, (m-om1),
double*, &(A[n*om1]),
int, (n-on1),
PLASMA_sequence*, sequence,
PLASMA_request*, request);
}
}
}
/* blocked format to blocked format conversion with different block sizes */
if( (f_in != PlasmaCM) && (f_in != PlasmaRM) &&
(f_out != PlasmaCM) && (f_out != PlasmaRM) ) {
if( (imb != omb) || (inb != onb) ) {
if( (f_in == PlasmaRRRB) || (f_out == PlasmaRRRB ) ) {
PLASMA_dgecfi_Async(m, n, A, f_in, imb, inb, PlasmaRM, 1, 1 , sequence, request);
PLASMA_dgecfi_Async(m, n, A, PlasmaRM, 1, 1, f_out, omb, onb, sequence, request);
}
else {
PLASMA_dgecfi_Async(m, n, A, f_in, imb, inb, PlasmaCM, 1, 1 , sequence, request);
PLASMA_dgecfi_Async(m, n, A, PlasmaCM, 1, 1, f_out, omb, onb, sequence, request);
}
}
}
if( (f_in == PlasmaCM) || (f_in == PlasmaCCRB) || (f_in == PlasmaCRRB) )
{
A11 = 0;
A21 = im1*in1;
A12 = m *in1;
A22 = m *in1 + im1*(n-in1);
}
else
{
A11 = 0;
A12 = im1*in1;
A21 = im1*n;
A22 = im1*n + in1*(m-im1);
}
switch ( f_in ) {
case PlasmaCM :
switch ( f_out ) {
case PlasmaCM : break;
case PlasmaCCRB : ipt_call(cm2ccrb, om1, on1, omb, onb); break;
case PlasmaCRRB : ipt_call(cm2crrb, om1, on1, omb, onb); break;
case PlasmaRCRB : ipt_call(cm2rcrb, om1, on1, omb, onb); break;
case PlasmaRRRB : ipt_call(cm2rrrb, om1, on1, omb, onb); break;
case PlasmaRM : ipt_call(cm2rm, om1, on1, omb, onb); break;
default: ;
}
break;
case PlasmaCCRB:
switch ( f_out ) {
case PlasmaCM : ipt_call(ccrb2cm, im1, in1, imb, inb); break;
case PlasmaCCRB : break;
case PlasmaCRRB : ipt_cal2(ccrb2crrb, im1, in1, imb, inb); break;
case PlasmaRCRB : ipt_call(ccrb2rcrb, im1, in1, imb, inb); break;
case PlasmaRRRB : ipt_call(ccrb2rrrb, im1, in1, imb, inb); break;
case PlasmaRM : ipt_call(ccrb2rm, im1, in1, imb, inb); break;
default: ;
}
break;
case PlasmaCRRB:
switch ( f_out ) {
case PlasmaCM : ipt_call(crrb2cm, im1, in1, imb, inb); break;
case PlasmaCCRB : ipt_cal2(crrb2ccrb, im1, in1, imb, inb); break;
case PlasmaCRRB : break;
case PlasmaRCRB : ipt_call(crrb2rcrb, im1, in1, imb, inb); break;
case PlasmaRRRB : ipt_call(crrb2rrrb, im1, in1, imb, inb); break;
case PlasmaRM : ipt_call(crrb2rm, im1, in1, imb, inb); break;
default: ;
}
break;
case PlasmaRCRB:
switch ( f_out ) {
case PlasmaCM : ipt_call(rcrb2cm, im1, in1, imb, inb); break;
case PlasmaCCRB : ipt_call(rcrb2ccrb, im1, in1, imb, inb); break;
case PlasmaCRRB : ipt_call(rcrb2crrb, im1, in1, imb, inb); break;
case PlasmaRCRB : break;
case PlasmaRRRB : ipt_cal2(rcrb2rrrb, im1, in1, imb, inb); break;
case PlasmaRM : ipt_call(rcrb2rm, im1, in1, imb, inb); break;
default: ;
}
break;
case PlasmaRRRB:
switch ( f_out ) {
case PlasmaCM : ipt_call(rrrb2cm, im1, in1, imb, inb); break;
case PlasmaCCRB : ipt_call(rrrb2ccrb, im1, in1, imb, inb); break;
case PlasmaCRRB : ipt_call(rrrb2crrb, im1, in1, imb, inb); break;
case PlasmaRCRB : ipt_cal2(rrrb2rcrb, im1, in1, imb, inb); break;
case PlasmaRRRB : break;
case PlasmaRM : ipt_call(rrrb2rm, im1, in1, imb, inb); break;
default: ;
}
break;
case PlasmaRM:
switch ( f_out ) {
case PlasmaCM : ipt_call(rm2cm, om1, on1, omb, onb); break;
case PlasmaCCRB : ipt_call(rm2ccrb, om1, on1, omb, onb); break;
case PlasmaCRRB : ipt_call(rm2crrb, om1, on1, omb, onb); break;
case PlasmaRCRB : ipt_call(rm2rcrb, om1, on1, omb, onb); break;
case PlasmaRRRB : ipt_call(rm2rrrb, om1, on1, omb, onb); break;
case PlasmaRM : break;
default: ;
}
break;
default: ;
}
/* reorder block */
if( (f_out == PlasmaCM) || (f_out == PlasmaCCRB) || (f_out == PlasmaCRRB) )
{
/* We need to swap A21 and A12 */
if ( A21 > A12 ) {
size_t sze1 = A21-A12;
size_t sze2 = A22-A21;
QUARK_Barrier(plasma->quark);
//plasma_malloc(W, max( in1, on1), double);
W = (double*)malloc( max( sze1, sze2 ) * sizeof(double) );
CORE_dswpab(0, sze1, sze2, &(A[A12]), W);
free(W);
}
}
else {
/* We need to swap A21 and A12 */
if ( A12 > A21 ) {
size_t sze1 = A12-A21;
size_t sze2 = A22-A12;
QUARK_Barrier(plasma->quark);
//plasma_malloc(W, max( in1, on1), double);
W = (double*)malloc( max( sze1, sze2 ) * sizeof(double) );
CORE_dswpab(0, sze1, sze2, &(A[A21]), W);
free(W);
}
}
/* unseparate if output is not blocked */
if( f_out == PlasmaCM ) {
if( im1 < m ) {
int, m,
int, in1,
double*, A,
int, (m-im1),
PLASMA_sequence*, sequence,
PLASMA_request*, request);
if ( in1 < n) {
int, m,
int, (n-in1),
double*, &(A[m*in1]),
int, (m-im1),
PLASMA_sequence*, sequence,
PLASMA_request*, request);
}
}
}
else if( f_out == PlasmaRM ) {
if( in1 < n ) {
int, n,
int, im1,
double*, A,
int, (n-in1),
PLASMA_sequence*, sequence,
PLASMA_request*, request);
if( im1 < m ) {
int, n,
int, (m-im1),
double*, &(A[n*im1]),
int, (n-in1),
PLASMA_sequence*, sequence,
PLASMA_request*, request);
}
}
}
}

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_dgeev ( PLASMA_enum  jobvl,
PLASMA_enum  jobvr,
int  N,
double *  A,
int  LDA,
double *  W,
double *  VL,
int  LDVL,
double *  VR,
int  LDVR,
double *  T 
)
int PLASMA_dgeev_Tile ( PLASMA_enum  jobvl,
PLASMA_enum  jobvr,
PLASMA_desc A,
double *  W,
PLASMA_desc VL,
PLASMA_desc VR,
PLASMA_desc T 
)
int PLASMA_dgeev_Tile_Async ( PLASMA_enum  jobvl,
PLASMA_enum  jobvr,
PLASMA_desc A,
double *  W,
PLASMA_desc VL,
PLASMA_desc VR,
PLASMA_desc T,
PLASMA_sequence sequence,
PLASMA_request request 
)
int PLASMA_dgehrd ( int  N,
int  ILO,
int  IHI,
double *  A,
int  LDA,
double *  T 
)
int PLASMA_dgehrd_Tile ( PLASMA_desc A,
PLASMA_desc T 
)
int PLASMA_dgehrd_Tile_Async ( PLASMA_desc A,
PLASMA_desc T,
PLASMA_sequence sequence,
PLASMA_request request 
)
int PLASMA_dgetmi ( int  m,
int  n,
double *  A,
PLASMA_enum  f_in,
int  imb,
int  inb 
)

PLASMA_dgetmi Implementation of inplace transposition based on the GKK algorithm by Gustavson, Karlsson, Kagstrom. This algorithm shift some cycles to transpose the matrix.

Parameters:
[in]mNumber of rows of matrix A
[in]nNumber of columns of matrix A
[in,out]AMatrix of size L*m*n.
[in]f_inOriginal format of the matrix A. Must be part of (PlasmaCM, PlasmaRM, PlasmaCCRB, PlasmaCRRB, PlasmaRCRB, PlasmaRRRB)
[in]imbNumber of rows of the problem
[in]inbNumber of columns in the problem
See also:
PLASMA_dgetmi_Async

Definition at line 59 of file dgetmi.c.

References plasma_context_self(), PLASMA_dgetmi_Async(), plasma_dynamic_sync, PLASMA_ERR_NOT_INITIALIZED, plasma_fatal_error(), PLASMA_REQUEST_INITIALIZER, plasma_sequence_create(), plasma_sequence_destroy(), and plasma_sequence_t::status.

{
PLASMA_sequence *sequence = NULL;
int status;
plasma = plasma_context_self();
if (plasma == NULL) {
plasma_fatal_error(__func__, "PLASMA not initialized");
}
plasma_sequence_create(plasma, &sequence);
f_in, imb, inb,
sequence, &request);
status = sequence->status;
plasma_sequence_destroy(plasma, sequence);
return status;
}

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_dgetmi_Async ( int  m,
int  n,
double *  A,
PLASMA_enum  f_in,
int  mb,
int  nb,
PLASMA_sequence sequence,
PLASMA_request request 
)

PLASMA_dgetmi_Async Implementation of inplace transposition based on the GKK algorithm by Gustavson, Karlsson, Kagstrom. This algorithm shift some cycles to transpose the matrix.

Parameters:
[in]mNumber of rows of matrix A
[in]nNumber of columns of matrix A
[in,out]AMatrix of size L*m*n.
[in]f_inOriginal format of the matrix A. Must be part of (PlasmaCM, PlasmaRM, PlasmaCCRB, PlasmaCRRB, PlasmaRCRB, PlasmaRRRB)
[in]mbNumber of rows of the problem
[in]nbNumber of columns in the problem
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).
See also:
PLASMA_dgetmi

Definition at line 125 of file dgetmi.c.

References PLASMA_dgecfi_Async(), plasma_error(), PLASMA_SUCCESS, PlasmaCCRB, PlasmaCM, PlasmaCRRB, PlasmaRCRB, PlasmaRM, and PlasmaRRRB.

{
/* convert */
switch ( f_in ) {
case PlasmaCM :
PLASMA_dgecfi_Async(m, n, A, PlasmaCM, mb, nb, PlasmaRM, nb, mb, sequence, request);
break;
case PlasmaCCRB :
PLASMA_dgecfi_Async(m, n, A, PlasmaCCRB, mb, nb, PlasmaRRRB, nb, mb, sequence, request);
break;
case PlasmaCRRB :
PLASMA_dgecfi_Async(m, n, A, PlasmaCRRB, mb, nb, PlasmaRCRB, nb, mb, sequence, request);
break;
case PlasmaRCRB :
PLASMA_dgecfi_Async(m, n, A, PlasmaRCRB, mb, nb, PlasmaCRRB, nb, mb, sequence, request);
break;
case PlasmaRRRB :
PLASMA_dgecfi_Async(m, n, A, PlasmaRRRB, mb, nb, PlasmaCCRB, nb, mb, sequence, request);
break;
case PlasmaRM :
PLASMA_dgecfi_Async(m, n, A, PlasmaRM, mb, nb, PlasmaCM, nb, mb, sequence, request);
break;
default:
plasma_error(__func__, "unknown format");
}
}

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_dorgbr ( PLASMA_enum  side,
int  M,
int  N,
int  K,
double *  A,
int  LDA,
double *  T,
double *  Q,
int  LDQ 
)
int PLASMA_dorgbr_Tile ( PLASMA_enum  size,
PLASMA_desc A,
PLASMA_desc T,
PLASMA_desc Q 
)
int PLASMA_dorgbr_Tile_Async ( PLASMA_enum  side,
PLASMA_desc A,
PLASMA_desc T,
PLASMA_desc Q,
PLASMA_sequence sequence,
PLASMA_request request 
)
int PLASMA_dorghr ( int  N,
int  ILO,
int  IHI,
double *  A,
int  LDA,
double *  T,
double *  Q,
int  LDQ 
)
int PLASMA_dorghr_Tile ( PLASMA_desc A,
PLASMA_desc T,
PLASMA_desc Q 
)
int PLASMA_dorghr_Tile_Async ( PLASMA_desc A,
PLASMA_desc T,
PLASMA_desc Q,
PLASMA_sequence sequence,
PLASMA_request request 
)
int PLASMA_dorgtr ( PLASMA_enum  uplo,
int  N,
double *  A,
int  LDA,
double *  T,
double *  B,
int  LDB 
)
int PLASMA_dorgtr_Tile ( PLASMA_enum  uplo,
PLASMA_desc A,
PLASMA_desc T,
PLASMA_desc B 
)
int PLASMA_dorgtr_Tile_Async ( PLASMA_enum  uplo,
PLASMA_desc A,
PLASMA_desc T,
PLASMA_desc B,
PLASMA_sequence sequence,
PLASMA_request request 
)