core_zsymm.c 3.33 KB
 PRUVOST Florent committed Nov 16, 2014 1 /**  Mathieu Faverge committed Feb 06, 2018 2 3  * * @file core_zsymm.c  PRUVOST Florent committed Nov 16, 2014 4  *  Mathieu Faverge committed Feb 05, 2018 5 6  * @copyright 2009-2014 The University of Tennessee and The University of * Tennessee Research Foundation. All rights reserved.  Mathieu Faverge committed Oct 17, 2018 7  * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,  Mathieu Faverge committed Feb 05, 2018 8  * Univ. Bordeaux. All rights reserved.  PRUVOST Florent committed Nov 16, 2014 9  *  Mathieu Faverge committed Feb 06, 2018 10  ***  PRUVOST Florent committed Nov 16, 2014 11  *  Mathieu Faverge committed Feb 06, 2018 12  * @brief Chameleon core_zsymm CPU kernel  PRUVOST Florent committed Nov 16, 2014 13  *  Mathieu Faverge committed Feb 06, 2018 14  * @version 1.0.0  PRUVOST Florent committed Nov 16, 2014 15  * @comment This file has been automatically generated  Mathieu Faverge committed Jul 12, 2018 16  * from Plasma 2.5.0 for CHAMELEON 1.0.0  PRUVOST Florent committed Nov 16, 2014 17 18 19 20 21 22 23 24  * @author Hatem Ltaief * @author Jakub Kurzak * @author Mathieu Faverge * @author Emmanuel Agullo * @author Cedric Castagnede * @date 2010-11-15 * @precisions normal z -> c d s *  Mathieu Faverge committed Feb 06, 2018 25  */  Mathieu Faverge committed Sep 13, 2017 26 #include "coreblas.h"  PRUVOST Florent committed Nov 16, 2014 27   Mathieu Faverge committed Feb 06, 2018 28 /**  PRUVOST Florent committed Oct 24, 2018 29  *******************************************************************************  PRUVOST Florent committed Nov 16, 2014 30  *  Mathieu Faverge committed Jul 12, 2018 31  * @ingroup CORE_CHAMELEON_Complex64_t  PRUVOST Florent committed Nov 16, 2014 32  *  PRUVOST Florent committed Oct 24, 2018 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90  * Performs one of the matrix-matrix operations * * \f[ C = \alpha \times A \times B + \beta \times C \f] * or * \f[ C = \alpha \times B \times A + \beta \times C \f] * * where alpha and beta are scalars, A is a symmetric matrix and B and * C are m-by-n matrices. * ******************************************************************************* * * @param[in] side * Specifies whether the symmetric matrix A appears on the * left or right in the operation as follows: * - ChamLeft: \f[ C = \alpha \times A \times B + \beta \times C \f] * - ChamRight: \f[ C = \alpha \times B \times A + \beta \times C \f] * * @param[in] uplo * Specifies whether the upper or lower triangular part of * the symmetric matrix A is to be referenced as follows: * - ChamLower: Only the lower triangular part of the * symmetric matrix A is to be referenced. * - ChamUpper: Only the upper triangular part of the * symmetric matrix A is to be referenced. * * @param[in] M * The number of rows of the matrix C. m >= 0. * * @param[in] N * The number of columns of the matrix C. n >= 0. * * @param[in] alpha * The scalar alpha. * * @param[in] A * A is an lda-by-ka matrix, where ka is m when side = ChamLeft, * and is n otherwise. Only the uplo triangular part is referenced. * * @param[in] LDA * The leading dimension of the array A. lda >= max(1,ka). * * @param[in] B * B is an ldb-by-n matrix, where the leading m-by-n part of * the array B must contain the matrix B. * * @param[in] LDB * The leading dimension of the array B. ldb >= max(1,m). * * @param[in] beta * The scalar beta. * * @param[in,out] C * C is an ldc-by-n matrix. * On exit, the array is overwritten by the m-by-n updated matrix. * * @param[in] LDC * The leading dimension of the array C. ldc >= max(1,m). *  Mathieu Faverge committed Feb 06, 2018 91  */  Mathieu Faverge committed Jul 12, 2018 92 void CORE_zsymm(cham_side_t side, cham_uplo_t uplo,  PRUVOST Florent committed Nov 16, 2014 93  int M, int N,  Mathieu Faverge committed Jul 12, 2018 94 95 96  CHAMELEON_Complex64_t alpha, const CHAMELEON_Complex64_t *A, int LDA, const CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC)  PRUVOST Florent committed Nov 16, 2014 97 98 99 100 101 102 103 104 105 106 107 { cblas_zsymm( CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, M, N, CBLAS_SADDR(alpha), A, LDA, B, LDB, CBLAS_SADDR(beta), C, LDC); }