diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 7672a718551612edfc705c5750121155916b3c2a..d97fe0da810d2317619828601e64bffe2f711947 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -9,8 +9,8 @@ # ### # -# @project MORSE -# MORSE is a software package provided by: +# @project CHAMELEON +# CHAMELEON is a software package provided by: # Inria Bordeaux - Sud-Ouest, # Univ. of Tennessee, # King Abdullah Univesity of Science and Technology @@ -26,14 +26,14 @@ # ### -# Generate the morse headers for all possible precisions -# ------------------------------------------------------ +# Generate the chameleon headers for all possible precisions +# ---------------------------------------------------------- set(CHAMELEON_HDRS_GENERATED "") set(ZHDR - chameleon/morse_z.h - chameleon/morse_zc.h - chameleon/morse_tasks_z.h - chameleon/morse_tasks_zc.h + chameleon/chameleon_z.h + chameleon/chameleon_zc.h + chameleon/chameleon_tasks_z.h + chameleon/chameleon_tasks_zc.h ) precisions_rules_py(CHAMELEON_HDRS_GENERATED "${ZHDR}" @@ -48,14 +48,15 @@ configure_file("chameleon/chameleon_config.h.in" # -------------------------- set(CHAMELEON_HDRS ${CMAKE_CURRENT_BINARY_DIR}/chameleon/chameleon_config.h - ${CMAKE_CURRENT_BINARY_DIR}/chameleon/morse_mangling.h - chameleon/morse_constants.h - chameleon/morse_kernels.h - chameleon/morse_runtime.h - chameleon/morse_simulate.h - chameleon/morse_struct.h - chameleon/morse_tasks.h - chameleon/morse_types.h + ${CMAKE_CURRENT_BINARY_DIR}/chameleon/chameleon_mangling.h + chameleon/chameleon_constants.h + chameleon/chameleon_kernels.h + chameleon/chameleon_simulate.h + chameleon/chameleon_struct.h + chameleon/chameleon_tasks.h + chameleon/chameleon_types.h + chameleon/runtime.h + chameleon/runtime_struct.h ) # Add generated headers @@ -67,12 +68,12 @@ endforeach() # Force generation of headers # --------------------------- add_custom_target(chameleon_include - ALL SOURCES morse.h ${CHAMELEON_HDRS} ) + ALL SOURCES chameleon.h ${CHAMELEON_HDRS} ) set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};chameleon_include" CACHE INTERNAL "List of targets of sources") # Installation # ------------ -install( FILES morse.h +install( FILES chameleon.h DESTINATION include ) install( FILES ${CHAMELEON_HDRS} diff --git a/include/morse.h b/include/chameleon.h similarity index 100% rename from include/morse.h rename to include/chameleon.h diff --git a/include/chameleon/chameleon_constants.h b/include/chameleon/chameleon_constants.h new file mode 100644 index 0000000000000000000000000000000000000000..c498c9c2b4debb4033ce4d76eab19cd2a1c4549a --- /dev/null +++ b/include/chameleon/chameleon_constants.h @@ -0,0 +1,157 @@ +/** + * + * @file chameleon_constants.h + * + * @copyright 2009-2014 The University of Tennessee and The University of + * Tennessee Research Foundation. All rights reserved. + * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + *** + * + * @brief Chameleon global constants + * + * @version 1.0.0 + * @author Cedric Augonnet + * @author Mathieu Faverge + * @author Cedric Castagnede + * @date 2011-06-01 + * + */ +#ifndef _chameleon_constants_h_ +#define _chameleon_constants_h_ + +/** + * + * @brief Chameleon constants - CBLAS & LAPACK + * The naming and numbering is consistent with: + * + * 1) CBLAS from Netlib (http://www.netlib.org/blas/blast-forum/cblas.tgz), + * 2) C Interface to LAPACK from Netlib (http://www.netlib.org/lapack/lapwrapc/). + * + */ +#define ChameleonByte 0 +#define ChameleonInteger 1 +#define ChameleonRealFloat 2 +#define ChameleonRealDouble 3 +#define ChameleonComplexFloat 4 +#define ChameleonComplexDouble 5 + +#define ChameleonCM 101 +#define ChameleonRM 102 +#define ChameleonCCRB 103 +#define ChameleonCRRB 104 +#define ChameleonRCRB 105 +#define ChameleonRRRB 106 + +#define ChameleonNoTrans 111 +#define ChameleonTrans 112 +#define ChameleonConjTrans 113 + +#define ChameleonUpper 121 +#define ChameleonLower 122 +#define ChameleonUpperLower 123 + +#define ChameleonNonUnit 131 +#define ChameleonUnit 132 + +#define ChameleonLeft 141 +#define ChameleonRight 142 + +#define ChameleonOneNorm 171 +#define ChameleonRealOneNorm 172 +#define ChameleonTwoNorm 173 +#define ChameleonFrobeniusNorm 174 +#define ChameleonInfNorm 175 +#define ChameleonRealInfNorm 176 +#define ChameleonMaxNorm 177 +#define ChameleonRealMaxNorm 178 + +#define ChameleonDistUniform 201 +#define ChameleonDistSymmetric 202 +#define ChameleonDistNormal 203 + +#define ChameleonHermGeev 241 +#define ChameleonHermPoev 242 +#define ChameleonNonsymPosv 243 +#define ChameleonSymPosv 244 + +#define ChameleonNoPacking 291 +#define ChameleonPackSubdiag 292 +#define ChameleonPackSupdiag 293 +#define ChameleonPackColumn 294 +#define ChameleonPackRow 295 +#define ChameleonPackLowerBand 296 +#define ChameleonPackUpeprBand 297 +#define ChameleonPackAll 298 + +#define ChameleonNoVec 301 +#define ChameleonVec 302 +#define ChameleonIvec 303 + +#define ChameleonForward 391 +#define ChameleonBackward 392 + +#define ChameleonColumnwise 401 +#define ChameleonRowwise 402 +#define ChameleonTrd 1001 +#define ChameleonBrd 1002 + +#define ChameleonW 501 +#define ChameleonA2 502 + +/** + * CHAMELEON constants - boolean + */ +#define CHAMELEON_FALSE 0 +#define CHAMELEON_TRUE 1 + +#define CHAMELEON_CPU ((1ULL)<<1) +#define CHAMELEON_CUDA ((1ULL)<<3) + +/** + * State machine switches + */ +#define CHAMELEON_WARNINGS 1 +#define CHAMELEON_ERRORS 2 +#define CHAMELEON_AUTOTUNING 3 +#define CHAMELEON_DAG 4 +#define CHAMELEON_PROFILING_MODE 5 +#define CHAMELEON_PARALLEL_MODE 6 +#define CHAMELEON_BOUND 7 +#define CHAMELEON_PROGRESS 8 +#define CHAMELEON_GEMM3M 9 + +/** + * CHAMELEON constants - configuration parameters + */ +#define CHAMELEON_CONCURRENCY 1 +#define CHAMELEON_TILE_SIZE 2 +#define CHAMELEON_INNER_BLOCK_SIZE 3 +#define CHAMELEON_HOUSEHOLDER_MODE 5 +#define CHAMELEON_HOUSEHOLDER_SIZE 6 +#define CHAMELEON_TRANSLATION_MODE 7 + +#define CHAMELEON_FLAT_HOUSEHOLDER 1 +#define CHAMELEON_TREE_HOUSEHOLDER 2 + +#define CHAMELEON_INPLACE 1 +#define CHAMELEON_OUTOFPLACE 2 + +/** + * CHAMELEON constants - success & error codes + */ +#define CHAMELEON_SUCCESS 0 +#define CHAMELEON_ERR_NOT_INITIALIZED -101 +#define CHAMELEON_ERR_REINITIALIZED -102 +#define CHAMELEON_ERR_NOT_SUPPORTED -103 +#define CHAMELEON_ERR_ILLEGAL_VALUE -104 +#define CHAMELEON_ERR_NOT_FOUND -105 +#define CHAMELEON_ERR_OUT_OF_RESOURCES -106 +#define CHAMELEON_ERR_INTERNAL_LIMIT -107 +#define CHAMELEON_ERR_UNALLOCATED -108 +#define CHAMELEON_ERR_FILESYSTEM -109 +#define CHAMELEON_ERR_UNEXPECTED -110 +#define CHAMELEON_ERR_SEQUENCE_FLUSHED -111 + +#endif diff --git a/include/chameleon/morse_fortran.h b/include/chameleon/chameleon_fortran.h similarity index 100% rename from include/chameleon/morse_fortran.h rename to include/chameleon/chameleon_fortran.h diff --git a/include/chameleon/morse_simulate.h b/include/chameleon/chameleon_simulate.h similarity index 88% rename from include/chameleon/morse_simulate.h rename to include/chameleon/chameleon_simulate.h index 66e13b429e909d175052c058f77af8781c55b3f2..5e0631b0483ecbd2d75748e9eb520ab7a8b144f8 100644 --- a/include/chameleon/morse_simulate.h +++ b/include/chameleon/chameleon_simulate.h @@ -1,6 +1,6 @@ /** * - * @file morse_simulate.h + * @file chameleon_simulate.h * * @copyright 2009-2014 The University of Tennessee and The University of * Tennessee Research Foundation. All rights reserved. @@ -16,8 +16,8 @@ * @date 2014-10-02 * */ -#ifndef _MORSE_SIMULATE_H_ -#define _MORSE_SIMULATE_H_ +#ifndef _chameleon_simulate_h_ +#define _chameleon_simulate_h_ #include "chameleon/chameleon_config.h" diff --git a/include/chameleon/morse_struct.h b/include/chameleon/chameleon_struct.h similarity index 65% rename from include/chameleon/morse_struct.h rename to include/chameleon/chameleon_struct.h index 32fcfbb46f53496520810e5925f58f4610c37722..b981bcd6ce77b71e456155e6e7ccf45da7cda063 100644 --- a/include/chameleon/morse_struct.h +++ b/include/chameleon/chameleon_struct.h @@ -1,6 +1,6 @@ /** * - * @file morse_struct.h + * @file chameleon_struct.h * * @copyright 2009-2014 The University of Tennessee and The University of * Tennessee Research Foundation. All rights reserved. @@ -18,28 +18,14 @@ * @date 2011-06-01 * */ -#ifndef _MORSE_STRUCT_H_ -#define _MORSE_STRUCT_H_ +#ifndef _CHAMELEON_STRUCT_H_ +#define _CHAMELEON_STRUCT_H_ #include "chameleon/chameleon_config.h" -#include "chameleon/morse_types.h" -#include "chameleon/morse_kernels.h" +#include "chameleon/chameleon_types.h" BEGIN_C_DECLS -/** - * RUNTIME headers to include types of : - * - QUARK - * - PaRSEC - * - StarPU - */ -typedef enum morse_sched_e { - RUNTIME_SCHED_QUARK, - RUNTIME_SCHED_PARSEC, - RUNTIME_SCHED_STARPU, -} MORSE_sched_t; - - /** * Tile matrix descriptor * @@ -58,22 +44,22 @@ typedef enum morse_sched_e { * +----------+---+ * */ -struct morse_desc_s; -typedef struct morse_desc_s MORSE_desc_t; +struct matrix_desc_s; +typedef struct matrix_desc_s MATRIX_desc_t; -struct morse_desc_s { +struct matrix_desc_s { // function to get matrix tiles address - void *(*get_blkaddr)( const MORSE_desc_t*, int, int ); + void *(*get_blkaddr)( const MATRIX_desc_t*, int, int ); // function to get matrix tiles leading dimension - int (*get_blkldd )( const MORSE_desc_t*, int ); + int (*get_blkldd )( const MATRIX_desc_t*, int ); // function to get matrix tiles MPI rank - int (*get_rankof) ( const MORSE_desc_t*, int, int ); + int (*get_rankof) ( const MATRIX_desc_t*, int, int ); void *mat; // pointer to the beginning of the matrix size_t A21; // pointer to the beginning of the matrix A21 size_t A12; // pointer to the beginning of the matrix A12 size_t A22; // pointer to the beginning of the matrix A22 - MORSE_enum styp; // storage layout of the matrix - MORSE_enum dtyp; // precision of the matrix + CHAMELEON_enum styp; // storage layout of the matrix + CHAMELEON_enum dtyp; // precision of the matrix int mb; // number of rows in a tile int nb; // number of columns in a tile int bsiz; // size in elements including padding @@ -110,10 +96,10 @@ struct morse_desc_s { /** - * MORSE request uniquely identifies each asynchronous function call. + * CHAMELEON request uniquely identifies each asynchronous function call. */ -typedef struct morse_context_s { - MORSE_sched_t scheduler; +typedef struct chameleon_context_s { + RUNTIME_id_t scheduler; int nworkers; int ncudas; int nthreads_per_worker; @@ -125,14 +111,14 @@ typedef struct morse_context_s { int group_size; /* Boolean flags */ - MORSE_bool warnings_enabled; - MORSE_bool autotuning_enabled; - MORSE_bool parallel_enabled; - MORSE_bool profiling_enabled; - MORSE_bool progress_enabled; + CHAMELEON_bool warnings_enabled; + CHAMELEON_bool autotuning_enabled; + CHAMELEON_bool parallel_enabled; + CHAMELEON_bool profiling_enabled; + CHAMELEON_bool progress_enabled; - MORSE_enum householder; // "domino" (flat) or tree-based (reduction) Householder - MORSE_enum translation; // In place or Out of place layout conversion + CHAMELEON_enum householder; // "domino" (flat) or tree-based (reduction) Householder + CHAMELEON_enum translation; // In place or Out of place layout conversion int nb; int ib; @@ -141,45 +127,8 @@ typedef struct morse_context_s { int rhblock; // block size for tree-based (reduction) Householder void *schedopt; // structure for runtimes int mpi_outer_init; // MPI has been initialized outside our functions -} MORSE_context_t; - - -/** - * MORSE request uniquely identifies each asynchronous function call. - */ -typedef struct morse_request_s { - MORSE_enum status; // MORSE_SUCCESS or appropriate error code -} MORSE_request_t; - - -/** - * MORSE sequence uniquely identifies a set of asynchronous function calls - * sharing common exception handling. - */ -typedef struct morse_sequence_s { - MORSE_bool status; /* MORSE_SUCCESS or appropriate error code */ - MORSE_request_t *request; /* failed request */ - void *schedopt; -} MORSE_sequence_t; - - -/** - * MORSE options - */ -typedef struct morse_option_s { - MORSE_sequence_t *sequence; - MORSE_request_t *request; - int profiling; - int parallel; - int priority; - int nb; - size_t ws_wsize; - size_t ws_hsize; - void *ws_worker; /*> Workspace located on the worker */ - void *ws_host; /*> Workspace *always* located on the host */ - void *schedopt; -} MORSE_option_t; +} CHAMELEON_context_t; END_C_DECLS -#endif /* __CHAMELEON_H__ */ +#endif /* _chameleon_struct_h_ */ diff --git a/include/chameleon/chameleon_tasks.h b/include/chameleon/chameleon_tasks.h new file mode 100644 index 0000000000000000000000000000000000000000..8c4828793c6a25dd831ad7a4eb39da0b162a9c60 --- /dev/null +++ b/include/chameleon/chameleon_tasks.h @@ -0,0 +1,98 @@ +/** + * + * @file chameleon_tasks.h + * + * @copyright 2009-2014 The University of Tennessee and The University of + * Tennessee Research Foundation. All rights reserved. + * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + *** + * + * @brief Chameleon elementary tasks main header + * + * @version 1.0.0 + * @author Mathieu Faverge + * @author Cedric Augonnet + * @date 2011-06-01 + * + */ +#ifndef _chameleon_tasks_h_ +#define _chameleon_tasks_h_ + +#include "chameleon/chameleon_config.h" + +BEGIN_C_DECLS + +/** + * @brief Kernel enum + * + * Those enums are Used to apply operations on specific kernels, and or for + * tracing/profiling. + */ +typedef enum chameleon_tasktype_e { + + TASK_GEMM, + TASK_HEMM, + TASK_HER2K, + TASK_HERK, + TASK_SYTRF_NOPIV, + TASK_SYMM, + TASK_SYR2K, + TASK_SYRK, + TASK_TRSM, + TASK_TRMM, + + TASK_GELQT, + TASK_GEQRT, + TASK_GESSM, + TASK_GETRF, + TASK_GETRF_INCPIV, + TASK_GETRF_NOPIV, + TASK_LAUUM, + TASK_ORMLQ, + TASK_ORMQR, + TASK_POTRF, + TASK_SSSSM, + TASK_TRTRI, + TASK_TSLQT, + TASK_TSMLQ, + TASK_TSMQR, + TASK_TSQRT, + TASK_TSTRF, + TASK_TTLQT, + TASK_TTMLQ, + TASK_TTMQR, + TASK_TTQRT, + TASK_UNMLQ, + TASK_UNMQR, + + TASK_GEADD, + TASK_LASCAL, + TASK_LACPY, + TASK_LAG2C, + TASK_LAG2Z, + TASK_LANGE, + TASK_LANHE, + TASK_LANSY, + TASK_LASET, + TASK_LASET2, + TASK_PEMV, + TASK_PLGHE, + TASK_PLGSY, + TASK_PLRNT, + TASK_TILE_ZERO, + + TASK_NBKERNELS +} chameleon_tasktype_t; + +#include "chameleon/chameleon_tasks_z.h" +#include "chameleon/chameleon_tasks_d.h" +#include "chameleon/chameleon_tasks_c.h" +#include "chameleon/chameleon_tasks_s.h" +#include "chameleon/chameleon_tasks_zc.h" +#include "chameleon/chameleon_tasks_ds.h" + +END_C_DECLS + +#endif /* _chameleon_tasks_h_ */ diff --git a/include/chameleon/chameleon_tasks_z.h b/include/chameleon/chameleon_tasks_z.h new file mode 100644 index 0000000000000000000000000000000000000000..f404348b6489b03564a2d377b4057ec4e4e1f30b --- /dev/null +++ b/include/chameleon/chameleon_tasks_z.h @@ -0,0 +1,467 @@ +/** + * + * @file chameleon_tasks_z.h + * + * @copyright 2009-2014 The University of Tennessee and The University of + * Tennessee Research Foundation. All rights reserved. + * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + *** + * + * @brief Chameleon CHAMELEON_Complex64_t elementary tasks header + * + * @version 1.0.0 + * @comment This file has been automatically generated + * from Plasma 2.5.0 for CHAMELEON 1.0.0 + * @author Jakub Kurzak + * @author Hatem Ltaief + * @author Azzam Haidar + * @author Mathieu Faverge + * @author Emmanuel Agullo + * @author Cedric Castagnede + * @date 2010-11-15 + * @precisions normal z -> c d s + * + */ +#ifndef _chameleon_tasks_z_h_ +#define _chameleon_tasks_z_h_ + +/** + * Declarations of QUARK wrappers (called by CHAMELEON) - alphabetical order + */ +void InsertTask_dzasum( const RUNTIME_option_t *options, + MORSE_enum storev, MORSE_enum uplo, int M, int N, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn ); +void InsertTask_zgeadd( const RUNTIME_option_t *options, + MORSE_enum trans, int m, int n, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + MORSE_Complex64_t beta, const MORSE_desc_t *B, int Bm, int Bn, int ldb ); +void InsertTask_zlascal( const RUNTIME_option_t *options, + MORSE_enum uplo, + int m, int n, int nb, + MORSE_Complex64_t alpha, + const MORSE_desc_t *A, int Am, int An, int lda ); +void InsertTask_zbrdalg( const RUNTIME_option_t *options, + MORSE_enum uplo, + int N, int NB, + const MORSE_desc_t *A, + const MORSE_desc_t *C, int Cm, int Cn, + const MORSE_desc_t *S, int Sm, int Sn, + int i, int j, int m, int grsiz, int BAND, + int *PCOL, int *ACOL, int *MCOL ); +void InsertTask_zgelqt( const RUNTIME_option_t *options, + int m, int n, int ib, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_zgemm( const RUNTIME_option_t *options, + MORSE_enum transA, MORSE_enum transB, + int m, int n, int k, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb, + MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc ); +void InsertTask_zgemm2( const RUNTIME_option_t *options, + MORSE_enum transA, MORSE_enum transB, + int m, int n, int k, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb, + MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc ); +void InsertTask_zgemm_f2( const RUNTIME_option_t *options, + MORSE_enum transA, MORSE_enum transB, + int m, int n, int k, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb, + MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc, + const MORSE_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1, + const MORSE_desc_t *fake2, int fake2m, int fake2n, int szefake2, int flag2 ); +void InsertTask_zgemm_p2( const RUNTIME_option_t *options, + MORSE_enum transA, MORSE_enum transB, + int m, int n, int k, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_Complex64_t **B, int ldb, + MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc ); +void InsertTask_zgemm_p2f1( const RUNTIME_option_t *options, + MORSE_enum transA, MORSE_enum transB, + int m, int n, int k, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_Complex64_t **B, int ldb, + MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc, + const MORSE_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1 ); +void InsertTask_zgemm_p3( const RUNTIME_option_t *options, + MORSE_enum transA, MORSE_enum transB, + int m, int n, int k, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb, + MORSE_Complex64_t beta, MORSE_Complex64_t **C, int ldc ); +void InsertTask_zgeqrt( const RUNTIME_option_t *options, + int m, int n, int ib, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_zgessm( const RUNTIME_option_t *options, + int m, int n, int k, int ib, int nb, + int *IPIV, + const MORSE_desc_t *L, int Lm, int Ln, int ldl, + const MORSE_desc_t *D, int Dm, int Dn, int ldd, + const MORSE_desc_t *A, int Am, int An, int lda ); +void InsertTask_zgessq( const RUNTIME_option_t *options, + int m, int n, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn ); +void InsertTask_zgetrf( const RUNTIME_option_t *options, + int m, int n, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, + int *IPIV, + + MORSE_bool check_info, int iinfo ); +void InsertTask_zgetrf_incpiv( const RUNTIME_option_t *options, + int m, int n, int ib, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *L, int Lm, int Ln, int ldl, + int *IPIV, + MORSE_bool check_info, int iinfo ); +void InsertTask_zgetrf_nopiv( const RUNTIME_option_t *options, + int m, int n, int ib, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, int iinfo ); +void InsertTask_zgetrf_reclap( const RUNTIME_option_t *options, + int m, int n, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, + int *IPIV, + + MORSE_bool check_info, int iinfo, + int nbthread ); +void InsertTask_zgetrf_rectil( const RUNTIME_option_t *options, + const MORSE_desc_t A, const MORSE_desc_t *Amn, int Amnm, int Amnn, int size, + int *IPIV, + + MORSE_bool check_info, int iinfo, + int nbthread ); +void InsertTask_zgetrip( const RUNTIME_option_t *options, + int m, int n, const MORSE_desc_t *A, int Am, int An, int szeA ); +void InsertTask_zgetrip_f1( const RUNTIME_option_t *options, + int m, int n, const MORSE_desc_t *A, int Am, int An, int szeA, + const MORSE_desc_t *fake, int fakem, int faken, int szeF, int paramF ); +void InsertTask_zgetrip_f2( const RUNTIME_option_t *options, + int m, int n, const MORSE_desc_t *A, int Am, int An, int szeA, + const MORSE_desc_t *fake1, int fake1m, int fake1n, int szeF1, int paramF1, + const MORSE_desc_t *fake2, int fake2m, int fake2n, int szeF2, int paramF2 ); +void InsertTask_zhe2ge( const RUNTIME_option_t *options, + MORSE_enum uplo, + int m, int n, int mb, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb ); +void InsertTask_zhemm( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum uplo, + int m, int n, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb, + MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc ); +void InsertTask_zhegst( const RUNTIME_option_t *options, + int itype, MORSE_enum uplo, int N, + const MORSE_desc_t *A, int Am, int An, int LDA, + const MORSE_desc_t *B, int Bm, int Bn, int LDB, + int iinfo ); +void InsertTask_zherk( const RUNTIME_option_t *options, + MORSE_enum uplo, MORSE_enum trans, + int n, int k, int nb, + double alpha, const MORSE_desc_t *A, int Am, int An, int lda, + double beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc ); +void InsertTask_zher2k( const RUNTIME_option_t *options, + MORSE_enum uplo, MORSE_enum trans, + int n, int k, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int LDB, + double beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc ); +void InsertTask_zherfb( const RUNTIME_option_t *options, + MORSE_enum uplo, + int n, int k, int ib, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *T, int Tm, int Tn, int ldt, + const MORSE_desc_t *C, int Cm, int Cn, int ldc ); +void InsertTask_zlacpy( const RUNTIME_option_t *options, + MORSE_enum uplo, int m, int n, int mb, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb ); +void InsertTask_zlacpyx( const RUNTIME_option_t *options, + MORSE_enum uplo, int m, int n, int mb, + int displA, const MORSE_desc_t *A, int Am, int An, int lda, + int displB, const MORSE_desc_t *B, int Bm, int Bn, int ldb ); +void InsertTask_zlange( const RUNTIME_option_t *options, + MORSE_enum norm, int M, int N, int NB, + const MORSE_desc_t *A, int Am, int An, int LDA, + const MORSE_desc_t *B, int Bm, int Bn ); +void InsertTask_zlange_max( const RUNTIME_option_t *options, + const MORSE_desc_t *A, int Am, int An, + const MORSE_desc_t *B, int Bm, int Bn ); +void InsertTask_zhessq( const RUNTIME_option_t *options, + MORSE_enum uplo, int n, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn ); +void InsertTask_zlanhe( const RUNTIME_option_t *options, + MORSE_enum norm, MORSE_enum uplo, int N, int NB, + const MORSE_desc_t *A, int Am, int An, int LDA, + const MORSE_desc_t *B, int Bm, int Bn ); +void InsertTask_zlansy( const RUNTIME_option_t *options, + MORSE_enum norm, MORSE_enum uplo, int N, int NB, + const MORSE_desc_t *A, int Am, int An, int LDA, + const MORSE_desc_t *B, int Bm, int Bn ); +void InsertTask_zlantr( const RUNTIME_option_t *options, + MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, + int M, int N, int NB, + const MORSE_desc_t *A, int Am, int An, int LDA, + const MORSE_desc_t *B, int Bm, int Bn ); +void InsertTask_zlaset( const RUNTIME_option_t *options, + MORSE_enum uplo, int n1, int n2, MORSE_Complex64_t alpha, + MORSE_Complex64_t beta, const MORSE_desc_t *tileA, int tileAm, int tileAn, int ldtilea ); +void InsertTask_zlaset2( const RUNTIME_option_t *options, + MORSE_enum uplo, int n1, int n2, MORSE_Complex64_t alpha, + const MORSE_desc_t *tileA, int tileAm, int tileAn, int ldtilea ); +void InsertTask_zlaswp( const RUNTIME_option_t *options, + int n, const MORSE_desc_t *A, int Am, int An, int lda, + int i1, int i2, int *ipiv, int inc ); +void InsertTask_zlaswp_f2( const RUNTIME_option_t *options, + int n, const MORSE_desc_t *A, int Am, int An, int lda, + int i1, int i2, int *ipiv, int inc, + const MORSE_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1, + const MORSE_desc_t *fake2, int fake2m, int fake2n, int szefake2, int flag2 ); +void InsertTask_zlaswp_ontile( const RUNTIME_option_t *options, + const MORSE_desc_t descA, const MORSE_desc_t *A, int Am, int An, + int i1, int i2, int *ipiv, int inc, MORSE_Complex64_t *fakepanel ); +void InsertTask_zlaswp_ontile_f2( const RUNTIME_option_t *options, + const MORSE_desc_t descA, const MORSE_desc_t *A, int Am, int An, + int i1, int i2, int *ipiv, int inc, + const MORSE_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1, + const MORSE_desc_t *fake2, int fake2m, int fake2n, int szefake2, int flag2 ); +void InsertTask_zlaswpc_ontile( const RUNTIME_option_t *options, + const MORSE_desc_t descA, const MORSE_desc_t *A, int Am, int An, + int i1, int i2, int *ipiv, int inc, MORSE_Complex64_t *fakepanel ); +void InsertTask_zlatro( const RUNTIME_option_t *options, + MORSE_enum uplo, MORSE_enum trans, int m, int n, int mb, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb ); +void InsertTask_zlauum( const RUNTIME_option_t *options, + MORSE_enum uplo, int n, int nb, + const MORSE_desc_t *A, int Am, int An, int lda ); +void InsertTask_zplghe( const RUNTIME_option_t *options, + double bump, int m, int n, const MORSE_desc_t *A, int Am, int An, int lda, + int bigM, int m0, int n0, unsigned long long int seed ); +void InsertTask_zplgsy( const RUNTIME_option_t *options, + MORSE_Complex64_t bump, int m, int n, const MORSE_desc_t *A, int Am, int An, int lda, + int bigM, int m0, int n0, unsigned long long int seed ); +void InsertTask_zplrnt( const RUNTIME_option_t *options, + int m, int n, const MORSE_desc_t *A, int Am, int An, int lda, + int bigM, int m0, int n0, unsigned long long int seed ); +void InsertTask_zpotrf( const RUNTIME_option_t *options, + MORSE_enum uplo, int n, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, + + int iinfo ); +void InsertTask_zshift( const RUNTIME_option_t *options, + int s, int m, int n, int L, + MORSE_Complex64_t *A ); +void InsertTask_zshiftw( const RUNTIME_option_t *options, + int s, int cl, int m, int n, int L, + const MORSE_desc_t *A, int Am, int An, MORSE_Complex64_t *W ); +void InsertTask_zssssm( const RUNTIME_option_t *options, + int m1, int n1, int m2, int n2, int k, int ib, int nb, + const MORSE_desc_t *A1, int A1m, int A1n, int lda1, + const MORSE_desc_t *A2, int A2m, int A2n, int lda2, + const MORSE_desc_t *L1, int L1m, int L1n, int ldl1, + const MORSE_desc_t *L2, int L2m, int L2n, int ldl2, + const int *IPIV ); +void InsertTask_zsymm( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum uplo, + int m, int n, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb, + MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc ); +void InsertTask_zsyrk( const RUNTIME_option_t *options, + MORSE_enum uplo, MORSE_enum trans, + int n, int k, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc ); +void InsertTask_zsyr2k( const RUNTIME_option_t *options, + MORSE_enum uplo, MORSE_enum trans, + int n, int k, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int LDB, + MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc ); +void InsertTask_zsyssq( const RUNTIME_option_t *options, + MORSE_enum uplo, int n, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn ); +void InsertTask_zsytrf_nopiv( const RUNTIME_option_t *options, + MORSE_enum uplo, int n, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, + int iinfo ); +void InsertTask_zswpab( const RUNTIME_option_t *options, + int i, int n1, int n2, + const MORSE_desc_t *A, int Am, int An, int szeA ); +void InsertTask_zswptr_ontile( const RUNTIME_option_t *options, + const MORSE_desc_t descA, const MORSE_desc_t *Aij, int Aijm, int Aijn, + int i1, int i2, int *ipiv, int inc, + const MORSE_desc_t *Akk, int Akkm, int Akkn, int ldak ); +void InsertTask_ztplqt( const RUNTIME_option_t *options, + int m, int n, int l, int ib, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_ztpmlqt( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum trans, + int M, int N, int K, int L, int ib, int nb, + const MORSE_desc_t *V, int Vm, int Vn, int ldv, + const MORSE_desc_t *T, int Tm, int Tn, int ldt, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb ); +void InsertTask_ztpmqrt( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum trans, + int m, int n, int k, int l, int ib, int nb, + const MORSE_desc_t *V, int Vm, int Vn, int ldv, + const MORSE_desc_t *T, int Tm, int Tn, int ldt, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb ); +void InsertTask_ztpqrt( const RUNTIME_option_t *options, + int m, int n, int l, int ib, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_ztrdalg( const RUNTIME_option_t *options, + MORSE_enum uplo, + int N, int NB, + const MORSE_desc_t *A, + const MORSE_desc_t *C, int Cm, int Cn, + const MORSE_desc_t *S, int Sm, int Sn, + int i, int j, int m, int grsiz, int BAND, + int *PCOL, int *ACOL, int *MCOL ); +void InsertTask_ztradd( const RUNTIME_option_t *options, + MORSE_enum uplo, MORSE_enum trans, int m, int n, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + MORSE_Complex64_t beta, const MORSE_desc_t *B, int Bm, int Bn, int ldb ); +void InsertTask_ztrasm( const RUNTIME_option_t *options, + MORSE_enum storev, MORSE_enum uplo, MORSE_enum diag, int M, int N, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn ); +void InsertTask_ztrmm( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, + int m, int n, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb ); +void InsertTask_ztrmm_p2( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, + int m, int n, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + MORSE_Complex64_t **B, int ldb ); +void InsertTask_ztrsm( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, + int m, int n, int nb, + MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *B, int Bm, int Bn, int ldb ); +void InsertTask_ztrssq( const RUNTIME_option_t *options, + MORSE_enum uplo, MORSE_enum diag, + int m, int n, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn ); +void InsertTask_ztrtri( const RUNTIME_option_t *options, + MORSE_enum uplo, MORSE_enum diag, int n, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, + + int iinfo ); +void InsertTask_ztslqt( const RUNTIME_option_t *options, + int m, int n, int ib, int nb, + const MORSE_desc_t *A1, int A1m, int A1n, int lda1, + const MORSE_desc_t *A2, int A2m, int A2n, int lda2, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_ztsmlq( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum trans, + int m1, int n1, int m2, int n2, int k, int ib, int nb, + const MORSE_desc_t *A1, int A1m, int A1n, int lda1, + const MORSE_desc_t *A2, int A2m, int A2n, int lda2, + const MORSE_desc_t *V, int Vm, int Vn, int ldv, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_ztsmlq_hetra1( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum trans, + int m1, int n1, int m2, int n2, int k, int ib, int nb, + const MORSE_desc_t *A1, int A1m, int A1n, int lda1, + const MORSE_desc_t *A2, int A2m, int A2n, int lda2, + const MORSE_desc_t *V, int Vm, int Vn, int ldv, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_ztsmqr( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum trans, + int m1, int n1, int m2, int n2, int k, int ib, int nb, + const MORSE_desc_t *A1, int A1m, int A1n, int lda1, + const MORSE_desc_t *A2, int A2m, int A2n, int lda2, + const MORSE_desc_t *V, int Vm, int Vn, int ldv, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_ztsmqr_hetra1( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum trans, + int m1, int n1, int m2, int n2, int k, int ib, int nb, + const MORSE_desc_t *A1, int A1m, int A1n, int lda1, + const MORSE_desc_t *A2, int A2m, int A2n, int lda2, + const MORSE_desc_t *V, int Vm, int Vn, int ldv, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_ztsqrt( const RUNTIME_option_t *options, + int m, int n, int ib, int nb, + const MORSE_desc_t *A1, int A1m, int A1n, int lda1, + const MORSE_desc_t *A2, int A2m, int A2n, int lda2, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_ztstrf( const RUNTIME_option_t *options, + int m, int n, int ib, int nb, + const MORSE_desc_t *U, int Um, int Un, int ldu, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *L, int Lm, int Ln, int ldl, + int *IPIV, + + MORSE_bool check_info, int iinfo ); +void InsertTask_zttmqr( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum trans, + int m1, int n1, int m2, int n2, int k, int ib, int nb, + const MORSE_desc_t *A1, int A1m, int A1n, int lda1, + const MORSE_desc_t *A2, int A2m, int A2n, int lda2, + const MORSE_desc_t *V, int Vm, int Vn, int ldv, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_zttqrt( const RUNTIME_option_t *options, + int m, int n, int ib, int nb, + const MORSE_desc_t *A1, int A1m, int A1n, int lda1, + const MORSE_desc_t *A2, int A2m, int A2n, int lda2, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_zttmlq( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum trans, + int m1, int n1, int m2, int n2, int k, int ib, int nb, + const MORSE_desc_t *A1, int A1m, int A1n, int lda1, + const MORSE_desc_t *A2, int A2m, int A2n, int lda2, + const MORSE_desc_t *V, int Vm, int Vn, int ldv, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_zttlqt( const RUNTIME_option_t *options, + int m, int n, int ib, int nb, + const MORSE_desc_t *A1, int A1m, int A1n, int lda1, + const MORSE_desc_t *A2, int A2m, int A2n, int lda2, + const MORSE_desc_t *T, int Tm, int Tn, int ldt ); +void InsertTask_zpamm( const RUNTIME_option_t *options, + int op, MORSE_enum side, MORSE_enum storev, + int m, int n, int k, int l, + const MORSE_desc_t *A1, int A1m, int A1n, int lda1, + const MORSE_desc_t *A2, int A2m, int A2n, int lda2, + const MORSE_desc_t *V, int Vm, int Vn, int ldv, + const MORSE_desc_t *W, int Wm, int Wn, int ldw ); +void InsertTask_zplssq( const RUNTIME_option_t *options, + const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn, + const MORSE_desc_t *SCLSSQ, int SCLSSQm, int SCLSSQn ); +void InsertTask_zplssq2( const RUNTIME_option_t *options, + const MORSE_desc_t *RESULT, int RESULTm, int RESULTn ); +void InsertTask_zunmlq( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum trans, + int m, int n, int ib, int nb, int k, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *T, int Tm, int Tn, int ldt, + const MORSE_desc_t *C, int Cm, int Cn, int ldc ); +void InsertTask_zunmqr( const RUNTIME_option_t *options, + MORSE_enum side, MORSE_enum trans, + int m, int n, int k, int ib, int nb, + const MORSE_desc_t *A, int Am, int An, int lda, + const MORSE_desc_t *T, int Tm, int Tn, int ldt, + const MORSE_desc_t *C, int Cm, int Cn, int ldc ); +void InsertTask_zbuild( const RUNTIME_option_t *options, + const MORSE_desc_t *A, int Am, int An, int lda, + void *user_data, void* user_build_callback ); + +#endif diff --git a/include/chameleon/chameleon_tasks_zc.h b/include/chameleon/chameleon_tasks_zc.h new file mode 100644 index 0000000000000000000000000000000000000000..3864cddaffd353b5e0bb8639a14a08ecd757e9e4 --- /dev/null +++ b/include/chameleon/chameleon_tasks_zc.h @@ -0,0 +1,41 @@ +/** + * + * @file chameleon_tasks_zc.h + * + * @copyright 2009-2014 The University of Tennessee and The University of + * Tennessee Research Foundation. All rights reserved. + * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + *** + * + * @brief Chameleon complex mixed precision elementary tasks header + * + * @version 1.0.0 + * @comment This file has been automatically generated + * from Plasma 2.5.0 for CHAMELEON 1.0.0 + * @author Jakub Kurzak + * @author Hatem Ltaief + * @author Mathieu Faverge + * @author Emmanuel Agullo + * @author Cedric Castagnede + * @date 2010-11-15 + * @precisions mixed zc -> ds + * + */ +#ifndef _chameleon_tasks_zc_h_ +#define _chameleon_tasks_zc_h_ + +/** + * Declarations of QUARK wrappers (called by CHAMELEON) - alphabetical order + */ +void InsertTask_clag2z( const RUNTIME_option_t *options, + int m, int n, int nb, + MORSE_desc_t *A, int Am, int An, int lda, + MORSE_desc_t *B, int Bm, int Bn, int ldb ); +void InsertTask_zlag2c( const RUNTIME_option_t *options, + int m, int n, int nb, + MORSE_desc_t *A, int Am, int An, int lda, + MORSE_desc_t *B, int Bm, int Bn, int ldb ); + +#endif diff --git a/include/chameleon/morse_types.h b/include/chameleon/chameleon_types.h similarity index 70% rename from include/chameleon/morse_types.h rename to include/chameleon/chameleon_types.h index cc490bb96384c8713ae0ed8e538574783f9c431d..e6fbbbb46badcb93cb83e204c55066b09f4c2824 100644 --- a/include/chameleon/morse_types.h +++ b/include/chameleon/chameleon_types.h @@ -1,6 +1,6 @@ /** * - * @file morse_types.h + * @file chameleon_types.h * * @copyright 2009-2014 The University of Tennessee and The University of * Tennessee Research Foundation. All rights reserved. @@ -18,8 +18,8 @@ * @date 2011-06-01 * */ -#ifndef _MORSE_TYPES_H_ -#define _MORSE_TYPES_H_ +#ifndef _chameleon_types_h_ +#define _chameleon_types_h_ #include "chameleon/chameleon_config.h" @@ -38,18 +38,18 @@ /** - * MORSE types + * CHAMELEON types */ -typedef int MORSE_enum; -typedef int MORSE_bool; -typedef long MORSE_index; -typedef long MORSE_size; +typedef int CHAMELEON_enum; +typedef int CHAMELEON_bool; +typedef long CHAMELEON_index; +typedef long CHAMELEON_size; /** - * MORSE Complex numbers + * CHAMELEON Complex numbers */ -#define MORSE_HAS_COMPLEX_H 1 +#define CHAMELEON_HAS_COMPLEX_H 1 #if defined(_WIN32) # include <float.h> @@ -61,8 +61,8 @@ typedef long MORSE_size; #undef _Complex #undef complex # elif defined(_MSC_VER) && !defined(__INTEL_COMPILER) - #undef MORSE_COMPLEX_CPP - #define MORSE_COMPLEX_CPP + #undef CHAMELEON_COMPLEX_CPP + #define CHAMELEON_COMPLEX_CPP # else #error "Supported compilers on WIN32 are MSVC and Intel Compiler." # endif /* __INTEL_COMPILER */ @@ -73,43 +73,43 @@ typedef long MORSE_size; /* Sun doesn't ship the complex.h header. Sun Studio doesn't have it and older GCC compilers don't have it either. */ #if defined(__SUNPRO_C) || defined(__SUNPRO_CC) || defined(sun) || defined(__sun) -#undef MORSE_HAS_COMPLEX_H +#undef CHAMELEON_HAS_COMPLEX_H #endif /* __SUNPRO_C */ #ifndef __cplusplus - #undef MORSE_COMPLEX_CPP + #undef CHAMELEON_COMPLEX_CPP #endif -#if defined(MORSE_COMPLEX_CPP) +#if defined(CHAMELEON_COMPLEX_CPP) #ifndef LAPACK_COMPLEX_CPP # define LAPACK_COMPLEX_CPP - # warning "MORSE_COMPLEX_CPP was defined, but not LAPACK_COMPLEX_CPP. Maybe you want to set both." + # warning "CHAMELEON_COMPLEX_CPP was defined, but not LAPACK_COMPLEX_CPP. Maybe you want to set both." #endif #include <complex> // needed for std::complex declaration - #define MORSE_Complex32_t std::complex<float> - #define MORSE_Complex64_t std::complex<double> -#else /* MORSE_COMPLEX_CPP */ + #define CHAMELEON_Complex32_t std::complex<float> + #define CHAMELEON_Complex64_t std::complex<double> +#else /* CHAMELEON_COMPLEX_CPP */ /* not using cplusplus complex type: */ #if defined(__STDC_NO_COMPLEX__) # error "Compiler support for complex number is required." #endif - #define MORSE_Complex32_t float _Complex - #define MORSE_Complex64_t double _Complex + #define CHAMELEON_Complex32_t float _Complex + #define CHAMELEON_Complex64_t double _Complex - #if MORSE_HAS_COMPLEX_H + #if CHAMELEON_HAS_COMPLEX_H # include <complex.h> #endif -#endif /* MORSE_COMPLEX_CPP */ +#endif /* CHAMELEON_COMPLEX_CPP */ /** - * MORSE Deprecated attribute + * CHAMELEON Deprecated attribute */ #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) -#define MORSE_DEPRECATED __attribute__((__deprecated__)) +#define CHAMELEON_DEPRECATED __attribute__((__deprecated__)) #else -#define MORSE_DEPRECATED +#define CHAMELEON_DEPRECATED #endif /* __GNUC__ */ BEGIN_C_DECLS diff --git a/include/chameleon/chameleon_z.h b/include/chameleon/chameleon_z.h new file mode 100644 index 0000000000000000000000000000000000000000..fb84df2562fcb9b2178e46d248e54ee5ee5fae6b --- /dev/null +++ b/include/chameleon/chameleon_z.h @@ -0,0 +1,336 @@ +/** + * + * @file chameleon_z.h + * + * @copyright 2009-2014 The University of Tennessee and The University of + * Tennessee Research Foundation. All rights reserved. + * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + *** + * + * @brief Chameleon CHAMELEON_complex64_t wrappers + * + * @version 1.0.0 + * @comment This file has been automatically generated + * from Plasma 2.5.0 for CHAMELEON 1.0.0 + * @author Jakub Kurzak + * @author Hatem Ltaief + * @author Azzam Haidar + * @author Mathieu Faverge + * @author Emmanuel Agullo + * @author Cedric Castagnede + * @date 2010-11-15 + * @precisions normal z -> c d s + * + */ +#ifndef _chameleon_z_h_ +#define _chameleon_z_h_ + +BEGIN_C_DECLS + +/** + * Declarations of math functions (LAPACK layout) - alphabetical order + */ +int CHAMELEON_zgeadd(CHAMELEON_enum trans, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *B, int LDB); +//int CHAMELEON_zgebrd(int M, int N, CHAMELEON_Complex64_t *A, int LDA, double *D, double *E, CHAMELEON_desc_t *descT); +//int CHAMELEON_zgecon(CHAMELEON_enum norm, int N, CHAMELEON_Complex64_t *A, int LDA, double anorm, double *rcond); +//int CHAMELEON_zpocon(CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, double anorm, double *rcond); +int CHAMELEON_zgelqf(int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT); +int CHAMELEON_zgelqs(int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zgels(CHAMELEON_enum trans, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zgemm(CHAMELEON_enum transA, CHAMELEON_enum transB, int M, int N, int K, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC); +int CHAMELEON_zgeqrf(int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT); +int CHAMELEON_zgeqrs(int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB); +//int CHAMELEON_zgesv(int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, int *IPIV, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zgesv_incpiv(int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descL, int *IPIV, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zgesv_nopiv(int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zgesvd(CHAMELEON_enum jobu, CHAMELEON_enum jobvt, int M, int N, CHAMELEON_Complex64_t *A, int LDA, double *S, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *U, int LDU, CHAMELEON_Complex64_t *VT, int LDVT); +//int CHAMELEON_zgetrf(int M, int N, CHAMELEON_Complex64_t *A, int LDA, int *IPIV); +int CHAMELEON_zgetrf_incpiv(int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descL, int *IPIV); +int CHAMELEON_zgetrf_nopiv(int M, int N, CHAMELEON_Complex64_t *A, int LDA); +//int CHAMELEON_zgetri(int N, CHAMELEON_Complex64_t *A, int LDA, int *IPIV); +//int CHAMELEON_zgetrs(CHAMELEON_enum trans, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, int *IPIV, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zgetrs_incpiv(CHAMELEON_enum trans, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descL, int *IPIV, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zgetrs_nopiv(CHAMELEON_enum trans, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zhemm(CHAMELEON_enum side, CHAMELEON_enum uplo, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC); +int CHAMELEON_zherk(CHAMELEON_enum uplo, CHAMELEON_enum trans, int N, int K, double alpha, CHAMELEON_Complex64_t *A, int LDA, double beta, CHAMELEON_Complex64_t *C, int LDC); +int CHAMELEON_zher2k(CHAMELEON_enum uplo, CHAMELEON_enum trans, int N, int K, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, double beta, CHAMELEON_Complex64_t *C, int LDC); +//int CHAMELEON_zheev(CHAMELEON_enum jobz, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, double *W, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *Q, int LDQ); +int CHAMELEON_zheevd(CHAMELEON_enum jobz, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, double *W, CHAMELEON_desc_t *descT); +//int CHAMELEON_zhegv(CHAMELEON_enum itype, CHAMELEON_enum jobz, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, double *W, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *Q, int LDQ); +//int CHAMELEON_zhegvd(CHAMELEON_enum itype, CHAMELEON_enum jobz, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, double *W, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *Q, int LDQ); +//int CHAMELEON_zhegst(CHAMELEON_enum itype, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zhetrd(CHAMELEON_enum jobz, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, double *D, double *E, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *Q, int LDQ); +int CHAMELEON_zlacpy(CHAMELEON_enum uplo, int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB); +double CHAMELEON_zlange(CHAMELEON_enum norm, int M, int N, CHAMELEON_Complex64_t *A, int LDA); +double CHAMELEON_zlanhe(CHAMELEON_enum norm, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA); +double CHAMELEON_zlansy(CHAMELEON_enum norm, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA); +double CHAMELEON_zlantr(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_enum diag, int M, int N, CHAMELEON_Complex64_t *A, int LDA); +int CHAMELEON_zlascal(CHAMELEON_enum uplo, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA); +int CHAMELEON_zlaset(CHAMELEON_enum uplo, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *A, int LDA); +//int CHAMELEON_zlaswp(int N, CHAMELEON_Complex64_t *A, int LDA, int K1, int K2, int *IPIV, int INCX); +//int CHAMELEON_zlaswpc(int N, CHAMELEON_Complex64_t *A, int LDA, int K1, int K2, int *IPIV, int INCX); +int CHAMELEON_zlauum(CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA); +int CHAMELEON_zplghe( double bump, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, unsigned long long int seed ); +int CHAMELEON_zplgsy( CHAMELEON_Complex64_t bump, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, unsigned long long int seed ); +int CHAMELEON_zplrnt( int M, int N, CHAMELEON_Complex64_t *A, int LDA, unsigned long long int seed ); +int CHAMELEON_zposv(CHAMELEON_enum uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zpotrf(CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA); +int CHAMELEON_zsytrf(CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA); +int CHAMELEON_zpotri(CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA); +int CHAMELEON_zpotrimm(CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t *C, int LDC); +int CHAMELEON_zpotrs(CHAMELEON_enum uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zsymm(CHAMELEON_enum side, CHAMELEON_enum uplo, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC); +int CHAMELEON_zsyrk(CHAMELEON_enum uplo, CHAMELEON_enum trans, int N, int K, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC); +int CHAMELEON_zsyr2k(CHAMELEON_enum uplo, CHAMELEON_enum trans, int N, int K, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC); +int CHAMELEON_zsysv(CHAMELEON_enum uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zsytrs(CHAMELEON_enum uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_ztpgqrt( int M, int N, int K, int L, CHAMELEON_Complex64_t *V1, int LDV1, CHAMELEON_desc_t *descT1, CHAMELEON_Complex64_t *V2, int LDV2, CHAMELEON_desc_t *descT2, CHAMELEON_Complex64_t *Q1, int LDQ1, CHAMELEON_Complex64_t *Q2, int LDQ2 ); +int CHAMELEON_ztpqrt( int M, int N, int L, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_desc_t *descT ); +int CHAMELEON_ztradd(CHAMELEON_enum uplo, CHAMELEON_enum trans, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_ztrmm(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, int N, int NRHS, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_ztrsm(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, int N, int NRHS, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_ztrsmpl(int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descL, int *IPIV, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_ztrsmrv(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, int N, int NRHS, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_ztrtri(CHAMELEON_enum uplo, CHAMELEON_enum diag, int N, CHAMELEON_Complex64_t *A, int LDA); +int CHAMELEON_zunglq(int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zungqr(int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zunmlq(CHAMELEON_enum side, CHAMELEON_enum trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zunmqr(CHAMELEON_enum side, CHAMELEON_enum trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB); + +//int CHAMELEON_zgecfi(int m, int n, CHAMELEON_Complex64_t *A, CHAMELEON_enum fin, int imb, int inb, CHAMELEON_enum fout, int omb, int onb); +//int CHAMELEON_zgetmi(int m, int n, CHAMELEON_Complex64_t *A, CHAMELEON_enum fin, int mb, int nb); + +/** + * Declarations of math functions (tile layout) - alphabetical order + */ +int CHAMELEON_zgeadd_Tile(CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *B); +//int CHAMELEON_zgebrd_Tile(CHAMELEON_desc_t *A, double *D, double *E, CHAMELEON_desc_t *T); +//int CHAMELEON_zgecon_Tile(CHAMELEON_enum norm, CHAMELEON_desc_t *A, double anorm, double *rcond); +//int CHAMELEON_zpocon_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double anorm, double *rcond); +int CHAMELEON_zgelqf_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T); +int CHAMELEON_zgelqs_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B); +int CHAMELEON_zgels_Tile(CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B); +int CHAMELEON_zgemm_Tile(CHAMELEON_enum transA, CHAMELEON_enum transB, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C); +int CHAMELEON_zgeqrf_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T); +int CHAMELEON_zgeqrs_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B); +//int CHAMELEON_zgesv_Tile(CHAMELEON_desc_t *A, int *IPIV, CHAMELEON_desc_t *B); +int CHAMELEON_zgesv_incpiv_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, CHAMELEON_desc_t *B); +int CHAMELEON_zgesv_nopiv_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *B); +int CHAMELEON_zgesvd_Tile(CHAMELEON_enum jobu, CHAMELEON_enum jobvt, CHAMELEON_desc_t *A, double *S, CHAMELEON_desc_t *T, CHAMELEON_Complex64_t *U, int LDU, CHAMELEON_Complex64_t *VT, int LDVT); +//int CHAMELEON_zgetrf_Tile(CHAMELEON_desc_t *A, int *IPIV); +int CHAMELEON_zgetrf_incpiv_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV); +int CHAMELEON_zgetrf_nopiv_Tile(CHAMELEON_desc_t *A); +//int CHAMELEON_zgetri_Tile(CHAMELEON_desc_t *A, int *IPIV); +//int CHAMELEON_zgetrs_Tile(CHAMELEON_enum trans, CHAMELEON_desc_t *A, int *IPIV, CHAMELEON_desc_t *B); +int CHAMELEON_zgetrs_incpiv_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, CHAMELEON_desc_t *B); +int CHAMELEON_zgetrs_nopiv_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *B); +int CHAMELEON_zhemm_Tile(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C); +int CHAMELEON_zherk_Tile(CHAMELEON_enum uplo, CHAMELEON_enum trans, double alpha, CHAMELEON_desc_t *A, double beta, CHAMELEON_desc_t *C); +int CHAMELEON_zher2k_Tile(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, double beta, CHAMELEON_desc_t *C); +//int CHAMELEON_zheev_Tile(CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *W, CHAMELEON_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ); +int CHAMELEON_zheevd_Tile(CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *W, CHAMELEON_desc_t *T); +//int CHAMELEON_zhegv_Tile( CHAMELEON_enum itype, CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, double *W, CHAMELEON_desc_t *T, CHAMELEON_desc_t *Q); +//int CHAMELEON_zhegvd_Tile(CHAMELEON_enum itype, CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, double *W, CHAMELEON_desc_t *T, CHAMELEON_desc_t *Q); +//int CHAMELEON_zhegst_Tile(CHAMELEON_enum itype, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B); +int CHAMELEON_zhetrd_Tile(CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *D, double *E, CHAMELEON_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ); +int CHAMELEON_zlacpy_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B); +double CHAMELEON_zlange_Tile(CHAMELEON_enum norm, CHAMELEON_desc_t *A); +double CHAMELEON_zlanhe_Tile(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_desc_t *A); +double CHAMELEON_zlansy_Tile(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_desc_t *A); +double CHAMELEON_zlantr_Tile(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_enum diag, CHAMELEON_desc_t *A); +int CHAMELEON_zlascal_Tile(CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A); +int CHAMELEON_zlaset_Tile(CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *A); +//int CHAMELEON_zlaswp_Tile(CHAMELEON_desc_t *A, int K1, int K2, int *IPIV, int INCX); +//int CHAMELEON_zlaswpc_Tile(CHAMELEON_desc_t *A, int K1, int K2, int *IPIV, int INCX); +int CHAMELEON_zlauum_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A); +int CHAMELEON_zplghe_Tile(double bump, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, unsigned long long int seed ); +int CHAMELEON_zplgsy_Tile(CHAMELEON_Complex64_t bump, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, unsigned long long int seed ); +int CHAMELEON_zplrnt_Tile(CHAMELEON_desc_t *A, unsigned long long int seed ); +int CHAMELEON_zposv_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B); +int CHAMELEON_zpotrf_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A); +int CHAMELEON_zsytrf_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A); +int CHAMELEON_zpotri_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A); +int CHAMELEON_zpotrimm_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_desc_t *C); +int CHAMELEON_zpotrs_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B); +int CHAMELEON_zsymm_Tile(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C); +int CHAMELEON_zsyrk_Tile(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C); +int CHAMELEON_zsyr2k_Tile(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C); +int CHAMELEON_zsysv_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B); +int CHAMELEON_zsytrs_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B); +int CHAMELEON_ztpgqrt_Tile( int L, CHAMELEON_desc_t *V1, CHAMELEON_desc_t *T1, CHAMELEON_desc_t *V2, CHAMELEON_desc_t *T2, CHAMELEON_desc_t *Q1, CHAMELEON_desc_t *Q2 ); +int CHAMELEON_ztpqrt_Tile( int L, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_desc_t *T ); +int CHAMELEON_ztradd_Tile(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *B); +int CHAMELEON_ztrmm_Tile(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B); +int CHAMELEON_ztrsm_Tile(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B); +int CHAMELEON_ztrsmpl_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, CHAMELEON_desc_t *B); +int CHAMELEON_ztrsmrv_Tile(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B); +int CHAMELEON_ztrtri_Tile(CHAMELEON_enum uplo, CHAMELEON_enum diag, CHAMELEON_desc_t *A); +int CHAMELEON_zunglq_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B); +int CHAMELEON_zungqr_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B); +int CHAMELEON_zunmlq_Tile(CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B); +int CHAMELEON_zunmqr_Tile(CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B); + +/** + * Declarations of math functions (tile layout, asynchronous execution) - alphabetical order + */ +int CHAMELEON_zgeadd_Tile_Async(CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zgebrd_Tile_Async(CHAMELEON_desc_t *A, double *D, double *E, CHAMELEON_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zgecon_Tile_Async(CHAMELEON_enum norm, CHAMELEON_desc_t *A, double anorm, double *rcond, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zpocon_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double anorm, double *rcond, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgelqf_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgelqs_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgels_Tile_Async(CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgemm_Tile_Async(CHAMELEON_enum transA, CHAMELEON_enum transB, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgeqrf_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgeqrs_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zgesv_Tile_Async(CHAMELEON_desc_t *A, int *IPIV, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgesv_incpiv_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgesv_nopiv_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgesvd_Tile_Async(CHAMELEON_enum jobu, CHAMELEON_enum jobvt, CHAMELEON_desc_t *A, double *S, CHAMELEON_desc_t *T, CHAMELEON_Complex64_t *U, int LDU, CHAMELEON_Complex64_t *VT, int LDVT, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zgetrf_Tile_Async(CHAMELEON_desc_t *A, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgetrf_incpiv_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgetrf_nopiv_Tile_Async(CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zgetri_Tile_Async(CHAMELEON_desc_t *A, int *IPIV, CHAMELEON_desc_t *W, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zgetrs_Tile_Async(CHAMELEON_enum trans, CHAMELEON_desc_t *A, int *IPIV, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgetrs_incpiv_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgetrs_nopiv_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zhemm_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zherk_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_enum trans, double alpha, CHAMELEON_desc_t *A, double beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zher2k_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, double beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zheev_Tile_Async(CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *W, CHAMELEON_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zheevd_Tile_Async(CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *W, CHAMELEON_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zhegv_Tile_Async( CHAMELEON_enum itype, CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, double *W, CHAMELEON_desc_t *T, CHAMELEON_desc_t *Q, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zhegvd_Tile_Async(CHAMELEON_enum itype, CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, double *W, CHAMELEON_desc_t *T, CHAMELEON_desc_t *Q, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zhegst_Tile_Async(CHAMELEON_enum itype, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zhetrd_Tile_Async(CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *D, double *E, CHAMELEON_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zlacpy_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zlange_Tile_Async(CHAMELEON_enum norm, CHAMELEON_desc_t *A, double *value, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zlanhe_Tile_Async(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *value, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zlansy_Tile_Async(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *value, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zlantr_Tile_Async(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_enum diag, CHAMELEON_desc_t *A, double *value, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zlascal_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zlaset_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zlaswp_Tile_Async(CHAMELEON_desc_t *A, int K1, int K2, int *IPIV, int INCX, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zlaswpc_Tile_Async(CHAMELEON_desc_t *A, int K1, int K2, int *IPIV, int INCX, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zlauum_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zplghe_Tile_Async(double bump, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); +int CHAMELEON_zplgsy_Tile_Async(CHAMELEON_Complex64_t bump, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); +int CHAMELEON_zplrnt_Tile_Async(CHAMELEON_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); +int CHAMELEON_zposv_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zpotrf_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zsytrf_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zpotri_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zpotrimm_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zpotrs_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zsysv_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zsytrs_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zsymm_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zsyrk_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zsyr2k_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_ztpgqrt_Tile_Async( int L, CHAMELEON_desc_t *V1, CHAMELEON_desc_t *T1, CHAMELEON_desc_t *V2, CHAMELEON_desc_t *T2, CHAMELEON_desc_t *Q1, CHAMELEON_desc_t *Q2, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); +int CHAMELEON_ztpqrt_Tile_Async( int L, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); +int CHAMELEON_ztradd_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_ztrmm_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_ztrsm_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_ztrsmpl_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_ztrsmrv_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_ztrtri_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_enum diag, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zunglq_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zungqr_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zunmlq_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zunmqr_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); + +//int CHAMELEON_zgecfi_Async(int m, int n, CHAMELEON_Complex64_t *A, CHAMELEON_enum f_in, int imb, int inb, CHAMELEON_enum f_out, int omb, int onb, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zgetmi_Async(int m, int n, CHAMELEON_Complex64_t *A, CHAMELEON_enum f_in, int mb, int inb, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); + +/** + * Declarations of libhqr dependent functions. + */ +/** + * Declarations of math functions (LAPACK layout) - alphabetical order + */ +int CHAMELEON_zgels_param(const libhqr_tree_t *qrtree, CHAMELEON_enum trans, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *descTT, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zgelqf_param(const libhqr_tree_t *qrtree, int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *descTT); +int CHAMELEON_zgelqs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *descTT, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zgeqrf_param(const libhqr_tree_t *qrtree, int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *descTT); +int CHAMELEON_zgeqrs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zunglq_param(const libhqr_tree_t *qrtree, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zungqr_param(const libhqr_tree_t *qrtree, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *descTT, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zunmlq_param(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zunmlq_param(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB); +int CHAMELEON_zunmqr_param(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB); +/** + * Declarations of math functions (tile layout) - alphabetical order + */ +int CHAMELEON_zgels_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B); +int CHAMELEON_zgelqf_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT); +int CHAMELEON_zgelqs_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B); +int CHAMELEON_zgeqrf_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT); +int CHAMELEON_zgeqrs_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B); +int CHAMELEON_zunglq_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B); +int CHAMELEON_zungqr_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B); +int CHAMELEON_zungqr_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B); +int CHAMELEON_zunmlq_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B); +int CHAMELEON_zunmqr_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B); +/** + * Declarations of math functions (tile layout, asynchronous execution) - alphabetical order + */ +int CHAMELEON_zgels_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgelqf_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgelqs_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgeqrf_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zgeqrs_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zunglq_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zungqr_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zunmlq_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +int CHAMELEON_zunmqr_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); + +/** + * Declarations of workspace allocation functions (tile layout) - alphabetical order + */ +int CHAMELEON_Alloc_Workspace_zgesv_incpiv( int N, CHAMELEON_desc_t **descL, int **IPIV, int p, int q); +int CHAMELEON_Alloc_Workspace_zgetrf_incpiv(int M, int N, CHAMELEON_desc_t **descL, int **IPIV, int p, int q); + +int CHAMELEON_Alloc_Workspace_zgebrd(int M, int N, CHAMELEON_desc_t **descT, int p, int q); +int CHAMELEON_Alloc_Workspace_zgeev( int N, CHAMELEON_desc_t **descT, int p, int q); +int CHAMELEON_Alloc_Workspace_zgehrd(int N, CHAMELEON_desc_t **descT, int p, int q); +int CHAMELEON_Alloc_Workspace_zgelqf(int M, int N, CHAMELEON_desc_t **T, int p, int q); +int CHAMELEON_Alloc_Workspace_zgels( int M, int N, CHAMELEON_desc_t **T, int p, int q); +int CHAMELEON_Alloc_Workspace_zgeqrf(int M, int N, CHAMELEON_desc_t **T, int p, int q); +int CHAMELEON_Alloc_Workspace_zgesvd(int M, int N, CHAMELEON_desc_t **descT, int p, int q); +int CHAMELEON_Alloc_Workspace_zheev( int M, int N, CHAMELEON_desc_t **descT, int p, int q); +int CHAMELEON_Alloc_Workspace_zheevd( int M, int N, CHAMELEON_desc_t **descT, int p, int q); +int CHAMELEON_Alloc_Workspace_zhegv( int M, int N, CHAMELEON_desc_t **descT, int p, int q); +int CHAMELEON_Alloc_Workspace_zhegvd( int M, int N, CHAMELEON_desc_t **descT, int p, int q); +int CHAMELEON_Alloc_Workspace_zhetrd(int M, int N, CHAMELEON_desc_t **descT, int p, int q); + +/** + * Declarations of workspace allocation functions (tile layout, asynchronous execution) - alphabetical order + */ +int CHAMELEON_Alloc_Workspace_zgetri_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *W); + +/* Warning: Those functions are deprecated */ +int CHAMELEON_Alloc_Workspace_zgelqf_Tile(int M, int N, CHAMELEON_desc_t **descT, int p, int q); +int CHAMELEON_Alloc_Workspace_zgels_Tile( int M, int N, CHAMELEON_desc_t **descT, int p, int q); +int CHAMELEON_Alloc_Workspace_zgeqrf_Tile(int M, int N, CHAMELEON_desc_t **descT, int p, int q); +int CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile (int N, CHAMELEON_desc_t **descL, int **IPIV, int p, int q); +int CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile(int N, CHAMELEON_desc_t **descL, int **IPIV, int p, int q); + +/** + * Auxiliary function prototypes + */ +int CHAMELEON_zLapack_to_Tile(CHAMELEON_Complex64_t *Af77, int LDA, CHAMELEON_desc_t *A); +int CHAMELEON_zTile_to_Lapack(CHAMELEON_desc_t *A, CHAMELEON_Complex64_t *Af77, int LDA); + +/** + * User Builder function prototypes + */ +int CHAMELEON_zbuild(CHAMELEON_enum uplo, int M, int N, CHAMELEON_Complex64_t *A, int LDA, void *user_data, void* user_build_callback); +int CHAMELEON_zbuild_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, void *user_data, void* user_build_callback ); +int CHAMELEON_zbuild_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, void *user_data, void* user_build_callback, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); + +END_C_DECLS + +#endif diff --git a/include/chameleon/chameleon_zc.h b/include/chameleon/chameleon_zc.h new file mode 100644 index 0000000000000000000000000000000000000000..ba0051c4b0fe8b69e66fa14cf5f4bdf45bef2e58 --- /dev/null +++ b/include/chameleon/chameleon_zc.h @@ -0,0 +1,55 @@ +/** + * + * @file chameleon_zc.h + * + * @copyright 2009-2014 The University of Tennessee and The University of + * Tennessee Research Foundation. All rights reserved. + * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + *** + * + * @brief Chameleon mixed precision wrappers header + * + * @version 1.0.0 + * @comment This file has been automatically generated + * from Plasma 2.5.0 for CHAMELEON 1.0.0 + * @author Mathieu Faverge + * @author Emmanuel Agullo + * @author Cedric Castagnede + * @date 2010-11-15 + * @precisions mixed zc -> ds + * + */ +#ifndef _CHAMELEON_ZC_H_ +#define _CHAMELEON_ZC_H_ + +BEGIN_C_DECLS + +/** + * Declarations of math functions (LAPACK layout) - alphabetical order + */ +//int CHAMELEON_zcgesv(int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, int * IPIV, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t *X, int LDX, int *ITER); +//int CHAMELEON_zcposv(CHAMELEON_enum uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t *X, int LDX, int *ITER); +//int CHAMELEON_zcgels(CHAMELEON_enum trans, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t *X, int LDX, int *ITER); +//int CHAMELEON_zcungesv(CHAMELEON_enum trans, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t *X, int LDX, int *ITER); + +/** + * Declarations of math functions (tile layout) - alphabetical order + */ +//int CHAMELEON_zcgesv_Tile(CHAMELEON_desc_t *A, int *IPIV, CHAMELEON_desc_t *B, CHAMELEON_desc_t *X, int *ITER); +//int CHAMELEON_zcposv_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_desc_t *X, int *ITER); +/* int CHAMELEON_zcgels_Tile(CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, CHAMELEON_desc_t *X, int *ITER); */ +//int CHAMELEON_zcungesv_Tile(CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, CHAMELEON_desc_t *X, int *ITER); + +/** + * Declarations of math functions (tile layout, asynchronous execution) - alphabetical order + */ +//int CHAMELEON_zcgesv_Tile_Async(CHAMELEON_desc_t *A, int *IPIV, CHAMELEON_desc_t *B, CHAMELEON_desc_t *X, int *ITER, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zcposv_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_desc_t *X, int *ITER, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zcgels_Tile_Async(CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, CHAMELEON_desc_t *X, int *ITER, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +//int CHAMELEON_zcungesv_Tile_Async(CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, CHAMELEON_desc_t *X, int *ITER, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); + +END_C_DECLS + +#endif diff --git a/include/chameleon/morse_constants.h b/include/chameleon/morse_constants.h deleted file mode 100644 index acc7c4fac10037e3362932a800106010151c758c..0000000000000000000000000000000000000000 --- a/include/chameleon/morse_constants.h +++ /dev/null @@ -1,178 +0,0 @@ -/** - * - * @file morse_constants.h - * - * @copyright 2009-2014 The University of Tennessee and The University of - * Tennessee Research Foundation. All rights reserved. - * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, - * Univ. Bordeaux. All rights reserved. - * - *** - * - * @brief Chameleon global constants - * - * @version 1.0.0 - * @author Cedric Augonnet - * @author Mathieu Faverge - * @author Cedric Castagnede - * @date 2011-06-01 - * - */ -#ifndef _MORSE_CONSTANTS_H_ -#define _MORSE_CONSTANTS_H_ - -/** - * - * @brief Chameleon constants - CBLAS & LAPACK - * The naming and numbering is consistent with: - * - * 1) CBLAS from Netlib (http://www.netlib.org/blas/blast-forum/cblas.tgz), - * 2) C Interface to LAPACK from Netlib (http://www.netlib.org/lapack/lapwrapc/). - * - */ -#define MorseByte 0 -#define MorseInteger 1 -#define MorseRealFloat 2 -#define MorseRealDouble 3 -#define MorseComplexFloat 4 -#define MorseComplexDouble 5 - -#define MorseCM 101 -#define MorseRM 102 -#define MorseCCRB 103 -#define MorseCRRB 104 -#define MorseRCRB 105 -#define MorseRRRB 106 - -#define MorseNoTrans 111 -#define MorseTrans 112 -#define MorseConjTrans 113 - -#define MorseUpper 121 -#define MorseLower 122 -#define MorseUpperLower 123 - -#define MorseNonUnit 131 -#define MorseUnit 132 - -#define MorseLeft 141 -#define MorseRight 142 - -#define MorseOneNorm 171 -#define MorseRealOneNorm 172 -#define MorseTwoNorm 173 -#define MorseFrobeniusNorm 174 -#define MorseInfNorm 175 -#define MorseRealInfNorm 176 -#define MorseMaxNorm 177 -#define MorseRealMaxNorm 178 - -#define MorseDistUniform 201 -#define MorseDistSymmetric 202 -#define MorseDistNormal 203 - -#define MorseHermGeev 241 -#define MorseHermPoev 242 -#define MorseNonsymPosv 243 -#define MorseSymPosv 244 - -#define MorseNoPacking 291 -#define MorsePackSubdiag 292 -#define MorsePackSupdiag 293 -#define MorsePackColumn 294 -#define MorsePackRow 295 -#define MorsePackLowerBand 296 -#define MorsePackUpeprBand 297 -#define MorsePackAll 298 - -#define MorseNoVec 301 -#define MorseVec 302 -#define MorseIvec 303 - -#define MorseForward 391 -#define MorseBackward 392 - -#define MorseColumnwise 401 -#define MorseRowwise 402 -#define MorseTrd 1001 -#define MorseBrd 1002 - -#define MorseW 501 -#define MorseA2 502 - -#define morse_const_neg(const) (((const-1)^0x01)+1) - -/** - * MORSE constants - boolean - */ -#define MORSE_FALSE 0 -#define MORSE_TRUE 1 - -#define MORSE_CPU ((1ULL)<<1) -#define MORSE_CUDA ((1ULL)<<3) - -/** - * State machine switches - */ -#define MORSE_WARNINGS 1 -#define MORSE_ERRORS 2 -#define MORSE_AUTOTUNING 3 -#define MORSE_DAG 4 -#define MORSE_PROFILING_MODE 5 -#define MORSE_PARALLEL_MODE 6 -#define MORSE_BOUND 7 -#define MORSE_PROGRESS 8 -#define MORSE_GEMM3M 9 - -/** - * MORSE constants - configuration parameters - */ -#define MORSE_CONCURRENCY 1 -#define MORSE_TILE_SIZE 2 -#define MORSE_INNER_BLOCK_SIZE 3 -#define MORSE_HOUSEHOLDER_MODE 5 -#define MORSE_HOUSEHOLDER_SIZE 6 -#define MORSE_TRANSLATION_MODE 7 - -#define MORSE_FLAT_HOUSEHOLDER 1 -#define MORSE_TREE_HOUSEHOLDER 2 - -#define MORSE_INPLACE 1 -#define MORSE_OUTOFPLACE 2 - -/** - * MORSE constants - success & error codes - */ -#define MORSE_SUCCESS 0 -#define MORSE_ERR_NOT_INITIALIZED -101 -#define MORSE_ERR_REINITIALIZED -102 -#define MORSE_ERR_NOT_SUPPORTED -103 -#define MORSE_ERR_ILLEGAL_VALUE -104 -#define MORSE_ERR_NOT_FOUND -105 -#define MORSE_ERR_OUT_OF_RESOURCES -106 -#define MORSE_ERR_INTERNAL_LIMIT -107 -#define MORSE_ERR_UNALLOCATED -108 -#define MORSE_ERR_FILESYSTEM -109 -#define MORSE_ERR_UNEXPECTED -110 -#define MORSE_ERR_SEQUENCE_FLUSHED -111 - -/** - * Kernels options - */ -#define MORSE_PRIORITY_MIN 0 -#define MORSE_PRIORITY_MAX INT_MAX - - -/** - * Scheduler properties - */ -#define PRIORITY 16 -#define CALLBACK 17 -#define REDUX 18 - -/** - * MORSE ??? - */ -#define MORSE_REQUEST_INITIALIZER {MORSE_SUCCESS} - -#endif diff --git a/include/chameleon/morse_kernels.h b/include/chameleon/morse_kernels.h deleted file mode 100644 index ccfa33c13a3829b9ecbdc8a3cc6aa048c4d54027..0000000000000000000000000000000000000000 --- a/include/chameleon/morse_kernels.h +++ /dev/null @@ -1,82 +0,0 @@ -/** - * - * @file morse_kernels.h - * - * @copyright 2009-2014 The University of Tennessee and The University of - * Tennessee Research Foundation. All rights reserved. - * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, - * Univ. Bordeaux. All rights reserved. - * - *** - * - * @brief Chameleon elementary kernels enum - * - * @version 1.0.0 - * @author Mathieu Faverge - * @author Cedric Augonnet - * @date 2011-06-01 - * - */ -#ifndef _MORSE_KERNELS_H_ -#define _MORSE_KERNELS_H_ - -/** - * Used to apply operations on specific kernels - */ -typedef enum morse_kernel_e { - - MORSE_GEMM, - MORSE_HEMM, - MORSE_HER2K, - MORSE_HERK, - MORSE_SYTRF_NOPIV, - MORSE_SYMM, - MORSE_SYR2K, - MORSE_SYRK, - MORSE_TRSM, - MORSE_TRMM, - - MORSE_GELQT, - MORSE_GEQRT, - MORSE_GESSM, - MORSE_GETRF, - MORSE_GETRF_INCPIV, - MORSE_GETRF_NOPIV, - MORSE_LAUUM, - MORSE_ORMLQ, - MORSE_ORMQR, - MORSE_POTRF, - MORSE_SSSSM, - MORSE_TRTRI, - MORSE_TSLQT, - MORSE_TSMLQ, - MORSE_TSMQR, - MORSE_TSQRT, - MORSE_TSTRF, - MORSE_TTLQT, - MORSE_TTMLQ, - MORSE_TTMQR, - MORSE_TTQRT, - MORSE_UNMLQ, - MORSE_UNMQR, - - MORSE_GEADD, - MORSE_LASCAL, - MORSE_LACPY, - MORSE_LAG2C, - MORSE_LAG2Z, - MORSE_LANGE, - MORSE_LANHE, - MORSE_LANSY, - MORSE_LASET, - MORSE_LASET2, - MORSE_PEMV, - MORSE_PLGHE, - MORSE_PLGSY, - MORSE_PLRNT, - MORSE_TILE_ZERO, - - MORSE_NBKERNELS -} MORSE_kernel_t; - -#endif diff --git a/include/chameleon/morse_tasks.h b/include/chameleon/morse_tasks.h deleted file mode 100644 index eef463227047ef770b673e74bfeed5e0a9b720ec..0000000000000000000000000000000000000000 --- a/include/chameleon/morse_tasks.h +++ /dev/null @@ -1,52 +0,0 @@ -/** - * - * @file morse_tasks.h - * - * @copyright 2009-2014 The University of Tennessee and The University of - * Tennessee Research Foundation. All rights reserved. - * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, - * Univ. Bordeaux. All rights reserved. - * - *** - * - * @brief Chameleon elementary tasks main header - * - * @version 1.0.0 - * @author Mathieu Faverge - * @author Cedric Augonnet - * @date 2011-06-01 - * - */ -#ifndef _MORSE_TASKS_H_ -#define _MORSE_TASKS_H_ - -#include "chameleon/chameleon_config.h" - -BEGIN_C_DECLS - -/** - * MORSE Task submission routines - */ -void MORSE_TASK_ztile_zero(const MORSE_option_t *options, - int X1, int X2, int Y1, int Y2, - const MORSE_desc_t *A, int Am, int An, int lda); -void MORSE_TASK_dtile_zero(const MORSE_option_t *options, - int X1, int X2, int Y1, int Y2, - const MORSE_desc_t *A, int Am, int An, int lda); -void MORSE_TASK_ctile_zero(const MORSE_option_t *options, - int X1, int X2, int Y1, int Y2, - const MORSE_desc_t *A, int Am, int An, int lda); -void MORSE_TASK_stile_zero(const MORSE_option_t *options, - int X1, int X2, int Y1, int Y2, - const MORSE_desc_t *A, int Am, int An, int lda); - -#include "chameleon/morse_tasks_z.h" -#include "chameleon/morse_tasks_d.h" -#include "chameleon/morse_tasks_c.h" -#include "chameleon/morse_tasks_s.h" -#include "chameleon/morse_tasks_zc.h" -#include "chameleon/morse_tasks_ds.h" - -END_C_DECLS - -#endif /* _MORSE_TASKS_H_ */ diff --git a/include/chameleon/morse_tasks_z.h b/include/chameleon/morse_tasks_z.h deleted file mode 100644 index d9a768d4771a18de8279f6a36ff1601a0fc49d1f..0000000000000000000000000000000000000000 --- a/include/chameleon/morse_tasks_z.h +++ /dev/null @@ -1,468 +0,0 @@ -/** - * - * @file morse_tasks_z.h - * - * @copyright 2009-2014 The University of Tennessee and The University of - * Tennessee Research Foundation. All rights reserved. - * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, - * Univ. Bordeaux. All rights reserved. - * - *** - * - * @brief Chameleon MORSE_Complex64_t elementary tasks header - * - * @version 1.0.0 - * @comment This file has been automatically generated - * from Plasma 2.5.0 for MORSE 1.0.0 - * @author Jakub Kurzak - * @author Hatem Ltaief - * @author Azzam Haidar - * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 - * @precisions normal z -> c d s - * - */ -#ifndef _MORSE_TASKS_Z_H_ -#define _MORSE_TASKS_Z_H_ - - -/** - * Declarations of QUARK wrappers (called by MORSE) - alphabetical order - */ -void MORSE_TASK_dzasum(const MORSE_option_t *options, - MORSE_enum storev, MORSE_enum uplo, int M, int N, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn); -void MORSE_TASK_zgeadd(const MORSE_option_t *options, - MORSE_enum trans, int m, int n, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - MORSE_Complex64_t beta, const MORSE_desc_t *B, int Bm, int Bn, int ldb); -void MORSE_TASK_zlascal(const MORSE_option_t *options, - MORSE_enum uplo, - int m, int n, int nb, - MORSE_Complex64_t alpha, - const MORSE_desc_t *A, int Am, int An, int lda); -void MORSE_TASK_zbrdalg(const MORSE_option_t *options, - MORSE_enum uplo, - int N, int NB, - const MORSE_desc_t *A, - const MORSE_desc_t *C, int Cm, int Cn, - const MORSE_desc_t *S, int Sm, int Sn, - int i, int j, int m, int grsiz, int BAND, - int *PCOL, int *ACOL, int *MCOL); -void MORSE_TASK_zgelqt(const MORSE_option_t *options, - int m, int n, int ib, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *T, int Tm, int Tn, int ldt); -void MORSE_TASK_zgemm(const MORSE_option_t *options, - MORSE_enum transA, MORSE_enum transB, - int m, int n, int k, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb, - MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc); -void MORSE_TASK_zgemm2( const MORSE_option_t *options, - MORSE_enum transA, MORSE_enum transB, - int m, int n, int k, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb, - MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc); -void MORSE_TASK_zgemm_f2(const MORSE_option_t *options, - MORSE_enum transA, MORSE_enum transB, - int m, int n, int k, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb, - MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc, - const MORSE_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1, - const MORSE_desc_t *fake2, int fake2m, int fake2n, int szefake2, int flag2); -void MORSE_TASK_zgemm_p2(const MORSE_option_t *options, - MORSE_enum transA, MORSE_enum transB, - int m, int n, int k, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_Complex64_t **B, int ldb, - MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc); -void MORSE_TASK_zgemm_p2f1(const MORSE_option_t *options, - MORSE_enum transA, MORSE_enum transB, - int m, int n, int k, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_Complex64_t **B, int ldb, - MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc, - const MORSE_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1); -void MORSE_TASK_zgemm_p3(const MORSE_option_t *options, - MORSE_enum transA, MORSE_enum transB, - int m, int n, int k, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb, - MORSE_Complex64_t beta, MORSE_Complex64_t **C, int ldc); -void MORSE_TASK_zgeqrt(const MORSE_option_t *options, - int m, int n, int ib, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *T, int Tm, int Tn, int ldt); -void MORSE_TASK_zgessm(const MORSE_option_t *options, - int m, int n, int k, int ib, int nb, - int *IPIV, - const MORSE_desc_t *L, int Lm, int Ln, int ldl, - const MORSE_desc_t *D, int Dm, int Dn, int ldd, - const MORSE_desc_t *A, int Am, int An, int lda); -void MORSE_TASK_zgessq( const MORSE_option_t *options, - int m, int n, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn); -void MORSE_TASK_zgetrf(const MORSE_option_t *options, - int m, int n, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, - int *IPIV, - - MORSE_bool check_info, int iinfo); -void MORSE_TASK_zgetrf_incpiv(const MORSE_option_t *options, - int m, int n, int ib, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *L, int Lm, int Ln, int ldl, - int *IPIV, - MORSE_bool check_info, int iinfo); -void MORSE_TASK_zgetrf_nopiv(const MORSE_option_t *options, - int m, int n, int ib, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, int iinfo); -void MORSE_TASK_zgetrf_reclap(const MORSE_option_t *options, - int m, int n, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, - int *IPIV, - - MORSE_bool check_info, int iinfo, - int nbthread); -void MORSE_TASK_zgetrf_rectil(const MORSE_option_t *options, - const MORSE_desc_t A, const MORSE_desc_t *Amn, int Amnm, int Amnn, int size, - int *IPIV, - - MORSE_bool check_info, int iinfo, - int nbthread); -void MORSE_TASK_zgetrip(const MORSE_option_t *options, - int m, int n, const MORSE_desc_t *A, int Am, int An, int szeA); -void MORSE_TASK_zgetrip_f1(const MORSE_option_t *options, - int m, int n, const MORSE_desc_t *A, int Am, int An, int szeA, - const MORSE_desc_t *fake, int fakem, int faken, int szeF, int paramF); -void MORSE_TASK_zgetrip_f2(const MORSE_option_t *options, - int m, int n, const MORSE_desc_t *A, int Am, int An, int szeA, - const MORSE_desc_t *fake1, int fake1m, int fake1n, int szeF1, int paramF1, - const MORSE_desc_t *fake2, int fake2m, int fake2n, int szeF2, int paramF2); -void MORSE_TASK_zhe2ge(const MORSE_option_t *options, - MORSE_enum uplo, - int m, int n, int mb, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb); -void MORSE_TASK_zhemm(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum uplo, - int m, int n, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb, - MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc); -void MORSE_TASK_zhegst(const MORSE_option_t *options, - int itype, MORSE_enum uplo, int N, - const MORSE_desc_t *A, int Am, int An, int LDA, - const MORSE_desc_t *B, int Bm, int Bn, int LDB, - int iinfo); -void MORSE_TASK_zherk(const MORSE_option_t *options, - MORSE_enum uplo, MORSE_enum trans, - int n, int k, int nb, - double alpha, const MORSE_desc_t *A, int Am, int An, int lda, - double beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc); -void MORSE_TASK_zher2k(const MORSE_option_t *options, - MORSE_enum uplo, MORSE_enum trans, - int n, int k, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int LDB, - double beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc); -void MORSE_TASK_zherfb(const MORSE_option_t *options, - MORSE_enum uplo, - int n, int k, int ib, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *T, int Tm, int Tn, int ldt, - const MORSE_desc_t *C, int Cm, int Cn, int ldc); -void MORSE_TASK_zlacpy(const MORSE_option_t *options, - MORSE_enum uplo, int m, int n, int mb, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb); -void MORSE_TASK_zlacpyx(const MORSE_option_t *options, - MORSE_enum uplo, int m, int n, int mb, - int displA, const MORSE_desc_t *A, int Am, int An, int lda, - int displB, const MORSE_desc_t *B, int Bm, int Bn, int ldb); -void MORSE_TASK_zlange(const MORSE_option_t *options, - MORSE_enum norm, int M, int N, int NB, - const MORSE_desc_t *A, int Am, int An, int LDA, - const MORSE_desc_t *B, int Bm, int Bn); -void MORSE_TASK_zlange_max(const MORSE_option_t *options, - const MORSE_desc_t *A, int Am, int An, - const MORSE_desc_t *B, int Bm, int Bn); -void MORSE_TASK_zhessq( const MORSE_option_t *options, - MORSE_enum uplo, int n, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn ); -void MORSE_TASK_zlanhe(const MORSE_option_t *options, - MORSE_enum norm, MORSE_enum uplo, int N, int NB, - const MORSE_desc_t *A, int Am, int An, int LDA, - const MORSE_desc_t *B, int Bm, int Bn); -void MORSE_TASK_zlansy(const MORSE_option_t *options, - MORSE_enum norm, MORSE_enum uplo, int N, int NB, - const MORSE_desc_t *A, int Am, int An, int LDA, - const MORSE_desc_t *B, int Bm, int Bn); -void MORSE_TASK_zlantr(const MORSE_option_t *options, - MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, - int M, int N, int NB, - const MORSE_desc_t *A, int Am, int An, int LDA, - const MORSE_desc_t *B, int Bm, int Bn); -void MORSE_TASK_zlaset(const MORSE_option_t *options, - MORSE_enum uplo, int n1, int n2, MORSE_Complex64_t alpha, - MORSE_Complex64_t beta, const MORSE_desc_t *tileA, int tileAm, int tileAn, int ldtilea); -void MORSE_TASK_zlaset2(const MORSE_option_t *options, - MORSE_enum uplo, int n1, int n2, MORSE_Complex64_t alpha, - const MORSE_desc_t *tileA, int tileAm, int tileAn, int ldtilea); -void MORSE_TASK_zlaswp(const MORSE_option_t *options, - int n, const MORSE_desc_t *A, int Am, int An, int lda, - int i1, int i2, int *ipiv, int inc); -void MORSE_TASK_zlaswp_f2(const MORSE_option_t *options, - int n, const MORSE_desc_t *A, int Am, int An, int lda, - int i1, int i2, int *ipiv, int inc, - const MORSE_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1, - const MORSE_desc_t *fake2, int fake2m, int fake2n, int szefake2, int flag2); -void MORSE_TASK_zlaswp_ontile(const MORSE_option_t *options, - const MORSE_desc_t descA, const MORSE_desc_t *A, int Am, int An, - int i1, int i2, int *ipiv, int inc, MORSE_Complex64_t *fakepanel); -void MORSE_TASK_zlaswp_ontile_f2(const MORSE_option_t *options, - const MORSE_desc_t descA, const MORSE_desc_t *A, int Am, int An, - int i1, int i2, int *ipiv, int inc, - const MORSE_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1, - const MORSE_desc_t *fake2, int fake2m, int fake2n, int szefake2, int flag2); -void MORSE_TASK_zlaswpc_ontile(const MORSE_option_t *options, - const MORSE_desc_t descA, const MORSE_desc_t *A, int Am, int An, - int i1, int i2, int *ipiv, int inc, MORSE_Complex64_t *fakepanel); -void MORSE_TASK_zlatro(const MORSE_option_t *options, - MORSE_enum uplo, MORSE_enum trans, int m, int n, int mb, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb); -void MORSE_TASK_zlauum(const MORSE_option_t *options, - MORSE_enum uplo, int n, int nb, - const MORSE_desc_t *A, int Am, int An, int lda); -void MORSE_TASK_zplghe(const MORSE_option_t *options, - double bump, int m, int n, const MORSE_desc_t *A, int Am, int An, int lda, - int bigM, int m0, int n0, unsigned long long int seed ); -void MORSE_TASK_zplgsy(const MORSE_option_t *options, - MORSE_Complex64_t bump, int m, int n, const MORSE_desc_t *A, int Am, int An, int lda, - int bigM, int m0, int n0, unsigned long long int seed ); -void MORSE_TASK_zplrnt(const MORSE_option_t *options, - int m, int n, const MORSE_desc_t *A, int Am, int An, int lda, - int bigM, int m0, int n0, unsigned long long int seed ); -void MORSE_TASK_zpotrf(const MORSE_option_t *options, - MORSE_enum uplo, int n, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, - - int iinfo); -void MORSE_TASK_zshift( const MORSE_option_t *options, - int s, int m, int n, int L, - MORSE_Complex64_t *A); -void MORSE_TASK_zshiftw(const MORSE_option_t *options, - int s, int cl, int m, int n, int L, - const MORSE_desc_t *A, int Am, int An, MORSE_Complex64_t *W); -void MORSE_TASK_zssssm(const MORSE_option_t *options, - int m1, int n1, int m2, int n2, int k, int ib, int nb, - const MORSE_desc_t *A1, int A1m, int A1n, int lda1, - const MORSE_desc_t *A2, int A2m, int A2n, int lda2, - const MORSE_desc_t *L1, int L1m, int L1n, int ldl1, - const MORSE_desc_t *L2, int L2m, int L2n, int ldl2, - const int *IPIV); -void MORSE_TASK_zsymm(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum uplo, - int m, int n, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb, - MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc); -void MORSE_TASK_zsyrk(const MORSE_option_t *options, - MORSE_enum uplo, MORSE_enum trans, - int n, int k, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc); -void MORSE_TASK_zsyr2k(const MORSE_option_t *options, - MORSE_enum uplo, MORSE_enum trans, - int n, int k, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int LDB, - MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc); -void MORSE_TASK_zsyssq( const MORSE_option_t *options, - MORSE_enum uplo, int n, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn ); -void MORSE_TASK_zsytrf_nopiv(const MORSE_option_t *options, - MORSE_enum uplo, int n, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, - int iinfo); -void MORSE_TASK_zswpab(const MORSE_option_t *options, - int i, int n1, int n2, - const MORSE_desc_t *A, int Am, int An, int szeA); -void MORSE_TASK_zswptr_ontile(const MORSE_option_t *options, - const MORSE_desc_t descA, const MORSE_desc_t *Aij, int Aijm, int Aijn, - int i1, int i2, int *ipiv, int inc, - const MORSE_desc_t *Akk, int Akkm, int Akkn, int ldak); -void MORSE_TASK_ztplqt(const MORSE_option_t *options, - int m, int n, int l, int ib, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb, - const MORSE_desc_t *T, int Tm, int Tn, int ldt ); -void MORSE_TASK_ztpmlqt( const MORSE_option_t *options, - MORSE_enum side, MORSE_enum trans, - int M, int N, int K, int L, int ib, int nb, - const MORSE_desc_t *V, int Vm, int Vn, int ldv, - const MORSE_desc_t *T, int Tm, int Tn, int ldt, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb ); -void MORSE_TASK_ztpmqrt(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum trans, - int m, int n, int k, int l, int ib, int nb, - const MORSE_desc_t *V, int Vm, int Vn, int ldv, - const MORSE_desc_t *T, int Tm, int Tn, int ldt, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb ); -void MORSE_TASK_ztpqrt(const MORSE_option_t *options, - int m, int n, int l, int ib, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb, - const MORSE_desc_t *T, int Tm, int Tn, int ldt ); -void MORSE_TASK_ztrdalg(const MORSE_option_t *options, - MORSE_enum uplo, - int N, int NB, - const MORSE_desc_t *A, - const MORSE_desc_t *C, int Cm, int Cn, - const MORSE_desc_t *S, int Sm, int Sn, - int i, int j, int m, int grsiz, int BAND, - int *PCOL, int *ACOL, int *MCOL); -void MORSE_TASK_ztradd(const MORSE_option_t *options, - MORSE_enum uplo, MORSE_enum trans, int m, int n, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - MORSE_Complex64_t beta, const MORSE_desc_t *B, int Bm, int Bn, int ldb); -void MORSE_TASK_ztrasm(const MORSE_option_t *options, - MORSE_enum storev, MORSE_enum uplo, MORSE_enum diag, int M, int N, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn); -void MORSE_TASK_ztrmm(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, - int m, int n, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb); -void MORSE_TASK_ztrmm_p2(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, - int m, int n, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - MORSE_Complex64_t **B, int ldb); -void MORSE_TASK_ztrsm(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, - int m, int n, int nb, - MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *B, int Bm, int Bn, int ldb); -void MORSE_TASK_ztrssq( const MORSE_option_t *options, - MORSE_enum uplo, MORSE_enum diag, - int m, int n, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn ); -void MORSE_TASK_ztrtri(const MORSE_option_t *options, - MORSE_enum uplo, MORSE_enum diag, int n, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, - - int iinfo); -void MORSE_TASK_ztslqt(const MORSE_option_t *options, - int m, int n, int ib, int nb, - const MORSE_desc_t *A1, int A1m, int A1n, int lda1, - const MORSE_desc_t *A2, int A2m, int A2n, int lda2, - const MORSE_desc_t *T, int Tm, int Tn, int ldt); -void MORSE_TASK_ztsmlq(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum trans, - int m1, int n1, int m2, int n2, int k, int ib, int nb, - const MORSE_desc_t *A1, int A1m, int A1n, int lda1, - const MORSE_desc_t *A2, int A2m, int A2n, int lda2, - const MORSE_desc_t *V, int Vm, int Vn, int ldv, - const MORSE_desc_t *T, int Tm, int Tn, int ldt); -void MORSE_TASK_ztsmlq_hetra1(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum trans, - int m1, int n1, int m2, int n2, int k, int ib, int nb, - const MORSE_desc_t *A1, int A1m, int A1n, int lda1, - const MORSE_desc_t *A2, int A2m, int A2n, int lda2, - const MORSE_desc_t *V, int Vm, int Vn, int ldv, - const MORSE_desc_t *T, int Tm, int Tn, int ldt); -void MORSE_TASK_ztsmqr(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum trans, - int m1, int n1, int m2, int n2, int k, int ib, int nb, - const MORSE_desc_t *A1, int A1m, int A1n, int lda1, - const MORSE_desc_t *A2, int A2m, int A2n, int lda2, - const MORSE_desc_t *V, int Vm, int Vn, int ldv, - const MORSE_desc_t *T, int Tm, int Tn, int ldt); -void MORSE_TASK_ztsmqr_hetra1(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum trans, - int m1, int n1, int m2, int n2, int k, int ib, int nb, - const MORSE_desc_t *A1, int A1m, int A1n, int lda1, - const MORSE_desc_t *A2, int A2m, int A2n, int lda2, - const MORSE_desc_t *V, int Vm, int Vn, int ldv, - const MORSE_desc_t *T, int Tm, int Tn, int ldt); -void MORSE_TASK_ztsqrt(const MORSE_option_t *options, - int m, int n, int ib, int nb, - const MORSE_desc_t *A1, int A1m, int A1n, int lda1, - const MORSE_desc_t *A2, int A2m, int A2n, int lda2, - const MORSE_desc_t *T, int Tm, int Tn, int ldt); -void MORSE_TASK_ztstrf(const MORSE_option_t *options, - int m, int n, int ib, int nb, - const MORSE_desc_t *U, int Um, int Un, int ldu, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *L, int Lm, int Ln, int ldl, - int *IPIV, - - MORSE_bool check_info, int iinfo); -void MORSE_TASK_zttmqr(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum trans, - int m1, int n1, int m2, int n2, int k, int ib, int nb, - const MORSE_desc_t *A1, int A1m, int A1n, int lda1, - const MORSE_desc_t *A2, int A2m, int A2n, int lda2, - const MORSE_desc_t *V, int Vm, int Vn, int ldv, - const MORSE_desc_t *T, int Tm, int Tn, int ldt); -void MORSE_TASK_zttqrt(const MORSE_option_t *options, - int m, int n, int ib, int nb, - const MORSE_desc_t *A1, int A1m, int A1n, int lda1, - const MORSE_desc_t *A2, int A2m, int A2n, int lda2, - const MORSE_desc_t *T, int Tm, int Tn, int ldt); -void MORSE_TASK_zttmlq(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum trans, - int m1, int n1, int m2, int n2, int k, int ib, int nb, - const MORSE_desc_t *A1, int A1m, int A1n, int lda1, - const MORSE_desc_t *A2, int A2m, int A2n, int lda2, - const MORSE_desc_t *V, int Vm, int Vn, int ldv, - const MORSE_desc_t *T, int Tm, int Tn, int ldt); -void MORSE_TASK_zttlqt(const MORSE_option_t *options, - int m, int n, int ib, int nb, - const MORSE_desc_t *A1, int A1m, int A1n, int lda1, - const MORSE_desc_t *A2, int A2m, int A2n, int lda2, - const MORSE_desc_t *T, int Tm, int Tn, int ldt); -void MORSE_TASK_zpamm(const MORSE_option_t *options, - int op, MORSE_enum side, MORSE_enum storev, - int m, int n, int k, int l, - const MORSE_desc_t *A1, int A1m, int A1n, int lda1, - const MORSE_desc_t *A2, int A2m, int A2n, int lda2, - const MORSE_desc_t *V, int Vm, int Vn, int ldv, - const MORSE_desc_t *W, int Wm, int Wn, int ldw); -void MORSE_TASK_zplssq( const MORSE_option_t *options, - const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn, - const MORSE_desc_t *SCLSSQ, int SCLSSQm, int SCLSSQn ); -void MORSE_TASK_zplssq2( const MORSE_option_t *options, - const MORSE_desc_t *RESULT, int RESULTm, int RESULTn ); -void MORSE_TASK_zunmlq(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum trans, - int m, int n, int ib, int nb, int k, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *T, int Tm, int Tn, int ldt, - const MORSE_desc_t *C, int Cm, int Cn, int ldc); -void MORSE_TASK_zunmqr(const MORSE_option_t *options, - MORSE_enum side, MORSE_enum trans, - int m, int n, int k, int ib, int nb, - const MORSE_desc_t *A, int Am, int An, int lda, - const MORSE_desc_t *T, int Tm, int Tn, int ldt, - const MORSE_desc_t *C, int Cm, int Cn, int ldc); -void MORSE_TASK_zbuild( const MORSE_option_t *options, - const MORSE_desc_t *A, int Am, int An, int lda, - void *user_data, void* user_build_callback ); - -#endif diff --git a/include/chameleon/morse_tasks_zc.h b/include/chameleon/morse_tasks_zc.h deleted file mode 100644 index ffeafdb5c5477cd34115cdafc2abc78f5c714efa..0000000000000000000000000000000000000000 --- a/include/chameleon/morse_tasks_zc.h +++ /dev/null @@ -1,41 +0,0 @@ -/** - * - * @file morse_tasks_zc.h - * - * @copyright 2009-2014 The University of Tennessee and The University of - * Tennessee Research Foundation. All rights reserved. - * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, - * Univ. Bordeaux. All rights reserved. - * - *** - * - * @brief Chameleon complex mixed precision elementary tasks header - * - * @version 1.0.0 - * @comment This file has been automatically generated - * from Plasma 2.5.0 for MORSE 1.0.0 - * @author Jakub Kurzak - * @author Hatem Ltaief - * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 - * @precisions mixed zc -> ds - * - */ -#ifndef _MORSE_TASKS_Z_H_ -#define _MORSE_TASKS_Z_H_ - -/** - * Declarations of QUARK wrappers (called by MORSE) - alphabetical order - */ -void MORSE_TASK_clag2z(MORSE_option_t *options, - int m, int n, int nb, - MORSE_desc_t *A, int Am, int An, int lda, - MORSE_desc_t *B, int Bm, int Bn, int ldb); -void MORSE_TASK_zlag2c(MORSE_option_t *options, - int m, int n, int nb, - MORSE_desc_t *A, int Am, int An, int lda, - MORSE_desc_t *B, int Bm, int Bn, int ldb); - -#endif diff --git a/include/chameleon/morse_z.h b/include/chameleon/morse_z.h deleted file mode 100644 index b05bfa5a5a5fb38c60497f031a20fba1a4e41c99..0000000000000000000000000000000000000000 --- a/include/chameleon/morse_z.h +++ /dev/null @@ -1,336 +0,0 @@ -/** - * - * @file morse_z.h - * - * @copyright 2009-2014 The University of Tennessee and The University of - * Tennessee Research Foundation. All rights reserved. - * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, - * Univ. Bordeaux. All rights reserved. - * - *** - * - * @brief Chameleon MORSE_complex64_t wrappers - * - * @version 1.0.0 - * @comment This file has been automatically generated - * from Plasma 2.5.0 for MORSE 1.0.0 - * @author Jakub Kurzak - * @author Hatem Ltaief - * @author Azzam Haidar - * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 - * @precisions normal z -> c d s - * - */ -#ifndef _MORSE_Z_H_ -#define _MORSE_Z_H_ - -BEGIN_C_DECLS - -/** - * Declarations of math functions (LAPACK layout) - alphabetical order - */ -int MORSE_zgeadd(MORSE_enum trans, int M, int N, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t beta, MORSE_Complex64_t *B, int LDB); -//int MORSE_zgebrd(int M, int N, MORSE_Complex64_t *A, int LDA, double *D, double *E, MORSE_desc_t *descT); -//int MORSE_zgecon(MORSE_enum norm, int N, MORSE_Complex64_t *A, int LDA, double anorm, double *rcond); -//int MORSE_zpocon(MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, double anorm, double *rcond); -int MORSE_zgelqf(int M, int N, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descT); -int MORSE_zgelqs(int M, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descT, MORSE_Complex64_t *B, int LDB); -int MORSE_zgels(MORSE_enum trans, int M, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descT, MORSE_Complex64_t *B, int LDB); -int MORSE_zgemm(MORSE_enum transA, MORSE_enum transB, int M, int N, int K, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB, MORSE_Complex64_t beta, MORSE_Complex64_t *C, int LDC); -int MORSE_zgeqrf(int M, int N, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descT); -int MORSE_zgeqrs(int M, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descT, MORSE_Complex64_t *B, int LDB); -//int MORSE_zgesv(int N, int NRHS, MORSE_Complex64_t *A, int LDA, int *IPIV, MORSE_Complex64_t *B, int LDB); -int MORSE_zgesv_incpiv(int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descL, int *IPIV, MORSE_Complex64_t *B, int LDB); -int MORSE_zgesv_nopiv(int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB); -int MORSE_zgesvd(MORSE_enum jobu, MORSE_enum jobvt, int M, int N, MORSE_Complex64_t *A, int LDA, double *S, MORSE_desc_t *descT, MORSE_Complex64_t *U, int LDU, MORSE_Complex64_t *VT, int LDVT); -//int MORSE_zgetrf(int M, int N, MORSE_Complex64_t *A, int LDA, int *IPIV); -int MORSE_zgetrf_incpiv(int M, int N, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descL, int *IPIV); -int MORSE_zgetrf_nopiv(int M, int N, MORSE_Complex64_t *A, int LDA); -//int MORSE_zgetri(int N, MORSE_Complex64_t *A, int LDA, int *IPIV); -//int MORSE_zgetrs(MORSE_enum trans, int N, int NRHS, MORSE_Complex64_t *A, int LDA, int *IPIV, MORSE_Complex64_t *B, int LDB); -int MORSE_zgetrs_incpiv(MORSE_enum trans, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descL, int *IPIV, MORSE_Complex64_t *B, int LDB); -int MORSE_zgetrs_nopiv(MORSE_enum trans, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB); -int MORSE_zhemm(MORSE_enum side, MORSE_enum uplo, int M, int N, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB, MORSE_Complex64_t beta, MORSE_Complex64_t *C, int LDC); -int MORSE_zherk(MORSE_enum uplo, MORSE_enum trans, int N, int K, double alpha, MORSE_Complex64_t *A, int LDA, double beta, MORSE_Complex64_t *C, int LDC); -int MORSE_zher2k(MORSE_enum uplo, MORSE_enum trans, int N, int K, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB, double beta, MORSE_Complex64_t *C, int LDC); -//int MORSE_zheev(MORSE_enum jobz, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, double *W, MORSE_desc_t *descT, MORSE_Complex64_t *Q, int LDQ); -int MORSE_zheevd(MORSE_enum jobz, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, double *W, MORSE_desc_t *descT); -//int MORSE_zhegv(MORSE_enum itype, MORSE_enum jobz, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB, double *W, MORSE_desc_t *descT, MORSE_Complex64_t *Q, int LDQ); -//int MORSE_zhegvd(MORSE_enum itype, MORSE_enum jobz, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB, double *W, MORSE_desc_t *descT, MORSE_Complex64_t *Q, int LDQ); -//int MORSE_zhegst(MORSE_enum itype, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB); -int MORSE_zhetrd(MORSE_enum jobz, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, double *D, double *E, MORSE_desc_t *descT, MORSE_Complex64_t *Q, int LDQ); -int MORSE_zlacpy(MORSE_enum uplo, int M, int N, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB); -double MORSE_zlange(MORSE_enum norm, int M, int N, MORSE_Complex64_t *A, int LDA); -double MORSE_zlanhe(MORSE_enum norm, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA); -double MORSE_zlansy(MORSE_enum norm, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA); -double MORSE_zlantr(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, int M, int N, MORSE_Complex64_t *A, int LDA); -int MORSE_zlascal(MORSE_enum uplo, int M, int N, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA); -int MORSE_zlaset(MORSE_enum uplo, int M, int N, MORSE_Complex64_t alpha, MORSE_Complex64_t beta, MORSE_Complex64_t *A, int LDA); -//int MORSE_zlaswp(int N, MORSE_Complex64_t *A, int LDA, int K1, int K2, int *IPIV, int INCX); -//int MORSE_zlaswpc(int N, MORSE_Complex64_t *A, int LDA, int K1, int K2, int *IPIV, int INCX); -int MORSE_zlauum(MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA); -int MORSE_zplghe( double bump, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, unsigned long long int seed ); -int MORSE_zplgsy( MORSE_Complex64_t bump, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, unsigned long long int seed ); -int MORSE_zplrnt( int M, int N, MORSE_Complex64_t *A, int LDA, unsigned long long int seed ); -int MORSE_zposv(MORSE_enum uplo, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB); -int MORSE_zpotrf(MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA); -int MORSE_zsytrf(MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA); -int MORSE_zpotri(MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA); -int MORSE_zpotrimm(MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB, MORSE_Complex64_t *C, int LDC); -int MORSE_zpotrs(MORSE_enum uplo, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB); -int MORSE_zsymm(MORSE_enum side, MORSE_enum uplo, int M, int N, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB, MORSE_Complex64_t beta, MORSE_Complex64_t *C, int LDC); -int MORSE_zsyrk(MORSE_enum uplo, MORSE_enum trans, int N, int K, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t beta, MORSE_Complex64_t *C, int LDC); -int MORSE_zsyr2k(MORSE_enum uplo, MORSE_enum trans, int N, int K, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB, MORSE_Complex64_t beta, MORSE_Complex64_t *C, int LDC); -int MORSE_zsysv(MORSE_enum uplo, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB); -int MORSE_zsytrs(MORSE_enum uplo, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB); -int MORSE_ztpgqrt( int M, int N, int K, int L, MORSE_Complex64_t *V1, int LDV1, MORSE_desc_t *descT1, MORSE_Complex64_t *V2, int LDV2, MORSE_desc_t *descT2, MORSE_Complex64_t *Q1, int LDQ1, MORSE_Complex64_t *Q2, int LDQ2 ); -int MORSE_ztpqrt( int M, int N, int L, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB, MORSE_desc_t *descT ); -int MORSE_ztradd(MORSE_enum uplo, MORSE_enum trans, int M, int N, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t beta, MORSE_Complex64_t *B, int LDB); -int MORSE_ztrmm(MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, int N, int NRHS, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB); -int MORSE_ztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, int N, int NRHS, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB); -int MORSE_ztrsmpl(int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descL, int *IPIV, MORSE_Complex64_t *B, int LDB); -int MORSE_ztrsmrv(MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, int N, int NRHS, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB); -int MORSE_ztrtri(MORSE_enum uplo, MORSE_enum diag, int N, MORSE_Complex64_t *A, int LDA); -int MORSE_zunglq(int M, int N, int K, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descT, MORSE_Complex64_t *B, int LDB); -int MORSE_zungqr(int M, int N, int K, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descT, MORSE_Complex64_t *B, int LDB); -int MORSE_zunmlq(MORSE_enum side, MORSE_enum trans, int M, int N, int K, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descT, MORSE_Complex64_t *B, int LDB); -int MORSE_zunmqr(MORSE_enum side, MORSE_enum trans, int M, int N, int K, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descT, MORSE_Complex64_t *B, int LDB); - -//int MORSE_zgecfi(int m, int n, MORSE_Complex64_t *A, MORSE_enum fin, int imb, int inb, MORSE_enum fout, int omb, int onb); -//int MORSE_zgetmi(int m, int n, MORSE_Complex64_t *A, MORSE_enum fin, int mb, int nb); - -/** - * Declarations of math functions (tile layout) - alphabetical order - */ -int MORSE_zgeadd_Tile(MORSE_enum trans, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_Complex64_t beta, MORSE_desc_t *B); -//int MORSE_zgebrd_Tile(MORSE_desc_t *A, double *D, double *E, MORSE_desc_t *T); -//int MORSE_zgecon_Tile(MORSE_enum norm, MORSE_desc_t *A, double anorm, double *rcond); -//int MORSE_zpocon_Tile(MORSE_enum uplo, MORSE_desc_t *A, double anorm, double *rcond); -int MORSE_zgelqf_Tile(MORSE_desc_t *A, MORSE_desc_t *T); -int MORSE_zgelqs_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B); -int MORSE_zgels_Tile(MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B); -int MORSE_zgemm_Tile(MORSE_enum transA, MORSE_enum transB, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t beta, MORSE_desc_t *C); -int MORSE_zgeqrf_Tile(MORSE_desc_t *A, MORSE_desc_t *T); -int MORSE_zgeqrs_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B); -//int MORSE_zgesv_Tile(MORSE_desc_t *A, int *IPIV, MORSE_desc_t *B); -int MORSE_zgesv_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t *B); -int MORSE_zgesv_nopiv_Tile(MORSE_desc_t *A, MORSE_desc_t *B); -int MORSE_zgesvd_Tile(MORSE_enum jobu, MORSE_enum jobvt, MORSE_desc_t *A, double *S, MORSE_desc_t *T, MORSE_Complex64_t *U, int LDU, MORSE_Complex64_t *VT, int LDVT); -//int MORSE_zgetrf_Tile(MORSE_desc_t *A, int *IPIV); -int MORSE_zgetrf_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV); -int MORSE_zgetrf_nopiv_Tile(MORSE_desc_t *A); -//int MORSE_zgetri_Tile(MORSE_desc_t *A, int *IPIV); -//int MORSE_zgetrs_Tile(MORSE_enum trans, MORSE_desc_t *A, int *IPIV, MORSE_desc_t *B); -int MORSE_zgetrs_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t *B); -int MORSE_zgetrs_nopiv_Tile(MORSE_desc_t *A, MORSE_desc_t *B); -int MORSE_zhemm_Tile(MORSE_enum side, MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t beta, MORSE_desc_t *C); -int MORSE_zherk_Tile(MORSE_enum uplo, MORSE_enum trans, double alpha, MORSE_desc_t *A, double beta, MORSE_desc_t *C); -int MORSE_zher2k_Tile(MORSE_enum uplo, MORSE_enum trans, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, double beta, MORSE_desc_t *C); -//int MORSE_zheev_Tile(MORSE_enum jobz, MORSE_enum uplo, MORSE_desc_t *A, double *W, MORSE_desc_t *T, MORSE_Complex64_t *Q, int LDQ); -int MORSE_zheevd_Tile(MORSE_enum jobz, MORSE_enum uplo, MORSE_desc_t *A, double *W, MORSE_desc_t *T); -//int MORSE_zhegv_Tile( MORSE_enum itype, MORSE_enum jobz, MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, double *W, MORSE_desc_t *T, MORSE_desc_t *Q); -//int MORSE_zhegvd_Tile(MORSE_enum itype, MORSE_enum jobz, MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, double *W, MORSE_desc_t *T, MORSE_desc_t *Q); -//int MORSE_zhegst_Tile(MORSE_enum itype, MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B); -int MORSE_zhetrd_Tile(MORSE_enum jobz, MORSE_enum uplo, MORSE_desc_t *A, double *D, double *E, MORSE_desc_t *T, MORSE_Complex64_t *Q, int LDQ); -int MORSE_zlacpy_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B); -double MORSE_zlange_Tile(MORSE_enum norm, MORSE_desc_t *A); -double MORSE_zlanhe_Tile(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A); -double MORSE_zlansy_Tile(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A); -double MORSE_zlantr_Tile(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A); -int MORSE_zlascal_Tile(MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_desc_t *A); -int MORSE_zlaset_Tile(MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_Complex64_t beta, MORSE_desc_t *A); -//int MORSE_zlaswp_Tile(MORSE_desc_t *A, int K1, int K2, int *IPIV, int INCX); -//int MORSE_zlaswpc_Tile(MORSE_desc_t *A, int K1, int K2, int *IPIV, int INCX); -int MORSE_zlauum_Tile(MORSE_enum uplo, MORSE_desc_t *A); -int MORSE_zplghe_Tile(double bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed ); -int MORSE_zplgsy_Tile(MORSE_Complex64_t bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed ); -int MORSE_zplrnt_Tile(MORSE_desc_t *A, unsigned long long int seed ); -int MORSE_zposv_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B); -int MORSE_zpotrf_Tile(MORSE_enum uplo, MORSE_desc_t *A); -int MORSE_zsytrf_Tile(MORSE_enum uplo, MORSE_desc_t *A); -int MORSE_zpotri_Tile(MORSE_enum uplo, MORSE_desc_t *A); -int MORSE_zpotrimm_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *C); -int MORSE_zpotrs_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B); -int MORSE_zsymm_Tile(MORSE_enum side, MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t beta, MORSE_desc_t *C); -int MORSE_zsyrk_Tile(MORSE_enum uplo, MORSE_enum trans, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_Complex64_t beta, MORSE_desc_t *C); -int MORSE_zsyr2k_Tile(MORSE_enum uplo, MORSE_enum trans, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t beta, MORSE_desc_t *C); -int MORSE_zsysv_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B); -int MORSE_zsytrs_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B); -int MORSE_ztpgqrt_Tile( int L, MORSE_desc_t *V1, MORSE_desc_t *T1, MORSE_desc_t *V2, MORSE_desc_t *T2, MORSE_desc_t *Q1, MORSE_desc_t *Q2 ); -int MORSE_ztpqrt_Tile( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T ); -int MORSE_ztradd_Tile(MORSE_enum uplo, MORSE_enum trans, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_Complex64_t beta, MORSE_desc_t *B); -int MORSE_ztrmm_Tile(MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B); -int MORSE_ztrsm_Tile(MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B); -int MORSE_ztrsmpl_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t *B); -int MORSE_ztrsmrv_Tile(MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B); -int MORSE_ztrtri_Tile(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A); -int MORSE_zunglq_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B); -int MORSE_zungqr_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B); -int MORSE_zunmlq_Tile(MORSE_enum side, MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B); -int MORSE_zunmqr_Tile(MORSE_enum side, MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B); - -/** - * Declarations of math functions (tile layout, asynchronous execution) - alphabetical order - */ -int MORSE_zgeadd_Tile_Async(MORSE_enum trans, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_Complex64_t beta, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zgebrd_Tile_Async(MORSE_desc_t *A, double *D, double *E, MORSE_desc_t *T, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zgecon_Tile_Async(MORSE_enum norm, MORSE_desc_t *A, double anorm, double *rcond, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zpocon_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, double anorm, double *rcond, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgelqf_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgelqs_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgels_Tile_Async(MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgemm_Tile_Async(MORSE_enum transA, MORSE_enum transB, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgeqrf_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgeqrs_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zgesv_Tile_Async(MORSE_desc_t *A, int *IPIV, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgesv_incpiv_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgesv_nopiv_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgesvd_Tile_Async(MORSE_enum jobu, MORSE_enum jobvt, MORSE_desc_t *A, double *S, MORSE_desc_t *T, MORSE_Complex64_t *U, int LDU, MORSE_Complex64_t *VT, int LDVT, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zgetrf_Tile_Async(MORSE_desc_t *A, int *IPIV, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgetrf_incpiv_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgetrf_nopiv_Tile_Async(MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zgetri_Tile_Async(MORSE_desc_t *A, int *IPIV, MORSE_desc_t *W, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zgetrs_Tile_Async(MORSE_enum trans, MORSE_desc_t *A, int *IPIV, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgetrs_incpiv_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgetrs_nopiv_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zhemm_Tile_Async(MORSE_enum side, MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zherk_Tile_Async(MORSE_enum uplo, MORSE_enum trans, double alpha, MORSE_desc_t *A, double beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zher2k_Tile_Async(MORSE_enum uplo, MORSE_enum trans, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, double beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zheev_Tile_Async(MORSE_enum jobz, MORSE_enum uplo, MORSE_desc_t *A, double *W, MORSE_desc_t *T, MORSE_Complex64_t *Q, int LDQ, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zheevd_Tile_Async(MORSE_enum jobz, MORSE_enum uplo, MORSE_desc_t *A, double *W, MORSE_desc_t *T, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zhegv_Tile_Async( MORSE_enum itype, MORSE_enum jobz, MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, double *W, MORSE_desc_t *T, MORSE_desc_t *Q, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zhegvd_Tile_Async(MORSE_enum itype, MORSE_enum jobz, MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, double *W, MORSE_desc_t *T, MORSE_desc_t *Q, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zhegst_Tile_Async(MORSE_enum itype, MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zhetrd_Tile_Async(MORSE_enum jobz, MORSE_enum uplo, MORSE_desc_t *A, double *D, double *E, MORSE_desc_t *T, MORSE_Complex64_t *Q, int LDQ, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zlacpy_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zlange_Tile_Async(MORSE_enum norm, MORSE_desc_t *A, double *value, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zlanhe_Tile_Async(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *value, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zlansy_Tile_Async(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *value, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zlantr_Tile_Async(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, double *value, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zlascal_Tile_Async(MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zlaset_Tile_Async(MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_Complex64_t beta, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zlaswp_Tile_Async(MORSE_desc_t *A, int K1, int K2, int *IPIV, int INCX, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zlaswpc_Tile_Async(MORSE_desc_t *A, int K1, int K2, int *IPIV, int INCX, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zlauum_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zplghe_Tile_Async(double bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); -int MORSE_zplgsy_Tile_Async(MORSE_Complex64_t bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); -int MORSE_zplrnt_Tile_Async(MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); -int MORSE_zposv_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zpotrf_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zsytrf_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zpotri_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zpotrimm_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zpotrs_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zsysv_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zsytrs_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zsymm_Tile_Async(MORSE_enum side, MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zsyrk_Tile_Async(MORSE_enum uplo, MORSE_enum trans, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_Complex64_t beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zsyr2k_Tile_Async(MORSE_enum uplo, MORSE_enum trans, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_ztpgqrt_Tile_Async( int L, MORSE_desc_t *V1, MORSE_desc_t *T1, MORSE_desc_t *V2, MORSE_desc_t *T2, MORSE_desc_t *Q1, MORSE_desc_t *Q2, MORSE_sequence_t *sequence, MORSE_request_t *request ); -int MORSE_ztpqrt_Tile_Async( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T, MORSE_sequence_t *sequence, MORSE_request_t *request ); -int MORSE_ztradd_Tile_Async(MORSE_enum uplo, MORSE_enum trans, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_Complex64_t beta, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_ztrmm_Tile_Async(MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_ztrsm_Tile_Async(MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_ztrsmpl_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_ztrsmrv_Tile_Async(MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, MORSE_Complex64_t alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_ztrtri_Tile_Async(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zunglq_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zungqr_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zunmlq_Tile_Async(MORSE_enum side, MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zunmqr_Tile_Async(MORSE_enum side, MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); - -//int MORSE_zgecfi_Async(int m, int n, MORSE_Complex64_t *A, MORSE_enum f_in, int imb, int inb, MORSE_enum f_out, int omb, int onb, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zgetmi_Async(int m, int n, MORSE_Complex64_t *A, MORSE_enum f_in, int mb, int inb, MORSE_sequence_t *sequence, MORSE_request_t *request); - -/** - * Declarations of libhqr dependent functions. - */ -/** - * Declarations of math functions (LAPACK layout) - alphabetical order - */ -int MORSE_zgels_param(const libhqr_tree_t *qrtree, MORSE_enum trans, int M, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descTS, MORSE_desc_t *descTT, MORSE_Complex64_t *B, int LDB); -int MORSE_zgelqf_param(const libhqr_tree_t *qrtree, int M, int N, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descTS, MORSE_desc_t *descTT); -int MORSE_zgelqs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descTS, MORSE_desc_t *descTT, MORSE_Complex64_t *B, int LDB); -int MORSE_zgeqrf_param(const libhqr_tree_t *qrtree, int M, int N, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descTS, MORSE_desc_t *descTT); -int MORSE_zgeqrs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descTS, MORSE_desc_t *TT, MORSE_Complex64_t *B, int LDB); -int MORSE_zunglq_param(const libhqr_tree_t *qrtree, int M, int N, int K, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descTS, MORSE_desc_t *TT, MORSE_Complex64_t *B, int LDB); -int MORSE_zungqr_param(const libhqr_tree_t *qrtree, int M, int N, int K, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descTS, MORSE_desc_t *descTT, MORSE_Complex64_t *B, int LDB); -int MORSE_zunmlq_param(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_enum trans, int M, int N, int K, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descT, MORSE_desc_t *TT, MORSE_Complex64_t *B, int LDB); -int MORSE_zunmlq_param(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_enum trans, int M, int N, int K, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descT, MORSE_desc_t *TT, MORSE_Complex64_t *B, int LDB); -int MORSE_zunmqr_param(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_enum trans, int M, int N, int K, MORSE_Complex64_t *A, int LDA, MORSE_desc_t *descTS, MORSE_desc_t *TT, MORSE_Complex64_t *B, int LDB); -/** - * Declarations of math functions (tile layout) - alphabetical order - */ -int MORSE_zgels_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B); -int MORSE_zgelqf_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT); -int MORSE_zgelqs_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B); -int MORSE_zgeqrf_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT); -int MORSE_zgeqrs_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B); -int MORSE_zunglq_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B); -int MORSE_zungqr_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B); -int MORSE_zungqr_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B); -int MORSE_zunmlq_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B); -int MORSE_zunmqr_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B); -/** - * Declarations of math functions (tile layout, asynchronous execution) - alphabetical order - */ -int MORSE_zgels_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgelqf_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgelqs_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgeqrf_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zgeqrs_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zunglq_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zungqr_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zunmlq_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); -int MORSE_zunmqr_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *TS, MORSE_desc_t *TT, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); - -/** - * Declarations of workspace allocation functions (tile layout) - alphabetical order - */ -int MORSE_Alloc_Workspace_zgesv_incpiv( int N, MORSE_desc_t **descL, int **IPIV, int p, int q); -int MORSE_Alloc_Workspace_zgetrf_incpiv(int M, int N, MORSE_desc_t **descL, int **IPIV, int p, int q); - -int MORSE_Alloc_Workspace_zgebrd(int M, int N, MORSE_desc_t **descT, int p, int q); -int MORSE_Alloc_Workspace_zgeev( int N, MORSE_desc_t **descT, int p, int q); -int MORSE_Alloc_Workspace_zgehrd(int N, MORSE_desc_t **descT, int p, int q); -int MORSE_Alloc_Workspace_zgelqf(int M, int N, MORSE_desc_t **T, int p, int q); -int MORSE_Alloc_Workspace_zgels( int M, int N, MORSE_desc_t **T, int p, int q); -int MORSE_Alloc_Workspace_zgeqrf(int M, int N, MORSE_desc_t **T, int p, int q); -int MORSE_Alloc_Workspace_zgesvd(int M, int N, MORSE_desc_t **descT, int p, int q); -int MORSE_Alloc_Workspace_zheev( int M, int N, MORSE_desc_t **descT, int p, int q); -int MORSE_Alloc_Workspace_zheevd( int M, int N, MORSE_desc_t **descT, int p, int q); -int MORSE_Alloc_Workspace_zhegv( int M, int N, MORSE_desc_t **descT, int p, int q); -int MORSE_Alloc_Workspace_zhegvd( int M, int N, MORSE_desc_t **descT, int p, int q); -int MORSE_Alloc_Workspace_zhetrd(int M, int N, MORSE_desc_t **descT, int p, int q); - -/** - * Declarations of workspace allocation functions (tile layout, asynchronous execution) - alphabetical order - */ -int MORSE_Alloc_Workspace_zgetri_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *W); - -/* Warning: Those functions are deprecated */ -int MORSE_Alloc_Workspace_zgelqf_Tile(int M, int N, MORSE_desc_t **descT, int p, int q); -int MORSE_Alloc_Workspace_zgels_Tile( int M, int N, MORSE_desc_t **descT, int p, int q); -int MORSE_Alloc_Workspace_zgeqrf_Tile(int M, int N, MORSE_desc_t **descT, int p, int q); -int MORSE_Alloc_Workspace_zgesv_incpiv_Tile (int N, MORSE_desc_t **descL, int **IPIV, int p, int q); -int MORSE_Alloc_Workspace_zgetrf_incpiv_Tile(int N, MORSE_desc_t **descL, int **IPIV, int p, int q); - -/** - * Auxiliary function prototypes - */ -int MORSE_zLapack_to_Tile(MORSE_Complex64_t *Af77, int LDA, MORSE_desc_t *A); -int MORSE_zTile_to_Lapack(MORSE_desc_t *A, MORSE_Complex64_t *Af77, int LDA); - -/** - * User Builder function prototypes - */ -int MORSE_zbuild(MORSE_enum uplo, int M, int N, MORSE_Complex64_t *A, int LDA, void *user_data, void* user_build_callback); -int MORSE_zbuild_Tile(MORSE_enum uplo, MORSE_desc_t *A, void *user_data, void* user_build_callback ); -int MORSE_zbuild_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, void *user_data, void* user_build_callback, MORSE_sequence_t *sequence, MORSE_request_t *request); - -END_C_DECLS - -#endif diff --git a/include/chameleon/morse_zc.h b/include/chameleon/morse_zc.h deleted file mode 100644 index c1ebf5e6ca902efd83437538d5761450b408cd8b..0000000000000000000000000000000000000000 --- a/include/chameleon/morse_zc.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - * - * @file morse_zc.h - * - * @copyright 2009-2014 The University of Tennessee and The University of - * Tennessee Research Foundation. All rights reserved. - * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, - * Univ. Bordeaux. All rights reserved. - * - *** - * - * @brief Chameleon mixed precision wrappers header - * - * @version 1.0.0 - * @comment This file has been automatically generated - * from Plasma 2.5.0 for MORSE 1.0.0 - * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 - * @precisions mixed zc -> ds - * - */ -#ifndef _MORSE_ZC_H_ -#define _MORSE_ZC_H_ - -BEGIN_C_DECLS - -/** - * Declarations of math functions (LAPACK layout) - alphabetical order - */ -//int MORSE_zcgesv(int N, int NRHS, MORSE_Complex64_t *A, int LDA, int * IPIV, MORSE_Complex64_t *B, int LDB, MORSE_Complex64_t *X, int LDX, int *ITER); -//int MORSE_zcposv(MORSE_enum uplo, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB, MORSE_Complex64_t *X, int LDX, int *ITER); -//int MORSE_zcgels(MORSE_enum trans, int M, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB, MORSE_Complex64_t *X, int LDX, int *ITER); -//int MORSE_zcungesv(MORSE_enum trans, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB, MORSE_Complex64_t *X, int LDX, int *ITER); - -/** - * Declarations of math functions (tile layout) - alphabetical order - */ -//int MORSE_zcgesv_Tile(MORSE_desc_t *A, int *IPIV, MORSE_desc_t *B, MORSE_desc_t *X, int *ITER); -//int MORSE_zcposv_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *X, int *ITER); -/* int MORSE_zcgels_Tile(MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_desc_t *X, int *ITER); */ -//int MORSE_zcungesv_Tile(MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_desc_t *X, int *ITER); - -/** - * Declarations of math functions (tile layout, asynchronous execution) - alphabetical order - */ -//int MORSE_zcgesv_Tile_Async(MORSE_desc_t *A, int *IPIV, MORSE_desc_t *B, MORSE_desc_t *X, int *ITER, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zcposv_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *X, int *ITER, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zcgels_Tile_Async(MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_desc_t *X, int *ITER, MORSE_sequence_t *sequence, MORSE_request_t *request); -//int MORSE_zcungesv_Tile_Async(MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_desc_t *X, int *ITER, MORSE_sequence_t *sequence, MORSE_request_t *request); - -END_C_DECLS - -#endif diff --git a/include/chameleon/morse_runtime.h b/include/chameleon/runtime.h similarity index 71% rename from include/chameleon/morse_runtime.h rename to include/chameleon/runtime.h index e0f1092f609b769b644340b5d104ce4cff806b1c..982e29be03f1dc842c5e7ee786f58ff7891ab700 100644 --- a/include/chameleon/morse_runtime.h +++ b/include/chameleon/runtime.h @@ -1,6 +1,6 @@ /** * - * @file morse_runtime.h + * @file runtime.h * * @copyright 2009-2014 The University of Tennessee and The University of * Tennessee Research Foundation. All rights reserved. @@ -9,7 +9,7 @@ * *** * - * @brief Chameleon runtimes API + * @brief The common runtimes API * @version 1.0.0 * @author Mathieu Faverge * @author Cedric Augonnet @@ -17,14 +17,24 @@ * @date 2011-06-01 * */ -#ifndef _MORSE_RUNTIME_H_ -#define _MORSE_RUNTIME_H_ +#ifndef _runtime_h_ +#define _runtime_h_ #include "chameleon/chameleon_config.h" -#include "chameleon/morse_struct.h" +#include "chameleon/chameleon_constants.h" +#include "chameleon/runtime_struct.h" BEGIN_C_DECLS +/** + * @brief Ids of the runtime supported by the RUNTIME API + */ +typedef enum runtime_id_e { + RUNTIME_SCHED_QUARK, /**< Quark runtime */ + RUNTIME_SCHED_PARSEC, /**< PaRSEC runtime */ + RUNTIME_SCHED_STARPU, /**< StarPU runtime */ +} RUNTIME_id_t; + /** * @name RUNTIME Context functions * @{ @@ -36,21 +46,21 @@ BEGIN_C_DECLS * @brief Create the runtime specific options in the context before starting it * * @param[in,out] ctxt - * The Chameleon context to initialize for the runtime. + * The runtime context to initialize for the runtime. */ void -RUNTIME_context_create( MORSE_context_t *ctxt ); +RUNTIME_context_create( RUNTIME_context_t *ctxt ); /** * @brief Destroy the specific options in the context after this last one has * been stop. * * @param[in,out] ctxt - * The Chameleon context in which the runtime specific options must + * The runtime context in which the runtime specific options must * be destroyed */ void -RUNTIME_context_destroy( MORSE_context_t *ctxt ); +RUNTIME_context_destroy( RUNTIME_context_t *ctxt ); /** * @brief Enable a global option of the runtime. @@ -84,7 +94,7 @@ RUNTIME_disable( MORSE_enum option ); * @brief Initialize the scheduler with the given parameters * * @param[in,out] ctxt - * The Chameleon context in which to initialize the runtime support. + * The runtime context in which to initialize the runtime support. * * @param[in] ncpus * Defines the total number of cores given to the runtime per @@ -108,7 +118,7 @@ RUNTIME_disable( MORSE_enum option ); * */ int -RUNTIME_init( MORSE_context_t *ctxt, +RUNTIME_init( RUNTIME_context_t *ctxt, int ncpus, int ncudas, int nthreads_per_worker ); @@ -117,90 +127,90 @@ RUNTIME_init( MORSE_context_t *ctxt, * @brief Finalize the scheduler used for the computations. * * @param[in,out] ctxt - * The Chameleon context for which the runtime system must be shut down. + * The runtime context for which the runtime system must be shut down. */ void -RUNTIME_finalize( MORSE_context_t *ctxt ); +RUNTIME_finalize( RUNTIME_context_t *ctxt ); /** * @brief Suspend the processing of new tasks submitted to the runtime system. * * @param[in] ctxt - * The Chameleon context for which the suspension must be made. + * The runtime context for which the suspension must be made. */ void -RUNTIME_pause( MORSE_context_t *ctxt ); +RUNTIME_pause( RUNTIME_context_t *ctxt ); /** * @brief Resume the processing of new tasks submitted to the runtime system. * * @param[in] ctxt - * The Chameleon context for which the execution must be resumed. + * The runtime context for which the execution must be resumed. */ void -RUNTIME_resume( MORSE_context_t *ctxt ); +RUNTIME_resume( RUNTIME_context_t *ctxt ); /** * @brief Wait for completion of all tasks submitted to the runtime. * * @param[in] ctxt - * The Chameleon context in which the task completion is performed. + * The runtime context in which the task completion is performed. */ void -RUNTIME_barrier( MORSE_context_t *ctxt ); +RUNTIME_barrier( RUNTIME_context_t *ctxt ); /** * @brief Show the progress of the computations when enabled. * * @param[in] ctxt - * The Chameleon context for which the context needs to be printed. + * The runtime context for which the context needs to be printed. */ void -RUNTIME_progress( MORSE_context_t *ctxt ); +RUNTIME_progress( RUNTIME_context_t *ctxt ); /** * @brief Get the rank of the current worker for the runtime. * * @param[in] ctxt - * The Chameleon context for which the thread rank is asked. + * The runtime context for which the thread rank is asked. * * @retval The rank of the current thread in the runtime. */ int -RUNTIME_thread_rank( MORSE_context_t *ctxt ); +RUNTIME_thread_rank( RUNTIME_context_t *ctxt ); /** * @brief Get the number of CPU workers of the runtime. * * @param[in] ctxt - * The Chameleon context for which the number of workers is requested + * The runtime context for which the number of workers is requested * * @retval The number of threads currently used by the runtime. */ int -RUNTIME_thread_size( MORSE_context_t *ctxt ); +RUNTIME_thread_size( RUNTIME_context_t *ctxt ); /** * @brief Get the MPI comm rank of the current process related to the runtime. * * @param[in] ctxt - * The Chameleon context for which the rank is asked. + * The runtime context for which the rank is asked. * * @retval The rank of the process in the communicator known by the runtime. */ int -RUNTIME_comm_rank( MORSE_context_t *ctxt ); +RUNTIME_comm_rank( RUNTIME_context_t *ctxt ); /** * @brief Get the MPI comm size related to the runtime. * * @param[in] ctxt - * The Chameleon context for which the communicator size is asked. + * The runtime context for which the communicator size is asked. * * @retval The size of the communicator known by the runtime. */ int -RUNTIME_comm_size( MORSE_context_t *ctxt ); +RUNTIME_comm_size( RUNTIME_context_t *ctxt ); /** * @brief Set the data tags bounds based on runtime tags limit. @@ -231,24 +241,24 @@ RUNTIME_comm_set_tag_sizes( int user_tag_width, * @brief Create a sequence structure associated to a given context. * * @param[in] ctxt - * The Chameleon context in which the sequence is created. + * The runtime context in which the sequence is created. * * @param[in,out] sequence - * On entry the allocated Chameleon sequence structure, and on exit + * On entry the allocated runtime sequence structure, and on exit * the scheduler specifics for the sequence have been initialized. * * @retval MORSE_SUCCESS on success. * @retval MORSE_ERR_OUT_OF_RESOURCES, if the sequence could not be created. */ int -RUNTIME_sequence_create( MORSE_context_t *ctxt, - MORSE_sequence_t *sequence ); +RUNTIME_sequence_create( RUNTIME_context_t *ctxt, + RUNTIME_sequence_t *sequence ); /** * @brief Destroy the sequence structure. * * @param[in] ctxt - * The Chameleon context to which the sequence belongs. + * The runtime context to which the sequence belongs. * * @param[in,out] sequence * On entry the sequence structure. @@ -258,14 +268,14 @@ RUNTIME_sequence_create( MORSE_context_t *ctxt, * @retval MORSE_SUCCESS on success. */ int -RUNTIME_sequence_destroy( MORSE_context_t *ctxt, - MORSE_sequence_t *sequence); +RUNTIME_sequence_destroy( RUNTIME_context_t *ctxt, + RUNTIME_sequence_t *sequence); /** * @brief Wait for completion of all tasks in the given sequence. * * @param[in] ctxt - * The Chameleon context to which the sequence belongs. + * The runtime context to which the sequence belongs. * * @param[in] sequence * The sequence that gathers a set of tasks to complete. @@ -274,14 +284,14 @@ RUNTIME_sequence_destroy( MORSE_context_t *ctxt, * @retval The algorithm return code on failure. */ int -RUNTIME_sequence_wait( MORSE_context_t *ctxt, - MORSE_sequence_t *sequence ); +RUNTIME_sequence_wait( RUNTIME_context_t *ctxt, + RUNTIME_sequence_t *sequence ); /** * @brief Cancel all remaining tasks in the given sequence. * * @param[in] ctxt - * The Chameleon context to which the sequence belongs. + * The runtime context to which the sequence belongs. * * @param[in,out] sequence * The sequence that gathers the set of tasks to cancel. @@ -297,9 +307,9 @@ RUNTIME_sequence_wait( MORSE_context_t *ctxt, * above. */ void -RUNTIME_sequence_flush( MORSE_context_t *ctxt, - MORSE_sequence_t *sequence, - MORSE_request_t *request, +RUNTIME_sequence_flush( RUNTIME_context_t *ctxt, + RUNTIME_sequence_t *sequence, + RUNTIME_request_t *request, int status ); /** @@ -403,7 +413,7 @@ RUNTIME_desc_release( const MORSE_desc_t *desc ); */ void RUNTIME_desc_flush( const MORSE_desc_t *desc, - const MORSE_sequence_t *sequence ); + const RUNTIME_sequence_t *sequence ); /** * @brief Flush all data submitted to the runtime systems from the distributed @@ -435,7 +445,7 @@ RUNTIME_flush( ); * The column coordinate of the piece of data in the matrix */ void -RUNTIME_data_flush( const MORSE_sequence_t *sequence, +RUNTIME_data_flush( const RUNTIME_sequence_t *sequence, const MORSE_desc_t *A, int Am, int An ); /** @@ -461,11 +471,11 @@ RUNTIME_data_flush( const MORSE_sequence_t *sequence, */ #if defined(CHAMELEON_USE_MIGRATE) void -RUNTIME_data_migrate( const MORSE_sequence_t *sequence, +RUNTIME_data_migrate( const RUNTIME_sequence_t *sequence, const MORSE_desc_t *A, int Am, int An, int new_rank ); #else static inline void -RUNTIME_data_migrate( const MORSE_sequence_t *sequence, +RUNTIME_data_migrate( const RUNTIME_sequence_t *sequence, const MORSE_desc_t *A, int Am, int An, int new_rank ) { (void)sequence; (void)A; (void)Am; (void)An; (void)new_rank; } @@ -495,12 +505,74 @@ RUNTIME_data_getaddr( const MORSE_desc_t *A, int Am, int An ); * @name RUNTIME Insert task options management * @{ */ -void RUNTIME_options_init (MORSE_option_t*, MORSE_context_t*, MORSE_sequence_t*, MORSE_request_t*); -void RUNTIME_options_finalize (MORSE_option_t*, MORSE_context_t *); -int RUNTIME_options_ws_alloc (MORSE_option_t*, size_t, size_t); -int RUNTIME_options_ws_free (MORSE_option_t*); -/* int RUNTIME_options_ws_gethost (MORSE_option_t*); */ -/* int RUNTIME_options_ws_getdevice (MORSE_option_t*); */ + +/** + * @brief Initialize the runtime option structure + * + * @param[in,out] options + * The options structure that needs to be initialized + * + * @param[in] context + * The runtime context in which to initialize the runtime support. + * + * @param[in] sequence + * The sequence structure to associate in the options. + * + * @param[in] request + * The request structure to associate in the options. + * + */ +void +RUNTIME_options_init( RUNTIME_option_t *options, + RUNTIME_context_t *context, + RUNTIME_sequence_t *sequence, + RUNTIME_request_t *request ); + +/** + * @brief Finalize the runtime options structure + * + * @param[in,out] options + * The options structure to finalize + * + * @param[in] context + * The runtime context in which to options structure has been + * initialized. + * + */ +void +RUNTIME_options_finalize( RUNTIME_option_t *options, + RUNTIME_context_t *context ); + +/** + * @brief Declare and initialize the workspaces for the given options structure + * + * @param[in,out] options + * The options structure in which to initialize the workspaces + * + * @param[in] wsize + * The worker workspace size required. This workspace will be + * allocated on the device that runs the kernel. + * + * @param[in] hsize + * The host workspace size required. This workspace will always be + * allocated on the host and will be used by hybrid CPU/GPU kernels. + * + */ +int +RUNTIME_options_ws_alloc( RUNTIME_option_t *options, + size_t wsize, size_t hsize ); + +/** + * @brief Submit the release of the workspaces associated to the options structure. + * + * @warning With some runtime, this call might have to call a synchronization. + * + * @param[in,out] options + * The options structure for which to workspcaes will be released + * + */ +int +RUNTIME_options_ws_free( RUNTIME_option_t *options ); /** * @} @@ -539,8 +611,8 @@ void RUNTIME_schedprofile_display (); void RUNTIME_kernelprofile_display(); double RUNTIME_get_time(); -void RUNTIME_iteration_push (MORSE_context_t*, unsigned long iteration); -void RUNTIME_iteration_pop (MORSE_context_t*); +void RUNTIME_iteration_push (RUNTIME_context_t*, unsigned long iteration); +void RUNTIME_iteration_pop (RUNTIME_context_t*); void RUNTIME_start_profiling(); void RUNTIME_stop_profiling(); @@ -563,4 +635,4 @@ void RUNTIME_sdisplay_oneprofile (MORSE_kernel_t); END_C_DECLS -#endif /* _MORSE_RUNTIME_H_ */ +#endif /* _runtime_h_ */