/* ---------------------------------------------------------------------
*
* -- Automatically Tuned Linear Algebra Software (ATLAS)
* (C) Copyright 2000 All Rights Reserved
*
* -- ATLAS routine -- Version 3.2 -- December 25, 2000
*
* Author : Antoine P. Petitet
* Originally developed at the University of Tennessee,
* Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA.
*
* ---------------------------------------------------------------------
*
* -- Copyright notice and Licensing terms:
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions, and the following disclaimer in
* the documentation and/or other materials provided with the distri-
* bution.
* 3. The name of the University, the ATLAS group, or the names of its
* contributors may not be used to endorse or promote products deri-
* ved from this software without specific written permission.
*
* -- Disclaimer:
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
* CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEO-
* RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN-
* CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* ---------------------------------------------------------------------
*/
#ifndef ATLAS_PTLEVEL3_H
#define ATLAS_PTLEVEL3_H
/*
* =====================================================================
* Include files
* =====================================================================
*/
#include "atlas_enum.h"
#include "atlas_pthreads.h"
/*
* =====================================================================
* Prototypes for single precision real Level 3 multi-threaded ATLAS
* BLAS routines.
* =====================================================================
*/
void ATL_sptgeadd
( const int, const int, const float, const float *,
const int, const float, float *, const int );
void ATL_sptgezero
( const int, const int, float *, const int );
void ATL_sptgescal
( const int, const int, const float, float *,
const int );
void ATL_spttrscal
( const enum ATLAS_UPLO, const int, const int,
const float, float *, const int );
void ATL_sptgemm
( const enum ATLAS_TRANS, const enum ATLAS_TRANS,
const int, const int, const int, const float,
const float *, const int, const float *, const int,
const float, float *, const int );
void ATL_sptsymm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const int, const int, const float, const float *,
const int, const float *, const int, const float,
float *, const int );
void ATL_sptsyrk
( const enum ATLAS_UPLO, const enum ATLAS_TRANS,
const int, const int, const float, const float *,
const int, const float, float *, const int );
void ATL_sptsyr2k
( const enum ATLAS_UPLO, const enum ATLAS_TRANS,
const int, const int, const float, const float *,
const int, const float *, const int, const float,
float *, const int );
void ATL_spttrmm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const enum ATLAS_TRANS, const enum ATLAS_DIAG,
const int, const int, const float, const float *,
const int, float *, const int );
void ATL_spttrsm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const enum ATLAS_TRANS, const enum ATLAS_DIAG,
const int, const int, const float, const float *,
const int, float *, const int );
/*
* =====================================================================
* Prototypes for double precision real Level 3 multi-threaded ATLAS
* BLAS routines.
* =====================================================================
*/
void ATL_dptgeadd
( const int, const int, const double, const double *,
const int, const double, double *, const int );
void ATL_dptgezero
( const int, const int, double *, const int );
void ATL_dptgescal
( const int, const int, const double, double *,
const int );
void ATL_dpttrscal
( const enum ATLAS_UPLO, const int, const int,
const double, double *, const int );
void ATL_dptgemm
( const enum ATLAS_TRANS, const enum ATLAS_TRANS,
const int, const int, const int, const double,
const double *, const int, const double *, const int,
const double, double *, const int );
void ATL_dptsymm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const int, const int, const double, const double *,
const int, const double *, const int, const double,
double *, const int );
void ATL_dptsyrk
( const enum ATLAS_UPLO, const enum ATLAS_TRANS,
const int, const int, const double, const double *,
const int, const double, double *, const int );
void ATL_dptsyr2k
( const enum ATLAS_UPLO, const enum ATLAS_TRANS,
const int, const int, const double, const double *,
const int, const double *, const int, const double,
double *, const int );
void ATL_dpttrmm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const enum ATLAS_TRANS, const enum ATLAS_DIAG,
const int, const int, const double, const double *,
const int, double *, const int );
void ATL_dpttrsm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const enum ATLAS_TRANS, const enum ATLAS_DIAG,
const int, const int, const double, const double *,
const int, double *, const int );
/*
* =====================================================================
* Prototypes for single precision complex Level 3 multi-threaded ATLAS
* BLAS routines.
* =====================================================================
*/
void ATL_cptgeadd
( const int, const int, const float *, const float *,
const int, const float *, float *, const int );
void ATL_cptgezero
( const int, const int, float *, const int );
void ATL_cptgescal
( const int, const int, const float *, float *,
const int );
void ATL_cpttrscal
( const enum ATLAS_UPLO, const int, const int,
const float *, float *, const int );
void ATL_cpthescal
( const enum ATLAS_UPLO, const int, const int,
const float, float *, const int );
void ATL_cptgemm
( const enum ATLAS_TRANS, const enum ATLAS_TRANS,
const int, const int, const int, const float *,
const float *, const int, const float *, const int,
const float *, float *, const int );
void ATL_cptsymm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const int, const int, const float *, const float *,
const int, const float *, const int, const float *,
float *, const int );
void ATL_cptsyrk
( const enum ATLAS_UPLO, const enum ATLAS_TRANS,
const int, const int, const float *, const float *,
const int, const float *, float *, const int );
void ATL_cptsyr2k
( const enum ATLAS_UPLO, const enum ATLAS_TRANS,
const int, const int, const float *, const float *,
const int, const float *, const int, const float *,
float *, const int );
void ATL_cpttrmm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const enum ATLAS_TRANS, const enum ATLAS_DIAG,
const int, const int, const float *, const float *,
const int, float *, const int );
void ATL_cpttrsm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const enum ATLAS_TRANS, const enum ATLAS_DIAG,
const int, const int, const float *, const float *,
const int, float *, const int );
/*
* =====================================================================
* Prototypes for double precision complex Level 3 multi-threaded ATLAS
* BLAS routines.
* =====================================================================
*/
void ATL_zptgeadd
( const int, const int, const double *, const double *,
const int, const double *, double *, const int );
void ATL_zptgezero
( const int, const int, double *, const int );
void ATL_zptgescal
( const int, const int, const double *, double *,
const int );
void ATL_zpttrscal
( const enum ATLAS_UPLO, const int, const int,
const double *, double *, const int );
void ATL_zpthescal
( const enum ATLAS_UPLO, const int, const int,
const double, double *, const int );
void ATL_zptgemm
( const enum ATLAS_TRANS, const enum ATLAS_TRANS,
const int, const int, const int, const double *,
const double *, const int, const double *, const int,
const double *, double *, const int );
void ATL_zptsymm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const int, const int, const double *, const double *,
const int, const double *, const int, const double *,
double *, const int );
void ATL_zptsyrk
( const enum ATLAS_UPLO, const enum ATLAS_TRANS,
const int, const int, const double *, const double *,
const int, const double *, double *, const int );
void ATL_zptsyr2k
( const enum ATLAS_UPLO, const enum ATLAS_TRANS,
const int, const int, const double *, const double *,
const int, const double *, const int, const double *,
double *, const int );
void ATL_zpttrmm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const enum ATLAS_TRANS, const enum ATLAS_DIAG,
const int, const int, const double *, const double *,
const int, double *, const int );
void ATL_zpttrsm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const enum ATLAS_TRANS, const enum ATLAS_DIAG,
const int, const int, const double *, const double *,
const int, double *, const int );
void ATL_cpthemm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const int, const int, const float *, const float *,
const int, const float *, const int, const float *,
float *, const int );
void ATL_cptherk
( const enum ATLAS_UPLO, const enum ATLAS_TRANS,
const int, const int, const float, const float *,
const int, const float, float *, const int );
void ATL_cpther2k
( const enum ATLAS_UPLO, const enum ATLAS_TRANS,
const int, const int, const float *, const float *,
const int, const float *, const int, const float,
float *, const int );
void ATL_zpthemm
( const enum ATLAS_SIDE, const enum ATLAS_UPLO,
const int, const int, const double *, const double *,
const int, const double *, const int, const double *,
double *, const int );
void ATL_zptherk
( const enum ATLAS_UPLO, const enum ATLAS_TRANS,
const int, const int, const double, const double *,
const int, const double, double *, const int );
void ATL_zpther2k
( const enum ATLAS_UPLO, const enum ATLAS_TRANS,
const int, const int, const double *, const double *,
const int, const double *, const int, const double,
double *, const int );
#endif
/*
* End of atlas_ptlevel3.h
*/