blob: 0e796541e07f72997ffb1cab304cbf032e268dcd [file]
// SPDX-FileCopyrightText: The Eigen Authors
// SPDX-License-Identifier: MPL-2.0
#ifndef EIGEN_MISC_BLAS_H
#define EIGEN_MISC_BLAS_H
extern "C" {
/* EIGEN_BLAS_SYM applies EIGEN_BLAS_SYMBOL_SUFFIX; both come from Core/util/MKL_support.h, this header's only
* includer. The declarations here must stay in step with the BLAS call sites under Core/products.
*/
#define BLASFUNC(FUNC) EIGEN_BLAS_SYM(FUNC)
/* Level 1 routines */
void BLASFUNC(saxpy)(const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *, float *,
const EIGEN_BLAS_INT *);
void BLASFUNC(daxpy)(const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *, double *,
const EIGEN_BLAS_INT *);
void BLASFUNC(caxpy)(const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *, float *,
const EIGEN_BLAS_INT *);
void BLASFUNC(zaxpy)(const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *, double *,
const EIGEN_BLAS_INT *);
/* Level 2 routines */
void BLASFUNC(sgemv)(const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const float *, const float *,
const EIGEN_BLAS_INT *, const float *, const EIGEN_BLAS_INT *, const float *, float *,
const EIGEN_BLAS_INT *);
void BLASFUNC(dgemv)(const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const double *, const double *,
const EIGEN_BLAS_INT *, const double *, const EIGEN_BLAS_INT *, const double *, double *,
const EIGEN_BLAS_INT *);
void BLASFUNC(cgemv)(const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const float *, const float *,
const EIGEN_BLAS_INT *, const float *, const EIGEN_BLAS_INT *, const float *, float *,
const EIGEN_BLAS_INT *);
void BLASFUNC(zgemv)(const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const double *, const double *,
const EIGEN_BLAS_INT *, const double *, const EIGEN_BLAS_INT *, const double *, double *,
const EIGEN_BLAS_INT *);
void BLASFUNC(strmv)(const char *, const char *, const char *, const EIGEN_BLAS_INT *, const float *,
const EIGEN_BLAS_INT *, float *, const EIGEN_BLAS_INT *);
void BLASFUNC(dtrmv)(const char *, const char *, const char *, const EIGEN_BLAS_INT *, const double *,
const EIGEN_BLAS_INT *, double *, const EIGEN_BLAS_INT *);
void BLASFUNC(ctrmv)(const char *, const char *, const char *, const EIGEN_BLAS_INT *, const float *,
const EIGEN_BLAS_INT *, float *, const EIGEN_BLAS_INT *);
void BLASFUNC(ztrmv)(const char *, const char *, const char *, const EIGEN_BLAS_INT *, const double *,
const EIGEN_BLAS_INT *, double *, const EIGEN_BLAS_INT *);
void BLASFUNC(ssymv)(const char *, const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *,
const float *, const EIGEN_BLAS_INT *, const float *, float *, const EIGEN_BLAS_INT *);
void BLASFUNC(dsymv)(const char *, const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *,
const double *, const EIGEN_BLAS_INT *, const double *, double *, const EIGEN_BLAS_INT *);
void BLASFUNC(chemv)(const char *, const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *,
const float *, const EIGEN_BLAS_INT *, const float *, float *, const EIGEN_BLAS_INT *);
void BLASFUNC(zhemv)(const char *, const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *,
const double *, const EIGEN_BLAS_INT *, const double *, double *, const EIGEN_BLAS_INT *);
/* Level 3 routines */
void BLASFUNC(sgemm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *,
const float *, const float *, const EIGEN_BLAS_INT *, const float *, const EIGEN_BLAS_INT *,
const float *, float *, const EIGEN_BLAS_INT *);
void BLASFUNC(dgemm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *,
const double *, const double *, const EIGEN_BLAS_INT *, const double *, const EIGEN_BLAS_INT *,
const double *, double *, const EIGEN_BLAS_INT *);
void BLASFUNC(cgemm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *,
const float *, const float *, const EIGEN_BLAS_INT *, const float *, const EIGEN_BLAS_INT *,
const float *, float *, const EIGEN_BLAS_INT *);
void BLASFUNC(zgemm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *,
const double *, const double *, const EIGEN_BLAS_INT *, const double *, const EIGEN_BLAS_INT *,
const double *, double *, const EIGEN_BLAS_INT *);
void BLASFUNC(strsm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *, float *,
const EIGEN_BLAS_INT *);
void BLASFUNC(dtrsm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *, double *,
const EIGEN_BLAS_INT *);
void BLASFUNC(ctrsm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *, float *,
const EIGEN_BLAS_INT *);
void BLASFUNC(ztrsm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *, double *,
const EIGEN_BLAS_INT *);
void BLASFUNC(strmm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *, float *,
const EIGEN_BLAS_INT *);
void BLASFUNC(dtrmm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *, double *,
const EIGEN_BLAS_INT *);
void BLASFUNC(ctrmm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *, float *,
const EIGEN_BLAS_INT *);
void BLASFUNC(ztrmm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *, double *,
const EIGEN_BLAS_INT *);
void BLASFUNC(ssymm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const float *,
const float *, const EIGEN_BLAS_INT *, const float *, const EIGEN_BLAS_INT *, const float *,
float *, const EIGEN_BLAS_INT *);
void BLASFUNC(dsymm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const double *,
const double *, const EIGEN_BLAS_INT *, const double *, const EIGEN_BLAS_INT *, const double *,
double *, const EIGEN_BLAS_INT *);
void BLASFUNC(ssyrk)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const float *,
const float *, const EIGEN_BLAS_INT *, const float *, float *, const EIGEN_BLAS_INT *);
void BLASFUNC(dsyrk)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const double *,
const double *, const EIGEN_BLAS_INT *, const double *, double *, const EIGEN_BLAS_INT *);
void BLASFUNC(chemm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const float *,
const float *, const EIGEN_BLAS_INT *, const float *, const EIGEN_BLAS_INT *, const float *,
float *, const EIGEN_BLAS_INT *);
void BLASFUNC(zhemm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const double *,
const double *, const EIGEN_BLAS_INT *, const double *, const EIGEN_BLAS_INT *, const double *,
double *, const EIGEN_BLAS_INT *);
void BLASFUNC(cherk)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const float *,
const float *, const EIGEN_BLAS_INT *, const float *, float *, const EIGEN_BLAS_INT *);
void BLASFUNC(zherk)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const double *,
const double *, const EIGEN_BLAS_INT *, const double *, double *, const EIGEN_BLAS_INT *);
#undef BLASFUNC
}
#endif