MAGMA  1.2.0
MatrixAlgebraonGPUandMulticoreArchitectures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
compute_z.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PRECISION_z
#define magma_zdesc_alloc(descA, mb, nb, lm, ln, i, j, m, n, free)
#define magma_zdesc_alloc2(descA, mb, nb, lm, ln, i, j, m, n)
#define magma_zooplap2tile(descA, A, mb, nb, lm, ln, i, j, m, n, free)
#define magma_ziplap2tile(descA, A, mb, nb, lm, ln, i, j, m, n)
#define magma_zooptile2lap(descA, A, mb, nb, lm, ln)
#define magma_ziptile2lap(descA, A, mb, nb, lm, ln)

Functions

void magma_pzlapack_to_tile (PLASMA_Complex64_t *Af77, int lda, magma_desc_t *A, magma_sequence_t *sequence, magma_request_t *request)
void magma_pztile_to_lapack (magma_desc_t *A, PLASMA_Complex64_t *Af77, int lda, magma_sequence_t *sequence, magma_request_t *request)
void magma_pztile_zero (magma_desc_t *A, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzaxpy (PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzgelqf (magma_desc_t *A, magma_desc_t *T, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzgelqfrh (magma_desc_t *A, magma_desc_t *T, int BS, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzgemm (MAGMA_enum transA, MAGMA_enum transB, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, PLASMA_Complex64_t beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzgeqrf (magma_desc_t *A, magma_desc_t *T, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzgeqrfrh (magma_desc_t *A, magma_desc_t *T, int BS, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzgetmi2 (MAGMA_enum idep, MAGMA_enum odep, MAGMA_enum storev, int m, int n, int mb, int nb, PLASMA_Complex64_t *A, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzgetrf (magma_desc_t *A, magma_desc_t *L, int *IPIV, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzhemm (MAGMA_enum side, MAGMA_enum uplo, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, PLASMA_Complex64_t beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzherk (MAGMA_enum uplo, MAGMA_enum trans, double alpha, magma_desc_t *A, double beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzher2k (MAGMA_enum uplo, MAGMA_enum trans, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, double beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzlacpy (MAGMA_enum uplo, magma_desc_t *A, magma_desc_t *B, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzlag2c (magma_desc_t *A, magma_desc_t *SB, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzlange (MAGMA_enum norm, magma_desc_t *A, double *work, double *result, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzlanhe (MAGMA_enum norm, MAGMA_enum uplo, magma_desc_t *A, double *work, double *result, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzlansy (MAGMA_enum norm, MAGMA_enum uplo, magma_desc_t *A, double *work, double *result, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzlauum (MAGMA_enum uplo, magma_desc_t *A, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzplghe (double bump, magma_desc_t *A, unsigned long long int seed, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzplgsy (PLASMA_Complex64_t bump, magma_desc_t *A, unsigned long long int seed, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzplrnt (magma_desc_t *A, unsigned long long int seed, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzpotrf (MAGMA_enum uplo, magma_desc_t *A, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzshift (int, int, int, PLASMA_Complex64_t *, int *, int, int, magma_sequence_t *, magma_request_t *)
void magma_pzsymm (MAGMA_enum side, MAGMA_enum uplo, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, PLASMA_Complex64_t beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzsyrk (MAGMA_enum uplo, MAGMA_enum trans, PLASMA_Complex64_t alpha, magma_desc_t *A, PLASMA_Complex64_t beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzsyr2k (MAGMA_enum uplo, MAGMA_enum trans, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, PLASMA_Complex64_t beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request)
void magma_pztrmm (MAGMA_enum side, MAGMA_enum uplo, MAGMA_enum transA, MAGMA_enum diag, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, magma_sequence_t *sequence, magma_request_t *request)
void magma_pztrsm (MAGMA_enum side, MAGMA_enum uplo, MAGMA_enum transA, MAGMA_enum diag, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, magma_sequence_t *sequence, magma_request_t *request)
void magma_pztrsmpl (magma_desc_t *A, magma_desc_t *B, magma_desc_t *L, int *IPIV, magma_sequence_t *sequence, magma_request_t *request)
void magma_pztrtri (MAGMA_enum uplo, MAGMA_enum diag, magma_desc_t *A, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzungqr (magma_desc_t *A, magma_desc_t *Q, magma_desc_t *T, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzungqrrh (magma_desc_t *A, magma_desc_t *Q, magma_desc_t *T, int BS, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzunglq (magma_desc_t *A, magma_desc_t *Q, magma_desc_t *T, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzunglqrh (magma_desc_t *A, magma_desc_t *Q, magma_desc_t *T, int BS, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzunmqr (MAGMA_enum side, MAGMA_enum trans, magma_desc_t *A, magma_desc_t *B, magma_desc_t *T, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzunmqrrh (MAGMA_enum side, MAGMA_enum trans, magma_desc_t *A, magma_desc_t *B, magma_desc_t *T, int BS, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzunmlq (MAGMA_enum side, MAGMA_enum trans, magma_desc_t *A, magma_desc_t *B, magma_desc_t *T, magma_sequence_t *sequence, magma_request_t *request)
void magma_pzunmlqrh (MAGMA_enum side, MAGMA_enum trans, magma_desc_t *A, magma_desc_t *B, magma_desc_t *T, int BS, magma_sequence_t *sequence, magma_request_t *request)

Detailed Description

MAGMA auxiliary routines MAGMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver

Version:
2.3.1
Author:
Jakub Kurzak
Mathieu Faverge
Date:
2010-11-15 normal z -> c d s

Definition in file compute_z.h.


Macro Definition Documentation

#define magma_zdesc_alloc (   descA,
  mb,
  nb,
  lm,
  ln,
  i,
  j,
  m,
  n,
  free 
)
Value:
descA = magma_desc_init( \
PlasmaComplexDouble, (mb), (nb), ((mb)*(nb)), \
(m), (n), (i), (j), (m), (n)); \
if ( magma_desc_mat_alloc( &(descA) ) ) { \
magma_error( __func__, "magma_shared_alloc() failed"); \
{free;}; \
}

Macro for matrix conversion / Lapack interface

Definition at line 22 of file compute_z.h.

#define magma_zdesc_alloc2 (   descA,
  mb,
  nb,
  lm,
  ln,
  i,
  j,
  m,
 
)
Value:
descA = magma_desc_init( \
PlasmaComplexDouble, (mb), (nb), ((mb)*(nb)), \
(m), (n), (i), (j), (m), (n)); \
magma_desc_mat_alloc( &(descA) );

Definition at line 32 of file compute_z.h.

#define magma_ziplap2tile (   descA,
  A,
  mb,
  nb,
  lm,
  ln,
  i,
  j,
  m,
 
)
Value:
descA = magma_desc_init( \
PlasmaComplexDouble, (mb), (nb), ((mb)*(nb)), \
(lm), (ln), (i), (j), (m), (n)); \
descA.desc.mat = A; \
MAGMA_zgecfi_Async((lm), (ln), (A), MagmaCM, (mb), (nb), \
MagmaCCRB, (mb), (nb), sequence, &request);

Definition at line 49 of file compute_z.h.

#define magma_ziptile2lap (   descA,
  A,
  mb,
  nb,
  lm,
  ln 
)
Value:
MAGMA_zgecfi_Async((lm), (ln), (A), PlasmaCCRB, (mb), (nb), \
PlasmaCM, (mb), (nb), sequence, &request);

Definition at line 61 of file compute_z.h.

#define magma_zooplap2tile (   descA,
  A,
  mb,
  nb,
  lm,
  ln,
  i,
  j,
  m,
  n,
  free 
)
Value:
descA = magma_desc_init( \
PlasmaComplexDouble, (mb), (nb), ((mb)*(nb)), \
(lm), (ln), (i), (j), (m), (n)); \
if ( magma_desc_mat_alloc( &(descA) ) ) { \
magma_error( __func__, "magma_shared_alloc() failed"); \
{free;}; \
} \
magma_pzlapack_to_tile((A), (lm), &(descA), sequence, &request);

Definition at line 38 of file compute_z.h.

#define magma_zooptile2lap (   descA,
  A,
  mb,
  nb,
  lm,
  ln 
)
Value:
magma_pztile_to_lapack( &(descA), (A), (lm), \
sequence, &request);

Definition at line 57 of file compute_z.h.

#define PRECISION_z

Definition at line 17 of file compute_z.h.


Function Documentation

void magma_pzaxpy ( PLASMA_Complex64_t  alpha,
magma_desc_t A,
magma_desc_t B,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzgelqf ( magma_desc_t A,
magma_desc_t T,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzgelqfrh ( magma_desc_t A,
magma_desc_t T,
int  BS,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzgemm ( MAGMA_enum  transA,
MAGMA_enum  transB,
PLASMA_Complex64_t  alpha,
magma_desc_t A,
magma_desc_t B,
PLASMA_Complex64_t  beta,
magma_desc_t C,
magma_sequence_t sequence,
magma_request_t request 
)

Here is the caller graph for this function:

void magma_pzgeqrf ( magma_desc_t dA,
magma_desc_t dT,
magma_sequence_t sequence,
magma_request_t request 
)

Parallel tile QR factorization - dynamic scheduling

Definition at line 30 of file pzgeqrf.c.

References A, magma_desc_s::desc, DIAG, magma_context_self(), magma_desc_mat_free(), MAGMA_IB, MAGMA_NB, magma_sequence_wait(), MAGMA_SUCCESS, magma_zdesc_alloc2, min, morse_options_finalize(), morse_options_init(), morse_options_ws_alloc(), morse_options_ws_free(), MORSE_zgeqrt(), MORSE_zlacpy(), MORSE_ztsmqr(), MORSE_ztsqrt(), MORSE_zunmqr(), MorseOption_s::nb, magma_sequence_s::status, and T.

{
MorseOption_t options;
PLASMA_desc A = dA->desc;
PLASMA_desc T = dT->desc;
#if !defined(MORSE_NON_EXPLICIT_COPY)
magma_desc_t descD;
magma_desc_t *dD = &descD;
#endif
int k, m, n;
int tempkm, tempkn, tempmm, tempnn;
int ib;
int minMN = min(A.mt, A.nt);
size_t h_work_size, d_work_size;
magma = magma_context_self();
if (sequence->status != MAGMA_SUCCESS)
return;
/* Be sure the global NB is equal to the one used in those matrices */
MAGMA_NB = T.nb;
morse_options_init( &options, magma, sequence, request );
#if !defined(MORSE_NON_EXPLICIT_COPY)
magma_zdesc_alloc2( descD, A.mb, A.nb, minMN*A.mb, A.nb, 0, 0, minMN*A.mb, A.nb );
#endif
ib = MAGMA_IB;
h_work_size = A.mb; /* size of tau */
h_work_size += T.nb * ib; /* workspace required by unmqr and tsmqr */
h_work_size *= sizeof(PLASMA_Complex64_t);
d_work_size = 0;
/* magma_scratchpad_handle h_tau; */
/* magma_scratchpad_handle h_work; */
/* plagma_scratchpad_handle scratch_h_a, scratch_h_T; */
/* plagma_scratchpad_handle scratch_h_D, scratch_d_D; */
/* size_t scratch_h_a_size = sizeof(PLASMA_Complex64_t)*A->nb*A->mb; */
/* size_t scratch_h_T_size = sizeof(PLASMA_Complex64_t)*T->mb*A->mb; */
/* size_t scratch_D_size = sizeof(PLASMA_Complex64_t)*T->mb*A->mb; */
/* magma_alloc_scratchpad(&h_tau, size_h_tau, MAGMA_CPU, MAGMA_WORKER_MEM); */
/* magma_alloc_scratchpad(&h_work, size_h_work, MAGMA_CPU, MAGMA_WORKER_MEM); */
/* plagma_alloc_scratchpad(&scratch_h_work, scratch_work_size, PLAGMA_CUDA, PLAGMA_HOST_MEM ); */
/* plagma_alloc_scratchpad(&scratch_d_D, scratch_D_size, PLAGMA_CUDA, PLAGMA_WORKER_MEM); */
/* plagma_alloc_scratchpad(&scratch_h_D, scratch_D_size, PLAGMA_CUDA, PLAGMA_HOST_MEM ); */
/* plagma_alloc_scratchpad(&scratch_tau, scratch_tau_size, PLAGMA_CPU|PLAGMA_CUDA, PLAGMA_HOST_MEM ); */
/* plagma_alloc_scratchpad(&scratch_h_a, scratch_h_a_size, PLAGMA_CPU|PLAGMA_CUDA, PLAGMA_HOST_MEM ); */
/* plagma_alloc_scratchpad(&scratch_h_T, scratch_h_T_size, PLAGMA_CPU|PLAGMA_CUDA, PLAGMA_HOST_MEM ); */
morse_options_ws_alloc( &options, h_work_size, d_work_size );
for (k = 0; k < minMN; k++) {
tempkm = k == A.mt-1 ? A.m-k*A.mb : A.mb;
tempkn = k == A.nt-1 ? A.n-k*A.nb : A.nb;
&options,
tempkm, tempkn, ib,
A(k, k),
T(k, k));
#if !defined(MORSE_NON_EXPLICIT_COPY)
if ( k < (A.nt-1) ) {
&options,
PlasmaUpperLower, tempkm, tempkn,
A(k, k),
DIAG(k));
}
#endif
for (n = k+1; n < A.nt; n++) {
tempnn = n == A.nt-1 ? A.n-n*A.nb : A.nb;
&options,
PlasmaLeft, PlasmaConjTrans,
tempkm, tempnn, tempkm, ib,
DIAG(k),
T(k, k),
A(k, n));
}
for (m = k+1; m < A.mt; m++) {
tempmm = m == A.mt-1 ? A.m-m*A.mb : A.mb;
&options,
tempmm, tempkn, ib,
A(k, k),
A(m, k),
T(m, k));
for (n = k+1; n < A.nt; n++) {
tempnn = n == A.nt-1 ? A.n-n*A.nb : A.nb;
&options,
PlasmaLeft, PlasmaConjTrans,
A.mb, tempnn, tempmm, tempnn, A.nb, ib,
A(k, n),
A(m, n),
A(m, k),
T(m, k));
}
}
}
morse_options_ws_free( &options );
morse_options_finalize( &options, magma );
#if !defined(MORSE_NON_EXPLICIT_COPY)
magma_sequence_wait(magma, sequence);
#endif
}

Here is the call graph for this function:

Here is the caller graph for this function:

void magma_pzgeqrfrh ( magma_desc_t A,
magma_desc_t T,
int  BS,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzgetmi2 ( MAGMA_enum  idep,
MAGMA_enum  odep,
MAGMA_enum  storev,
int  m,
int  n,
int  mb,
int  nb,
PLASMA_Complex64_t *  A,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzgetrf ( magma_desc_t dA,
magma_desc_t dL,
int *  IPIV,
magma_sequence_t sequence,
magma_request_t request 
)

Parallel tile LU factorization - dynamic scheduling

Definition at line 31 of file pzgetrf.c.

References A, magma_desc_s::desc, DIAG, IPIV, L, magma_context_self(), magma_desc_mat_free(), MAGMA_IB, magma_sequence_wait(), MAGMA_SUCCESS, magma_zdesc_alloc2, min, morse_options_finalize(), morse_options_init(), morse_options_ws_alloc(), morse_options_ws_free(), MORSE_zgessm(), MORSE_zgetrl(), MORSE_zlacpy(), MORSE_zssssm(), MORSE_ztstrf(), MorseOption_s::nb, and magma_sequence_s::status.

{
MorseOption_t options;
PLASMA_desc A = dA->desc;
PLASMA_desc L = dL->desc;
#if !defined(MORSE_NON_EXPLICIT_COPY)
magma_desc_t descD;
magma_desc_t *dD = &descD;
#endif
int k, m, n;
int tempkm, tempkn, tempmm, tempnn;
int ib;
int maxk = min(A.mt, A.nt);
size_t h_work_size;
size_t d_work_size;
magma = magma_context_self();
if (sequence->status != MAGMA_SUCCESS)
return;
morse_options_init( &options, magma, sequence, request );
#if !defined(MORSE_NON_EXPLICIT_COPY)
magma_zdesc_alloc2( descD, A.mb, A.nb, maxk*A.mb, A.nb, 0, 0, maxk*A.mb, A.nb );
#endif
ib = MAGMA_IB;
h_work_size = sizeof(PLASMA_Complex64_t)*( 2*ib + 2*L.nb )*2*A.mb;
d_work_size = sizeof(PLASMA_Complex64_t)*( ib )*2*A.mb;
morse_options_ws_alloc( &options, h_work_size, d_work_size );
for (k = 0; k < maxk; k++) {
tempkm = k == A.mt-1 ? A.m-k*A.mb : A.mb;
tempkn = k == A.nt-1 ? A.n-k*A.nb : A.nb;
&options,
tempkm, tempkn, ib,
A(k, k),
L(k, k),
IPIV(k, k),
k == A.mt-1, A.nb*k);
#if !defined(MORSE_NON_EXPLICIT_COPY)
if ( k < (A.nt-1) ) {
&options,
PlasmaUpperLower, tempkm, tempkn,
A(k, k),
DIAG(k));
}
#endif
for (n = k+1; n < A.nt; n++) {
tempnn = n == A.nt-1 ? A.n-n*A.nb : A.nb;
&options,
tempkm, tempnn, tempkm, ib,
IPIV(k, k),
L(k, k),
DIAG(k),
A(k, n));
}
for (m = k+1; m < A.mt; m++) {
tempmm = m == A.mt-1 ? A.m-m*A.mb : A.mb;
&options,
tempmm, tempkn, ib, L.nb,
A(k, k),
A(m, k),
L(m, k),
IPIV(m, k),
m == A.mt-1, A.nb*k);
for (n = k+1; n < A.nt; n++) {
tempnn = n == A.nt-1 ? A.n-n*A.nb : A.nb;
&options,
A.nb, tempnn, tempmm, tempnn, A.nb, ib,
A(k, n),
A(m, n),
L(m, k),
A(m, k),
IPIV(m, k));
}
}
}
morse_options_ws_free( &options );
morse_options_finalize( &options, magma );
#if !defined(MORSE_NON_EXPLICIT_COPY)
magma_sequence_wait(magma, sequence);
#endif
}

Here is the call graph for this function:

Here is the caller graph for this function:

void magma_pzhemm ( MAGMA_enum  side,
MAGMA_enum  uplo,
PLASMA_Complex64_t  alpha,
magma_desc_t A,
magma_desc_t B,
PLASMA_Complex64_t  beta,
magma_desc_t C,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzher2k ( MAGMA_enum  uplo,
MAGMA_enum  trans,
PLASMA_Complex64_t  alpha,
magma_desc_t A,
magma_desc_t B,
double  beta,
magma_desc_t C,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzherk ( MAGMA_enum  uplo,
MAGMA_enum  trans,
double  alpha,
magma_desc_t A,
double  beta,
magma_desc_t C,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzlacpy ( MAGMA_enum  uplo,
magma_desc_t A,
magma_desc_t B,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzlag2c ( magma_desc_t A,
magma_desc_t SB,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzlange ( MAGMA_enum  norm,
magma_desc_t A,
double *  work,
double *  result,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzlanhe ( MAGMA_enum  norm,
MAGMA_enum  uplo,
magma_desc_t A,
double *  work,
double *  result,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzlansy ( MAGMA_enum  norm,
MAGMA_enum  uplo,
magma_desc_t A,
double *  work,
double *  result,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzlapack_to_tile ( PLASMA_Complex64_t *  Af77,
int  lda,
magma_desc_t dA,
magma_sequence_t sequence,
magma_request_t request 
)

Declarations of parallel functions (dynamic scheduling) - alphabetical order

Conversion from LAPACK F77 matrix layout to tile layout - dynamic scheduling

Definition at line 30 of file pztile.c.

References A, ABDL, AF77, BLKLDD, magma_desc_s::desc, magma_context_self(), MAGMA_SUCCESS, and magma_sequence_s::status.

{
PLASMA_Complex64_t *f77;
PLASMA_Complex64_t *bdl;
PLASMA_desc A = dA->desc;
int X1, Y1;
int X2, Y2;
int n, m, ldt;
magma = magma_context_self();
if (sequence->status != MAGMA_SUCCESS)
return;
for (m = 0; m < A.mt; m++)
{
ldt = BLKLDD(dA, m);
for (n = 0; n < A.nt; n++)
{
X1 = n == 0 ? A.j%A.nb : 0;
Y1 = m == 0 ? A.i%A.mb : 0;
X2 = n == A.nt-1 ? (A.j+A.n-1)%A.nb+1 : A.nb;
Y2 = m == A.mt-1 ? (A.i+A.m-1)%A.mb+1 : A.mb;
f77 = AF77(m, n);
bdl = ABDL(m, n);
CORE_zlacpy(
PlasmaUpperLower, (Y2-Y1), (X2-X1),
&(f77[X1*lda+Y1]), lda,
&(bdl[X1*lda+Y1]), ldt);
}
}
}

Here is the call graph for this function:

Here is the caller graph for this function:

void magma_pzlauum ( MAGMA_enum  uplo,
magma_desc_t A,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzplghe ( double  bump,
magma_desc_t dA,
unsigned long long int  seed,
magma_sequence_t sequence,
magma_request_t request 
)

Parallel tile Cholesky factorization - dynamic scheduling

Definition at line 23 of file pzplghe.c.

References A, magma_desc_s::desc, magma_context_self(), MAGMA_SUCCESS, morse_options_finalize(), morse_options_init(), MORSE_zplghe(), and magma_sequence_s::status.

{
MorseOption_t options;
PLASMA_desc A = dA->desc;
int m, n;
int tempmm, tempnn;
magma = magma_context_self();
if (sequence->status != MAGMA_SUCCESS)
return;
morse_options_init( &options, magma, sequence, request );
for (m = 0; m < A.mt; m++) {
tempmm = m == A.mt-1 ? A.m-m*A.mb : A.mb;
for (n = 0; n < A.nt; n++) {
tempnn = n == A.nt-1 ? A.n-n*A.nb : A.nb;
&options,
bump, tempmm, tempnn, A(m, n),
A.m, m*A.mb, n*A.nb, seed );
}
}
morse_options_finalize( &options, magma );
}

Here is the call graph for this function:

Here is the caller graph for this function:

void magma_pzplgsy ( PLASMA_Complex64_t  bump,
magma_desc_t dA,
unsigned long long int  seed,
magma_sequence_t sequence,
magma_request_t request 
)

Parallel tile Cholesky factorization - dynamic scheduling

Definition at line 23 of file pzplgsy.c.

References A, magma_desc_s::desc, magma_context_self(), MAGMA_SUCCESS, morse_options_finalize(), morse_options_init(), MORSE_zplgsy(), and magma_sequence_s::status.

{
MorseOption_t options;
PLASMA_desc A = dA->desc;
int m, n;
int tempmm, tempnn;
magma = magma_context_self();
if (sequence->status != MAGMA_SUCCESS)
return;
morse_options_init( &options, magma, sequence, request );
for (m = 0; m < A.mt; m++) {
tempmm = m == A.mt-1 ? A.m-m*A.mb : A.mb;
for (n = 0; n < A.nt; n++) {
tempnn = n == A.nt-1 ? A.n-n*A.nb : A.nb;
&options,
bump, tempmm, tempnn, A(m, n),
A.m, m*A.mb, n*A.nb, seed );
}
}
morse_options_finalize( &options, magma );
}

Here is the call graph for this function:

Here is the caller graph for this function:

void magma_pzplrnt ( magma_desc_t dA,
unsigned long long int  seed,
magma_sequence_t sequence,
magma_request_t request 
)

Parallel tile Cholesky factorization - dynamic scheduling

Definition at line 23 of file pzplrnt.c.

References A, magma_desc_s::desc, magma_context_self(), MAGMA_SUCCESS, morse_options_finalize(), morse_options_init(), MORSE_zplrnt(), and magma_sequence_s::status.

{
MorseOption_t options;
PLASMA_desc A = dA->desc;
int m, n;
int tempmm, tempnn;
magma = magma_context_self();
if (sequence->status != MAGMA_SUCCESS)
return;
morse_options_init( &options, magma, sequence, request );
for (m = 0; m < A.mt; m++) {
tempmm = m == A.mt-1 ? A.m-m*A.mb : A.mb;
for (n = 0; n < A.nt; n++) {
tempnn = n == A.nt-1 ? A.n-n*A.nb : A.nb;
&options,
tempmm, tempnn, A(m, n),
A.m, m*A.mb, n*A.nb, seed );
}
}
morse_options_finalize( &options, magma );
}

Here is the call graph for this function:

Here is the caller graph for this function:

void magma_pzpotrf ( MAGMA_enum  uplo,
magma_desc_t A,
magma_sequence_t sequence,
magma_request_t request 
)

Here is the caller graph for this function:

void magma_pzshift ( int  ,
int  ,
int  ,
PLASMA_Complex64_t *  ,
int *  ,
int  ,
int  ,
magma_sequence_t ,
magma_request_t  
)
void magma_pzsymm ( MAGMA_enum  side,
MAGMA_enum  uplo,
PLASMA_Complex64_t  alpha,
magma_desc_t A,
magma_desc_t B,
PLASMA_Complex64_t  beta,
magma_desc_t C,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzsyr2k ( MAGMA_enum  uplo,
MAGMA_enum  trans,
PLASMA_Complex64_t  alpha,
magma_desc_t A,
magma_desc_t B,
PLASMA_Complex64_t  beta,
magma_desc_t C,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzsyrk ( MAGMA_enum  uplo,
MAGMA_enum  trans,
PLASMA_Complex64_t  alpha,
magma_desc_t A,
PLASMA_Complex64_t  beta,
magma_desc_t C,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pztile_to_lapack ( magma_desc_t dA,
PLASMA_Complex64_t *  Af77,
int  lda,
magma_sequence_t sequence,
magma_request_t request 
)

Conversion from LAPACK F77 matrix layout to tile layout - dynamic scheduling

Definition at line 68 of file pztile.c.

References A, ABDL, AF77, BLKLDD, magma_desc_s::desc, magma_context_self(), MAGMA_SUCCESS, and magma_sequence_s::status.

{
PLASMA_Complex64_t *f77;
PLASMA_Complex64_t *bdl;
PLASMA_desc A = dA->desc;
int X1, Y1;
int X2, Y2;
int n, m, ldt;
magma = magma_context_self();
if (sequence->status != MAGMA_SUCCESS)
return;
for (m = 0; m < A.mt; m++)
{
ldt = BLKLDD(dA, m);
for (n = 0; n < A.nt; n++)
{
X1 = n == 0 ? A.j%A.nb : 0;
Y1 = m == 0 ? A.i%A.mb : 0;
X2 = n == A.nt-1 ? (A.j+A.n-1)%A.nb+1 : A.nb;
Y2 = m == A.mt-1 ? (A.i+A.m-1)%A.mb+1 : A.mb;
f77 = AF77(m, n);
bdl = ABDL(m, n);
CORE_zlacpy(
PlasmaUpperLower, (Y2-Y1), (X2-X1),
&(bdl[X1*lda+Y1]), ldt,
&(f77[X1*lda+Y1]), lda);
}
}
}

Here is the call graph for this function:

Here is the caller graph for this function:

void magma_pztile_zero ( magma_desc_t dA,
magma_sequence_t sequence,
magma_request_t request 
)

Zeroes a submatrix in tile layout - dynamic scheduling

Definition at line 106 of file pztile.c.

References A, ABDL, BLKLDD, CORE_ztile_zero(), magma_desc_s::desc, magma_context_self(), MAGMA_SUCCESS, and magma_sequence_s::status.

{
PLASMA_Complex64_t *bdl;
PLASMA_desc A = dA->desc;
int X1, Y1;
int X2, Y2;
int n, m, ldt;
magma = magma_context_self();
if (sequence->status != MAGMA_SUCCESS)
return;
for (m = 0; m < A.mt; m++)
{
ldt = BLKLDD(dA, m);
for (n = 0; n < A.nt; n++)
{
X1 = n == 0 ? A.j%A.nb : 0;
Y1 = m == 0 ? A.i%A.mb : 0;
X2 = n == A.nt-1 ? (A.j+A.n-1)%A.nb+1 : A.nb;
Y2 = m == A.mt-1 ? (A.i+A.m-1)%A.mb+1 : A.mb;
bdl = ABDL(m, n);
CORE_ztile_zero(X1, X2, Y1, Y2, bdl, ldt);
}
}
}

Here is the call graph for this function:

void magma_pztrmm ( MAGMA_enum  side,
MAGMA_enum  uplo,
MAGMA_enum  transA,
MAGMA_enum  diag,
PLASMA_Complex64_t  alpha,
magma_desc_t A,
magma_desc_t B,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pztrsm ( MAGMA_enum  side,
MAGMA_enum  uplo,
MAGMA_enum  transA,
MAGMA_enum  diag,
PLASMA_Complex64_t  alpha,
magma_desc_t A,
magma_desc_t B,
magma_sequence_t sequence,
magma_request_t request 
)

Here is the caller graph for this function:

void magma_pztrsmpl ( magma_desc_t dA,
magma_desc_t dB,
magma_desc_t dL,
int *  IPIV,
magma_sequence_t sequence,
magma_request_t request 
)

Parallel forward substitution for tile LU - dynamic scheduling

Definition at line 28 of file pztrsmpl.c.

References A, B, magma_desc_s::desc, IPIV, L, magma_context_self(), MAGMA_IB, MAGMA_SUCCESS, min, morse_options_finalize(), morse_options_init(), MORSE_zgessm(), MORSE_zssssm(), MorseOption_s::nb, and magma_sequence_s::status.

{
MorseOption_t options;
PLASMA_desc A = dA->desc;
PLASMA_desc B = dB->desc;
int k, m, n;
int tempkm, tempnn, tempkmin, tempmm, tempkn;
int ib;
int maxk = min(A.mt, A.nt);
magma = magma_context_self();
if (sequence->status != MAGMA_SUCCESS)
return;
morse_options_init( &options, magma, sequence, request );
ib = MAGMA_IB;
for (k = 0; k < maxk; k++) {
tempkm = k == A.mt-1 ? A.m-k*A.mb : A.mb;
tempkn = k == A.nt-1 ? A.n-k*A.nb : A.nb;
tempkmin = k == maxk-1 ? min(A.m, A.n)-k*A.mb : A.mb;
for (n = 0; n < B.nt; n++) {
tempnn = n == B.nt-1 ? B.n-n*B.nb : B.nb;
&options,
tempkm, tempnn, tempkmin, ib,
IPIV(k, k),
L(k, k),
A(k, k),
B(k, n));
}
for (m = k+1; m < A.mt; m++) {
tempmm = m == A.mt-1 ? A.m-m*A.mb : A.mb;
for (n = 0; n < B.nt; n++) {
tempnn = n == B.nt-1 ? B.n-n*B.nb : B.nb;
&options,
A.nb, tempnn, tempmm, tempnn, tempkn, ib,
B(k, n),
B(m, n),
L(m, k),
A(m, k),
IPIV(m, k));
}
}
}
morse_options_finalize( &options, magma );
}

Here is the call graph for this function:

Here is the caller graph for this function:

void magma_pztrtri ( MAGMA_enum  uplo,
MAGMA_enum  diag,
magma_desc_t A,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzunglq ( magma_desc_t A,
magma_desc_t Q,
magma_desc_t T,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzunglqrh ( magma_desc_t A,
magma_desc_t Q,
magma_desc_t T,
int  BS,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzungqr ( magma_desc_t A,
magma_desc_t Q,
magma_desc_t T,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzungqrrh ( magma_desc_t A,
magma_desc_t Q,
magma_desc_t T,
int  BS,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzunmlq ( MAGMA_enum  side,
MAGMA_enum  trans,
magma_desc_t A,
magma_desc_t B,
magma_desc_t T,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzunmlqrh ( MAGMA_enum  side,
MAGMA_enum  trans,
magma_desc_t A,
magma_desc_t B,
magma_desc_t T,
int  BS,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzunmqr ( MAGMA_enum  side,
MAGMA_enum  trans,
magma_desc_t A,
magma_desc_t B,
magma_desc_t T,
magma_sequence_t sequence,
magma_request_t request 
)
void magma_pzunmqrrh ( MAGMA_enum  side,
MAGMA_enum  trans,
magma_desc_t A,
magma_desc_t B,
magma_desc_t T,
int  BS,
magma_sequence_t sequence,
magma_request_t request 
)