From 9b64d2fcf2d1539fed034c8897df1a38738cdfe4 Mon Sep 17 00:00:00 2001 From: mattip Date: Mon, 22 Dec 2025 17:09:58 +0200 Subject: [PATCH 1/8] add visibility=default to exported functions, visibility=hidden to most assembler --- common.h | 23 +++++++++++++++++++ common_loongarch64.h | 8 +++++++ common_mips.h | 6 +++++ common_mips64.h | 12 ++++++++++ common_power.h | 29 ++++++++++++++++++++++++ common_x86.h | 22 ++++++++++++++++-- common_x86_64.h | 22 ++++++++++++++++-- driver/others/blas_server.c | 2 ++ driver/others/memory.c | 4 ++++ driver/others/openblas_get_config.c | 2 ++ driver/others/openblas_get_num_procs.c | 1 + driver/others/openblas_get_num_threads.c | 1 + driver/others/openblas_get_parallel.c | 3 +++ driver/others/openblas_set_num_threads.c | 3 +++ interface/Makefile | 1 + interface/asum.c | 1 + interface/axpby.c | 1 + interface/axpy.c | 3 +++ interface/bf16dot.c | 1 + interface/bf16to.c | 1 + interface/copy.c | 1 + interface/dot.c | 1 + interface/dsdot.c | 1 + interface/gbmv.c | 1 + interface/geadd.c | 2 ++ interface/gemm.c | 2 ++ interface/gemm_batch.c | 2 ++ interface/gemm_batch_strided.c | 2 ++ interface/gemmt.c | 2 ++ interface/gemv.c | 2 ++ interface/ger.c | 1 + interface/imatcopy.c | 2 ++ interface/imax.c | 2 ++ interface/lapack/gesv.c | 1 + interface/lapack/getf2.c | 1 + interface/lapack/getrf.c | 1 + interface/lapack/getrs.c | 1 + interface/lapack/laed3.c | 1 + interface/lapack/laswp.c | 1 + interface/lapack/lauu2.c | 1 + interface/lapack/lauum.c | 1 + interface/lapack/potf2.c | 1 + interface/lapack/potrf.c | 1 + interface/lapack/potri.c | 1 + interface/lapack/trti2.c | 1 + interface/lapack/trtri.c | 1 + interface/lapack/trtrs.c | 1 + interface/lapack/zgetf2.c | 1 + interface/lapack/zgetrf.c | 1 + interface/lapack/zgetrs.c | 1 + interface/lapack/zlaswp.c | 1 + interface/lapack/zlauu2.c | 1 + interface/lapack/zlauum.c | 1 + interface/lapack/zpotf2.c | 1 + interface/lapack/zpotrf.c | 1 + interface/lapack/zpotri.c | 1 + interface/lapack/ztrti2.c | 1 + interface/lapack/ztrtri.c | 1 + interface/lapack/ztrtrs.c | 1 + interface/max.c | 2 ++ interface/nrm2.c | 2 ++ interface/omatcopy.c | 2 ++ interface/rot.c | 2 ++ interface/rotg.c | 1 + interface/rotm.c | 2 ++ interface/rotmg.c | 2 ++ interface/sbgemmt.c | 2 ++ interface/sbgemv.c | 2 ++ interface/sbmv.c | 2 ++ interface/scal.c | 2 ++ interface/sdsdot.c | 2 ++ interface/spmv.c | 2 ++ interface/spr.c | 2 ++ interface/spr2.c | 2 ++ interface/sum.c | 2 ++ interface/swap.c | 2 ++ interface/symm.c | 2 ++ interface/symv.c | 2 ++ interface/syr.c | 2 ++ interface/syr2.c | 2 ++ interface/syr2k.c | 2 ++ interface/syrk.c | 2 ++ interface/tbmv.c | 2 ++ interface/tbsv.c | 2 ++ interface/tobf16.c | 2 ++ interface/tpmv.c | 2 ++ interface/tpsv.c | 2 ++ interface/trmv.c | 2 ++ interface/trsm.c | 2 ++ interface/trsv.c | 2 ++ interface/xerbla.c | 2 ++ interface/zaxpby.c | 2 ++ interface/zaxpy.c | 3 +++ interface/zdot.c | 2 ++ interface/zgbmv.c | 2 ++ interface/zgeadd.c | 2 ++ interface/zgemv.c | 2 ++ interface/zger.c | 2 ++ interface/zhbmv.c | 2 ++ interface/zhemv.c | 2 ++ interface/zher.c | 2 ++ interface/zher2.c | 2 ++ interface/zhpmv.c | 2 ++ interface/zhpr.c | 2 ++ interface/zhpr2.c | 2 ++ interface/zimatcopy.c | 2 ++ interface/zomatcopy.c | 2 ++ interface/zrot.c | 2 ++ interface/zrotg.c | 1 + interface/zsbmv.c | 1 + interface/zscal.c | 2 ++ interface/zspmv.c | 2 ++ interface/zspr.c | 1 + interface/zspr2.c | 1 + interface/zswap.c | 2 ++ interface/zsymv.c | 2 ++ interface/zsyr.c | 1 + interface/zsyr2.c | 1 + interface/ztbmv.c | 2 ++ interface/ztbsv.c | 2 ++ interface/ztpmv.c | 2 ++ interface/ztpsv.c | 2 ++ interface/ztrmv.c | 2 ++ interface/ztrsv.c | 2 ++ kernel/generic/cabs.c | 1 + kernel/generic/lsame.c | 1 + kernel/ia64/cabs.S | 2 +- kernel/ia64/lsame.S | 2 +- kernel/power/cabs.S | 2 +- kernel/power/lsame.S | 2 +- kernel/sparc/cabs.S | 2 +- kernel/sparc/lsame.S | 2 +- kernel/x86/cabs.S | 2 +- kernel/x86/lsame.S | 2 +- kernel/x86_64/cabs.S | 2 +- kernel/x86_64/lsame.S | 2 +- lapack-netlib/LAPACKE/src/Makefile | 2 +- lapack-netlib/LAPACKE/utils/Makefile | 2 +- 138 files changed, 327 insertions(+), 16 deletions(-) diff --git a/common.h b/common.h index 512096ca1d..a1ae66706d 100644 --- a/common.h +++ b/common.h @@ -424,6 +424,29 @@ please https://github.com/xianyi/OpenBLAS/issues/246 #define BLAS3_MEM_ALLOC_THRESHOLD 32 #endif +/*** + For GCC/Clang, always use -fvisibility=hidden. Then mark exported function + implementations with OPENBLAS_EXPORT. For MSVC, using `__declspec` onces makes + the default atrribute for any function in the entire shared object hidden + (observed behaviour, documentation source needed). +**/ +#if defined (_WIN32) || defined (__CYGWIN__) +# if defined (__GNUC__) + /* GCC */ +# define OPENBLAS_EXPORT __attribute__ ((dllexport)) +# define OPENBLAS_IMPORT __attribute__ ((dllimport)) +# else + /* MSVC */ +# define OPENBLAS_EXPORT __declspec(dllexport) +# define OPENBLAS_IMPORT __declspec(dllimport) +# endif +#else + /* All other platforms. */ +# define OPENBLAS_EXPORT __attribute__ ((visibility ("default"))) +# define OPENBLAS_IMPORT +#endif + + #ifdef QUAD_PRECISION #include "common_quad.h" #endif diff --git a/common_loongarch64.h b/common_loongarch64.h index 6e96984f65..f2591b3561 100644 --- a/common_loongarch64.h +++ b/common_loongarch64.h @@ -267,6 +267,14 @@ static inline int get_cpu_model(char *model_name) { #if defined(ASSEMBLER) && !defined(NEEDPARAM) #define PROLOGUE \ + .text ;\ + .align 5 ;\ + .globl REALNAME ;\ + .hidden REALNAME ;\ + .type REALNAME, @function ;\ +REALNAME: ;\ + +#define PROLOGUE_EXPORT \ .text ;\ .align 5 ;\ .globl REALNAME ;\ diff --git a/common_mips.h b/common_mips.h index ce328d7e2d..f2ad78e5d5 100644 --- a/common_mips.h +++ b/common_mips.h @@ -76,6 +76,12 @@ static inline int blas_quickdivide(blasint x, blasint y){ #define PROLOGUE \ .arm ;\ .global REALNAME ;\ + .hidden REALNAME ;\ +REALNAME: + +#define PROLOGUE_EXPORT \ + .arm ;\ + .global REALNAME ;\ REALNAME: #define EPILOGUE diff --git a/common_mips64.h b/common_mips64.h index c7eb212df6..e4949af97b 100644 --- a/common_mips64.h +++ b/common_mips64.h @@ -206,6 +206,18 @@ static inline int blas_quickdivide(blasint x, blasint y){ #endif #define PROLOGUE \ + .text ;\ + .set ASSEMBLER_ARCH ;\ + .align 5 ;\ + .globl REALNAME ;\ + .hidden REALNAME ;\ + .ent REALNAME ;\ + .type REALNAME, @function ;\ +REALNAME: ;\ + .set noreorder ;\ + .set nomacro + +#define PROLOGUE_EXPORT \ .text ;\ .set ASSEMBLER_ARCH ;\ .align 5 ;\ diff --git a/common_power.h b/common_power.h index ded76ad519..362c2b855b 100644 --- a/common_power.h +++ b/common_power.h @@ -532,6 +532,13 @@ static inline int blas_quickdivide(blasint x, blasint y){ #if defined(OS_LINUX) || defined(OS_FREEBSD) #ifndef __64BIT__ #define PROLOGUE \ + .section .text;\ + .align 6;\ + .globl REALNAME;\ + .hidden REALNAME ;\ + .type REALNAME, @function;\ +REALNAME: +#define PROLOGUE_EXPORT \ .section .text;\ .align 6;\ .globl REALNAME;\ @@ -541,6 +548,13 @@ static inline int blas_quickdivide(blasint x, blasint y){ #else #if _CALL_ELF == 2 #define PROLOGUE \ + .section .text;\ + .align 6;\ + .globl REALNAME;\ + .hidden REALNAME ;\ + .type REALNAME, @function;\ +REALNAME: +#define PROLOGUE_EXPORT \ .section .text;\ .align 6;\ .globl REALNAME;\ @@ -549,6 +563,21 @@ static inline int blas_quickdivide(blasint x, blasint y){ #define EPILOGUE .size REALNAME, .-REALNAME #else #define PROLOGUE \ + .section .text;\ + .align 5;\ + .globl REALNAME;\ + .hidden REALNAME ;\ + .section ".opd","aw";\ + .align 3;\ +REALNAME:;\ + .quad .REALNAME, .TOC.@tocbase, 0;\ + .previous;\ + .size REALNAME, 24;\ + .type .REALNAME, @function;\ + .globl .REALNAME;\ + .hidden .REALNAME ;\ +.REALNAME: +#define PROLOGUE_EXPORT \ .section .text;\ .align 5;\ .globl REALNAME;\ diff --git a/common_x86.h b/common_x86.h index 65fb9a4600..ade3b9cb3b 100644 --- a/common_x86.h +++ b/common_x86.h @@ -297,7 +297,8 @@ static __inline int blas_quickdivide(unsigned int x, unsigned int y){ #endif #ifdef OS_DARWIN -#define PROLOGUE .text;.align 5; .globl REALNAME; REALNAME: +#define PROLOGUE .text;.align 5; .globl REALNAME; .hidden REALNAME; REALNAME: +#define PROLOGUE_EXPORT .text;.align 5; .globl REALNAME; REALNAME: #define EPILOGUE .subsections_via_symbols #define PROFCODE #endif @@ -319,6 +320,14 @@ static __inline int blas_quickdivide(unsigned int x, unsigned int y){ #if defined(OS_WINNT) || defined(OS_CYGWIN_NT) || defined(OS_INTERIX) #define PROLOGUE \ + .text; \ + .align 16; \ + .globl REALNAME ;\ + .hidden REALNAME ;\ + .def REALNAME;.scl 2;.type 32;.endef; \ +REALNAME: + +#define PROLOGUE_EXPORT \ .text; \ .align 16; \ .globl REALNAME ;\ @@ -339,7 +348,16 @@ static __inline int blas_quickdivide(unsigned int x, unsigned int y){ .text; \ .align 16; \ .globl REALNAME ;\ - .type REALNAME, @function; \ + .hidden REALNAME ;\ + .type REALNAME, @function; \ +REALNAME: \ + _CET_ENDBR + +#define PROLOGUE_EXPORT \ + .text; \ + .align 16; \ + .globl REALNAME ;\ + .type REALNAME, @function; \ REALNAME: \ _CET_ENDBR diff --git a/common_x86_64.h b/common_x86_64.h index 143e188a79..712d70edae 100644 --- a/common_x86_64.h +++ b/common_x86_64.h @@ -400,7 +400,8 @@ static __inline unsigned int blas_quickdivide(unsigned int x, unsigned int y){ #endif #ifdef OS_DARWIN -#define PROLOGUE .text;.align 5; .globl REALNAME; REALNAME: +#define PROLOGUE .text;.align 5; .globl REALNAME; .hidden REALNAME; REALNAME: +#define PROLOGUE_EXPORT .text;.align 5; .globl REALNAME; REALNAME: #define EPILOGUE .subsections_via_symbols #define PROFCODE #endif @@ -441,6 +442,14 @@ static __inline unsigned int blas_quickdivide(unsigned int x, unsigned int y){ .text; \ .align 16; \ .globl REALNAME ;\ + .hidden REALNAME ; \ + .def REALNAME;.scl 2;.type 32;.endef; \ +REALNAME: + +#define PROLOGUE_EXPORT \ + .text; \ + .align 16; \ + .globl REALNAME ;\ .def REALNAME;.scl 2;.type 32;.endef; \ REALNAME: @@ -454,7 +463,16 @@ static __inline unsigned int blas_quickdivide(unsigned int x, unsigned int y){ .text; \ .align 512; \ .globl REALNAME ;\ - .type REALNAME, @function; \ + .hidden REALNAME ;\ + .type REALNAME, @function; \ +REALNAME: \ + _CET_ENDBR + +#define PROLOGUE_EXPORT \ + .text; \ + .align 512; \ + .globl REALNAME ;\ + .type REALNAME, @function; \ REALNAME: \ _CET_ENDBR diff --git a/driver/others/blas_server.c b/driver/others/blas_server.c index 01a6e91ee7..d94d1a99d2 100644 --- a/driver/others/blas_server.c +++ b/driver/others/blas_server.c @@ -861,6 +861,7 @@ if (openblas_threads_callback_) { return 0; } +OPENBLAS_EXPORT void goto_set_num_threads(int num_threads) { long i; @@ -933,6 +934,7 @@ void goto_set_num_threads(int num_threads) { } +OPENBLAS_EXPORT void openblas_set_num_threads(int num_threads) { goto_set_num_threads(num_threads); diff --git a/driver/others/memory.c b/driver/others/memory.c index c8415f348e..77067eca91 100644 --- a/driver/others/memory.c +++ b/driver/others/memory.c @@ -500,6 +500,7 @@ int blas_get_cpu_number(void){ #endif +OPENBLAS_EXPORT int openblas_get_num_procs(void) { #ifndef SMP return 1; @@ -508,6 +509,7 @@ int openblas_get_num_procs(void) { #endif } +OPENBLAS_EXPORT int openblas_get_num_threads(void) { #ifndef SMP return 1; @@ -2071,6 +2073,7 @@ int blas_get_cpu_number(void){ #endif +OPENBLAS_EXPORT int openblas_get_num_procs(void) { #ifndef SMP return 1; @@ -2079,6 +2082,7 @@ int openblas_get_num_procs(void) { #endif } +OPENBLAS_EXPORT int openblas_get_num_threads(void) { #ifndef SMP return 1; diff --git a/driver/others/openblas_get_config.c b/driver/others/openblas_get_config.c index ff52cfba8f..0b1992d2cb 100644 --- a/driver/others/openblas_get_config.c +++ b/driver/others/openblas_get_config.c @@ -78,6 +78,7 @@ char *gotoblas_corename(void); static char tmp_config_str[256]; int openblas_get_parallel(void); +OPENBLAS_EXPORT char* CNAME(void) { char tmpstr[20]; strcpy(tmp_config_str, openblas_config_str); @@ -93,6 +94,7 @@ char tmpstr[20]; } +OPENBLAS_EXPORT char* openblas_get_corename(void) { #ifndef DYNAMIC_ARCH return CHAR_CORENAME; diff --git a/driver/others/openblas_get_num_procs.c b/driver/others/openblas_get_num_procs.c index 6b0c1ec5c9..5ff5c276f6 100644 --- a/driver/others/openblas_get_num_procs.c +++ b/driver/others/openblas_get_num_procs.c @@ -35,6 +35,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. extern int openblas_get_num_procs(void); +OPENBLAS_EXPORT int openblas_get_num_procs_(void) { return openblas_get_num_procs(); } diff --git a/driver/others/openblas_get_num_threads.c b/driver/others/openblas_get_num_threads.c index e31aa4b4a0..bb166f038b 100644 --- a/driver/others/openblas_get_num_threads.c +++ b/driver/others/openblas_get_num_threads.c @@ -35,6 +35,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. extern int openblas_get_num_threads(void); +OPENBLAS_EXPORT int openblas_get_num_threads_(void) { return openblas_get_num_threads(); } diff --git a/driver/others/openblas_get_parallel.c b/driver/others/openblas_get_parallel.c index becfa0a3a5..3401d916d9 100644 --- a/driver/others/openblas_get_parallel.c +++ b/driver/others/openblas_get_parallel.c @@ -41,11 +41,14 @@ static int parallel = 0; #endif +OPENBLAS_EXPORT + #ifdef NEEDBUNDERSCORE int CNAME(void) { return parallel; } +OPENBLAS_EXPORT int NAME(void) { return parallel; } diff --git a/driver/others/openblas_set_num_threads.c b/driver/others/openblas_set_num_threads.c index c938fde694..e728dfb17d 100644 --- a/driver/others/openblas_set_num_threads.c +++ b/driver/others/openblas_set_num_threads.c @@ -38,6 +38,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. extern void openblas_set_num_threads(int num_threads) ; extern int openblas_get_num_threads(void) ; +OPENBLAS_EXPORT void openblas_set_num_threads_(int* num_threads){ openblas_set_num_threads(*num_threads); } @@ -53,9 +54,11 @@ int openblas_set_num_threads_local(int num_threads){ #else //Single thread +OPENBLAS_EXPORT void openblas_set_num_threads(int num_threads) { } +OPENBLAS_EXPORT void openblas_set_num_threads_(int* num_threads){ } diff --git a/interface/Makefile b/interface/Makefile index 83a894b125..b894abb74d 100644 --- a/interface/Makefile +++ b/interface/Makefile @@ -29,6 +29,7 @@ TOPDIR = .. include $(TOPDIR)/Makefile.system + SUPPORT_GEMM3M = 0 ifeq ($(ARCH), x86) diff --git a/interface/asum.c b/interface/asum.c index bd83c88e0d..e4123d2f92 100644 --- a/interface/asum.c +++ b/interface/asum.c @@ -42,6 +42,7 @@ #include "functable.h" #endif +OPENBLAS_EXPORT #ifndef CBLAS FLOATRET NAME(blasint *N, FLOAT *x, blasint *INCX){ diff --git a/interface/axpby.c b/interface/axpby.c index 63dba81a4c..b59cbfad20 100644 --- a/interface/axpby.c +++ b/interface/axpby.c @@ -36,6 +36,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "functable.h" #endif +OPENBLAS_EXPORT #ifndef CBLAS void NAME(blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX, FLOAT *BETA, FLOAT *y, blasint *INCY) diff --git a/interface/axpy.c b/interface/axpy.c index 5304ebec30..0576575834 100644 --- a/interface/axpy.c +++ b/interface/axpy.c @@ -46,6 +46,9 @@ #else #define MULTI_THREAD_MINIMAL 10000 #endif + + +OPENBLAS_EXPORT #ifndef CBLAS void NAME(blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY){ diff --git a/interface/bf16dot.c b/interface/bf16dot.c index 33717e3748..39c61b4db2 100644 --- a/interface/bf16dot.c +++ b/interface/bf16dot.c @@ -4,6 +4,7 @@ #include "functable.h" #endif +OPENBLAS_EXPORT #ifndef CBLAS float NAME(blasint *N, bfloat16 *x, blasint *INCX, bfloat16 *y, blasint *INCY){ BLASLONG n = *N; diff --git a/interface/bf16to.c b/interface/bf16to.c index 036c0b142f..b6b7d304e1 100644 --- a/interface/bf16to.c +++ b/interface/bf16to.c @@ -11,6 +11,7 @@ #else #endif +OPENBLAS_EXPORT #ifndef CBLAS void NAME(blasint *N, bfloat16 *in, blasint *INC_IN, FLOAT_TYPE *out, blasint *INC_OUT){ BLASLONG n = *N; diff --git a/interface/copy.c b/interface/copy.c index 20b5aec0a1..38da2c2832 100644 --- a/interface/copy.c +++ b/interface/copy.c @@ -42,6 +42,7 @@ #include "functable.h" #endif +OPENBLAS_EXPORT #ifndef CBLAS void NAME(blasint *N, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY){ diff --git a/interface/dot.c b/interface/dot.c index 3a918405e2..abf78686de 100644 --- a/interface/dot.c +++ b/interface/dot.c @@ -42,6 +42,7 @@ #include "functable.h" #endif +OPENBLAS_EXPORT #ifndef CBLAS FLOATRET NAME(blasint *N, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY){ diff --git a/interface/dsdot.c b/interface/dsdot.c index 32e4b492ff..d2af81aea0 100644 --- a/interface/dsdot.c +++ b/interface/dsdot.c @@ -42,6 +42,7 @@ #include "functable.h" #endif +OPENBLAS_EXPORT #ifndef CBLAS double NAME(blasint *N, float *x, blasint *INCX, float *y, blasint *INCY){ diff --git a/interface/gbmv.c b/interface/gbmv.c index 7a65813685..8beea38ab3 100644 --- a/interface/gbmv.c +++ b/interface/gbmv.c @@ -74,6 +74,7 @@ static int (*gbmv_thread[])(BLASLONG, BLASLONG, BLASLONG, BLASLONG, FLOAT, }; #endif +OPENBLAS_EXPORT #ifndef CBLAS void NAME(char *TRANS, blasint *M, blasint *N, diff --git a/interface/geadd.c b/interface/geadd.c index a2e6d10818..a97691b64f 100644 --- a/interface/geadd.c +++ b/interface/geadd.c @@ -48,6 +48,8 @@ #define ERROR_NAME "SGEADD " #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *M, blasint *N, FLOAT *ALPHA, FLOAT *a, blasint *LDA, diff --git a/interface/gemm.c b/interface/gemm.c index a16df81ec4..5da8d5b57a 100644 --- a/interface/gemm.c +++ b/interface/gemm.c @@ -252,6 +252,8 @@ static inline int get_gemm_optimal_nthreads(double MNK) { } #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *TRANSA, char *TRANSB, diff --git a/interface/gemm_batch.c b/interface/gemm_batch.c index 0d88544091..16b6b2f401 100644 --- a/interface/gemm_batch.c +++ b/interface/gemm_batch.c @@ -114,6 +114,8 @@ static size_t zgemm_small_kernel_b0[] = { #endif #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *transa_array, char *transb_array, blasint * m_array, blasint * n_array, blasint * k_array, diff --git a/interface/gemm_batch_strided.c b/interface/gemm_batch_strided.c index 8435b65502..453b4748b0 100644 --- a/interface/gemm_batch_strided.c +++ b/interface/gemm_batch_strided.c @@ -114,6 +114,8 @@ static size_t zgemm_small_kernel_b0[] = { #endif #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *transa, char *transb, blasint * M, blasint * N, blasint * K, diff --git a/interface/gemmt.c b/interface/gemmt.c index aa65f81edf..39f41ae1c2 100644 --- a/interface/gemmt.c +++ b/interface/gemmt.c @@ -84,6 +84,8 @@ #define GEMM_MULTITHREAD_THRESHOLD 4 #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANSA, char *TRANSB, diff --git a/interface/gemv.c b/interface/gemv.c index 34b6addd3d..511762098c 100644 --- a/interface/gemv.c +++ b/interface/gemv.c @@ -127,6 +127,8 @@ static inline int get_gemv_optimal_nthreads(BLASLONG MN) { } #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *TRANS, blasint *M, blasint *N, diff --git a/interface/ger.c b/interface/ger.c index 640b8cb443..9ec9ff599b 100644 --- a/interface/ger.c +++ b/interface/ger.c @@ -66,6 +66,7 @@ #define GER_THREAD sger_thread #endif +OPENBLAS_EXPORT #ifndef CBLAS diff --git a/interface/imatcopy.c b/interface/imatcopy.c index 69876e31ed..bd9d105298 100644 --- a/interface/imatcopy.c +++ b/interface/imatcopy.c @@ -54,6 +54,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* Enables the New IMATCOPY code with inplace operation if lda == ldb */ #define NEW_IMATCOPY +OPENBLAS_EXPORT + #ifndef CBLAS void NAME( char* ORDER, char* TRANS, blasint *rows, blasint *cols, FLOAT *alpha, FLOAT *a, blasint *lda, blasint *ldb) { diff --git a/interface/imax.c b/interface/imax.c index 456460d98d..1a136e3878 100644 --- a/interface/imax.c +++ b/interface/imax.c @@ -118,6 +118,8 @@ #endif +OPENBLAS_EXPORT + #ifndef CBLAS blasint NAME(blasint *N, FLOAT *x, blasint *INCX){ diff --git a/interface/lapack/gesv.c b/interface/lapack/gesv.c index 21fcc20970..a7afbbc682 100644 --- a/interface/lapack/gesv.c +++ b/interface/lapack/gesv.c @@ -60,6 +60,7 @@ #endif #endif +OPENBLAS_EXPORT int NAME(blasint *N, blasint *NRHS, FLOAT *a, blasint *ldA, blasint *ipiv, FLOAT *b, blasint *ldB, blasint *Info){ diff --git a/interface/lapack/getf2.c b/interface/lapack/getf2.c index 8506feca9f..582ebd7ff1 100644 --- a/interface/lapack/getf2.c +++ b/interface/lapack/getf2.c @@ -50,6 +50,7 @@ #define ERROR_NAME "SGETF2" #endif +OPENBLAS_EXPORT int NAME(blasint *M, blasint *N, FLOAT *a, blasint *ldA, blasint *ipiv, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/getrf.c b/interface/lapack/getrf.c index 270604120f..c802c14a30 100644 --- a/interface/lapack/getrf.c +++ b/interface/lapack/getrf.c @@ -50,6 +50,7 @@ #define ERROR_NAME "SGETRF" #endif +OPENBLAS_EXPORT int NAME(blasint *M, blasint *N, FLOAT *a, blasint *ldA, blasint *ipiv, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/getrs.c b/interface/lapack/getrs.c index c2a9eb882f..95ba6288e2 100644 --- a/interface/lapack/getrs.c +++ b/interface/lapack/getrs.c @@ -60,6 +60,7 @@ static blasint (*getrs_parallel[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT * }; #endif +OPENBLAS_EXPORT int NAME(char *TRANS, blasint *N, blasint *NRHS, FLOAT *a, blasint *ldA, blasint *ipiv, FLOAT *b, blasint *ldB, blasint *Info){ diff --git a/interface/lapack/laed3.c b/interface/lapack/laed3.c index 4e5215fcf7..9119454155 100644 --- a/interface/lapack/laed3.c +++ b/interface/lapack/laed3.c @@ -40,6 +40,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #endif /* ===================================================================== */ +OPENBLAS_EXPORT int NAME(blasint *k, blasint *n, blasint *n1, FLOAT *d, FLOAT *q, blasint *ldq, FLOAT *rho, FLOAT *dlamda, FLOAT *q2, blasint *indx, blasint *ctot, FLOAT *w, diff --git a/interface/lapack/laswp.c b/interface/lapack/laswp.c index 6544dbc5b2..c54fd73c16 100644 --- a/interface/lapack/laswp.c +++ b/interface/lapack/laswp.c @@ -52,6 +52,7 @@ static int (*laswp[])(BLASLONG, BLASLONG, BLASLONG, FLOAT, FLOAT *, BLASLONG, FL #endif }; +OPENBLAS_EXPORT int NAME(blasint *N, FLOAT *a, blasint *LDA, blasint *K1, blasint *K2, blasint *ipiv, blasint *INCX){ blasint n = *N; diff --git a/interface/lapack/lauu2.c b/interface/lapack/lauu2.c index e581e3c152..bbc8c51f19 100644 --- a/interface/lapack/lauu2.c +++ b/interface/lapack/lauu2.c @@ -60,6 +60,7 @@ static blasint (*lauu2[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT *, FLOAT * #endif }; +OPENBLAS_EXPORT int NAME(char *UPLO, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/lauum.c b/interface/lapack/lauum.c index 70f6a0ec54..3a29ce3d00 100644 --- a/interface/lapack/lauum.c +++ b/interface/lapack/lauum.c @@ -60,6 +60,7 @@ static blasint (*lauum_parallel[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT * }; #endif +OPENBLAS_EXPORT int NAME(char *UPLO, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/potf2.c b/interface/lapack/potf2.c index 1537b6ee43..a8ecbe8cfa 100644 --- a/interface/lapack/potf2.c +++ b/interface/lapack/potf2.c @@ -60,6 +60,7 @@ static blasint (*potf2[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT *, FLOAT * #endif }; +OPENBLAS_EXPORT int NAME(char *UPLO, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/potrf.c b/interface/lapack/potrf.c index a24e48d95b..4c9ee613c8 100644 --- a/interface/lapack/potrf.c +++ b/interface/lapack/potrf.c @@ -60,6 +60,7 @@ static blasint (*potrf_parallel[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT * }; #endif +OPENBLAS_EXPORT int NAME(char *UPLO, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/potri.c b/interface/lapack/potri.c index eb0fcbe704..8f96767711 100644 --- a/interface/lapack/potri.c +++ b/interface/lapack/potri.c @@ -68,6 +68,7 @@ static blasint (*lauum_parallel[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT * }; #endif +OPENBLAS_EXPORT int NAME(char *UPLO, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/trti2.c b/interface/lapack/trti2.c index 47f04f06f7..9cd2996745 100644 --- a/interface/lapack/trti2.c +++ b/interface/lapack/trti2.c @@ -60,6 +60,7 @@ static blasint (*trti2[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT *, FLOAT * #endif }; +OPENBLAS_EXPORT int NAME(char *UPLO, char *DIAG, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/trtri.c b/interface/lapack/trtri.c index 82d806b8c2..78e0469ebc 100644 --- a/interface/lapack/trtri.c +++ b/interface/lapack/trtri.c @@ -61,6 +61,7 @@ static blasint (*trtri_parallel[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT * #endif +OPENBLAS_EXPORT int NAME(char *UPLO, char *DIAG, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/trtrs.c b/interface/lapack/trtrs.c index 3cc449318f..f9ffd4ff57 100644 --- a/interface/lapack/trtrs.c +++ b/interface/lapack/trtrs.c @@ -60,6 +60,7 @@ static blasint (*trtrs_parallel[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT * }; #endif +OPENBLAS_EXPORT int NAME(char *UPLO, char* TRANS, char* DIAG, blasint *N, blasint *NRHS, FLOAT *a, blasint *ldA, FLOAT *b, blasint *ldB, blasint *Info){ diff --git a/interface/lapack/zgetf2.c b/interface/lapack/zgetf2.c index 68b9a7e4bd..0fca2d050f 100644 --- a/interface/lapack/zgetf2.c +++ b/interface/lapack/zgetf2.c @@ -50,6 +50,7 @@ #define ERROR_NAME "CGETF2" #endif +OPENBLAS_EXPORT int NAME(blasint *M, blasint *N, FLOAT *a, blasint *ldA, blasint *ipiv, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/zgetrf.c b/interface/lapack/zgetrf.c index d03541fad6..383381dd65 100644 --- a/interface/lapack/zgetrf.c +++ b/interface/lapack/zgetrf.c @@ -50,6 +50,7 @@ #define ERROR_NAME "CGETRF" #endif +OPENBLAS_EXPORT int NAME(blasint *M, blasint *N, FLOAT *a, blasint *ldA, blasint *ipiv, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/zgetrs.c b/interface/lapack/zgetrs.c index 0add909ca4..ba6a6f41ab 100644 --- a/interface/lapack/zgetrs.c +++ b/interface/lapack/zgetrs.c @@ -60,6 +60,7 @@ static blasint (*getrs_parallel[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT * }; #endif +OPENBLAS_EXPORT int NAME(char *TRANS, blasint *N, blasint *NRHS, FLOAT *a, blasint *ldA, blasint *ipiv, FLOAT *b, blasint *ldB, blasint *Info){ diff --git a/interface/lapack/zlaswp.c b/interface/lapack/zlaswp.c index 7bb4a659ea..40055f16c2 100644 --- a/interface/lapack/zlaswp.c +++ b/interface/lapack/zlaswp.c @@ -52,6 +52,7 @@ static int (*laswp[])(BLASLONG, BLASLONG, BLASLONG, FLOAT, FLOAT, FLOAT *, BLASL #endif }; +OPENBLAS_EXPORT int NAME(blasint *N, FLOAT *a, blasint *LDA, blasint *K1, blasint *K2, blasint *ipiv, blasint *INCX){ blasint n = *N; diff --git a/interface/lapack/zlauu2.c b/interface/lapack/zlauu2.c index ae972543c1..18b05b7201 100644 --- a/interface/lapack/zlauu2.c +++ b/interface/lapack/zlauu2.c @@ -61,6 +61,7 @@ static blasint (*lauu2[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT *, FLOAT * #endif }; +OPENBLAS_EXPORT int NAME(char *UPLO, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/zlauum.c b/interface/lapack/zlauum.c index 4a36cc1733..242b7e8353 100644 --- a/interface/lapack/zlauum.c +++ b/interface/lapack/zlauum.c @@ -60,6 +60,7 @@ static blasint (*lauum_parallel[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT * }; #endif +OPENBLAS_EXPORT int NAME(char *UPLO, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/zpotf2.c b/interface/lapack/zpotf2.c index c74b66728e..27890cdf3e 100644 --- a/interface/lapack/zpotf2.c +++ b/interface/lapack/zpotf2.c @@ -61,6 +61,7 @@ static blasint (*potf2[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT *, FLOAT * #endif }; +OPENBLAS_EXPORT int NAME(char *UPLO, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/zpotrf.c b/interface/lapack/zpotrf.c index 298efbbc19..0943d311c4 100644 --- a/interface/lapack/zpotrf.c +++ b/interface/lapack/zpotrf.c @@ -60,6 +60,7 @@ static blasint (*potrf_parallel[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT * }; #endif +OPENBLAS_EXPORT int NAME(char *UPLO, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/zpotri.c b/interface/lapack/zpotri.c index 8748c6352d..acee404c13 100644 --- a/interface/lapack/zpotri.c +++ b/interface/lapack/zpotri.c @@ -68,6 +68,7 @@ static blasint (*lauum_parallel[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT * }; #endif +OPENBLAS_EXPORT int NAME(char *UPLO, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/ztrti2.c b/interface/lapack/ztrti2.c index cb9c0d557a..e962523cf1 100644 --- a/interface/lapack/ztrti2.c +++ b/interface/lapack/ztrti2.c @@ -60,6 +60,7 @@ static blasint (*trti2[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT *, FLOAT * #endif }; +OPENBLAS_EXPORT int NAME(char *UPLO, char *DIAG, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/ztrtri.c b/interface/lapack/ztrtri.c index dda4a9e4b6..cd0a2699f4 100644 --- a/interface/lapack/ztrtri.c +++ b/interface/lapack/ztrtri.c @@ -60,6 +60,7 @@ static blasint (*trtri_parallel[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT * }; #endif +OPENBLAS_EXPORT int NAME(char *UPLO, char *DIAG, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ blas_arg_t args; diff --git a/interface/lapack/ztrtrs.c b/interface/lapack/ztrtrs.c index ec3343393a..33a0ab5f33 100644 --- a/interface/lapack/ztrtrs.c +++ b/interface/lapack/ztrtrs.c @@ -60,6 +60,7 @@ static blasint (*trtrs_parallel[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT * }; #endif +OPENBLAS_EXPORT int NAME(char *UPLO, char* TRANS, char* DIAG, blasint *N, blasint *NRHS, FLOAT *a, blasint *ldA, FLOAT *b, blasint *ldB, blasint *Info){ diff --git a/interface/max.c b/interface/max.c index 7817601b93..19e7763ac9 100644 --- a/interface/max.c +++ b/interface/max.c @@ -126,6 +126,8 @@ #endif +OPENBLAS_EXPORT + #ifndef CBLAS FLOATRET NAME(blasint *N, FLOAT *x, blasint *INCX){ diff --git a/interface/nrm2.c b/interface/nrm2.c index cfeb13df8f..350d2de4c8 100644 --- a/interface/nrm2.c +++ b/interface/nrm2.c @@ -42,6 +42,8 @@ #include "functable.h" #endif +OPENBLAS_EXPORT + #ifndef CBLAS FLOATRET NAME(blasint *N, FLOAT *x, blasint *INCX){ diff --git a/interface/omatcopy.c b/interface/omatcopy.c index c26446f5c0..f06f40c601 100644 --- a/interface/omatcopy.c +++ b/interface/omatcopy.c @@ -47,6 +47,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define BlasNoTrans 0 #define BlasTrans 1 +OPENBLAS_EXPORT + #ifndef CBLAS void NAME( char* ORDER, char* TRANS, blasint *rows, blasint *cols, FLOAT *alpha, FLOAT *a, blasint *lda, FLOAT *b, blasint *ldb) { diff --git a/interface/rot.c b/interface/rot.c index 125275a182..2b74a740a6 100644 --- a/interface/rot.c +++ b/interface/rot.c @@ -42,6 +42,8 @@ #include "functable.h" #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *N, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY, FLOAT *C, FLOAT *S){ diff --git a/interface/rotg.c b/interface/rotg.c index 423ebda21d..b9044c6092 100644 --- a/interface/rotg.c +++ b/interface/rotg.c @@ -5,6 +5,7 @@ #include "functable.h" #endif +OPENBLAS_EXPORT #ifndef CBLAS diff --git a/interface/rotm.c b/interface/rotm.c index 9ef87da329..4c39bc61eb 100644 --- a/interface/rotm.c +++ b/interface/rotm.c @@ -3,6 +3,8 @@ #include "functable.h" #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *N, FLOAT *dx, blasint *INCX, FLOAT *dy, blasint *INCY, FLOAT *dparam){ diff --git a/interface/rotmg.c b/interface/rotmg.c index b8f627221d..d158b34f92 100644 --- a/interface/rotmg.c +++ b/interface/rotmg.c @@ -50,6 +50,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define ABS(x) fabsf(x) #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(FLOAT *dd1, FLOAT *dd2, FLOAT *dx1, FLOAT *DY1, FLOAT *dparam){ diff --git a/interface/sbgemmt.c b/interface/sbgemmt.c index 67914fe65f..0d8ca566ec 100644 --- a/interface/sbgemmt.c +++ b/interface/sbgemmt.c @@ -43,6 +43,8 @@ #define GEMM_MULTITHREAD_THRESHOLD 4 #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANSA, char *TRANSB, diff --git a/interface/sbgemv.c b/interface/sbgemv.c index 12db2dfb1c..246392537f 100644 --- a/interface/sbgemv.c +++ b/interface/sbgemv.c @@ -64,6 +64,8 @@ static int (*gemv_thread[])(BLASLONG, BLASLONG, FLOAT, IFLOAT *, BLASLONG, IFLOA }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *TRANS, blasint *M, blasint *N, FLOAT *ALPHA, IFLOAT *a, blasint *LDA, IFLOAT *x, blasint *INCX, FLOAT *BETA, FLOAT *y, blasint *INCY) diff --git a/interface/sbmv.c b/interface/sbmv.c index 25e99ca345..e9c3f9d9cd 100644 --- a/interface/sbmv.c +++ b/interface/sbmv.c @@ -81,6 +81,8 @@ static int (*sbmv_thread[])(BLASLONG, BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint *LDA, diff --git a/interface/scal.c b/interface/scal.c index e03038ecbf..5fd54010ab 100644 --- a/interface/scal.c +++ b/interface/scal.c @@ -43,6 +43,8 @@ #include "functable.h" #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX){ diff --git a/interface/sdsdot.c b/interface/sdsdot.c index 6c457fa6c9..c856d421ec 100644 --- a/interface/sdsdot.c +++ b/interface/sdsdot.c @@ -42,6 +42,8 @@ #include "functable.h" #endif +OPENBLAS_EXPORT + #ifndef CBLAS FLOATRET NAME(blasint *N, FLOAT *a, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY){ diff --git a/interface/spmv.c b/interface/spmv.c index e08ae3f6eb..7f06420abc 100644 --- a/interface/spmv.c +++ b/interface/spmv.c @@ -73,6 +73,8 @@ static int (*spmv_thread[])(BLASLONG, FLOAT, FLOAT *, FLOAT *, BLASLONG, FLOAT }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a, diff --git a/interface/spr.c b/interface/spr.c index 8aafc9f857..22623cdf7a 100644 --- a/interface/spr.c +++ b/interface/spr.c @@ -73,6 +73,8 @@ static int (*spr_thread[])(BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT *, FLOAT *, }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, diff --git a/interface/spr2.c b/interface/spr2.c index b5aab1767d..3dbbfe290c 100644 --- a/interface/spr2.c +++ b/interface/spr2.c @@ -73,6 +73,8 @@ static int (*spr2_thread[])(BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT *, BLASLON }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, diff --git a/interface/sum.c b/interface/sum.c index dfdcc5dcc5..2f19f4774f 100644 --- a/interface/sum.c +++ b/interface/sum.c @@ -42,6 +42,8 @@ #include "functable.h" #endif +OPENBLAS_EXPORT + #ifndef CBLAS FLOATRET NAME(blasint *N, FLOAT *x, blasint *INCX){ diff --git a/interface/swap.c b/interface/swap.c index ea40b1fc2a..2565811a88 100644 --- a/interface/swap.c +++ b/interface/swap.c @@ -50,6 +50,8 @@ #undef SMP #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *N, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY){ diff --git a/interface/symm.c b/interface/symm.c index 04a8fab7de..8bd8379d7b 100644 --- a/interface/symm.c +++ b/interface/symm.c @@ -146,6 +146,8 @@ static int (*symm[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT *, FLOAT *, BLA #endif }; +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *SIDE, char *UPLO, diff --git a/interface/symv.c b/interface/symv.c index 1f23ce4ee5..4ca8900547 100644 --- a/interface/symv.c +++ b/interface/symv.c @@ -51,6 +51,8 @@ #define ERROR_NAME "SSYMV " #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a, blasint *LDA, diff --git a/interface/syr.c b/interface/syr.c index ad75264b1f..b81ebf371a 100644 --- a/interface/syr.c +++ b/interface/syr.c @@ -73,6 +73,8 @@ static int (*syr_thread[])(BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT *, BLASLONG }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, diff --git a/interface/syr2.c b/interface/syr2.c index 632906d288..a6def80be5 100644 --- a/interface/syr2.c +++ b/interface/syr2.c @@ -73,6 +73,8 @@ static int (*syr2_thread[])(BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT *, BLASLON }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, diff --git a/interface/syr2k.c b/interface/syr2k.c index 47df7f89f0..75a02bbbe9 100644 --- a/interface/syr2k.c +++ b/interface/syr2k.c @@ -79,6 +79,8 @@ static int (*syr2k[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT *, FLOAT *, BL #endif }; +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, diff --git a/interface/syrk.c b/interface/syrk.c index 9e493b00fe..3f1facc565 100644 --- a/interface/syrk.c +++ b/interface/syrk.c @@ -91,6 +91,8 @@ static int (*syrk[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT *, FLOAT *, BLA #endif }; +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, diff --git a/interface/tbmv.c b/interface/tbmv.c index b5f3ab740d..d394a3b8df 100644 --- a/interface/tbmv.c +++ b/interface/tbmv.c @@ -79,6 +79,8 @@ static int (*tbmv_thread[])(BLASLONG, BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLAS }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, char *DIAG, diff --git a/interface/tbsv.c b/interface/tbsv.c index 12a1eb0030..b95f37389c 100644 --- a/interface/tbsv.c +++ b/interface/tbsv.c @@ -64,6 +64,8 @@ static int (*tbsv[])(BLASLONG, BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, v #endif }; +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, char *DIAG, diff --git a/interface/tobf16.c b/interface/tobf16.c index 787d9d689e..8b0d554fcf 100644 --- a/interface/tobf16.c +++ b/interface/tobf16.c @@ -11,6 +11,8 @@ #else #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *N, FLOAT_TYPE *in, blasint *INC_IN, bfloat16 *out, blasint *INC_OUT){ BLASLONG n = *N; diff --git a/interface/tpmv.c b/interface/tpmv.c index 262af2285d..94d6b2b322 100644 --- a/interface/tpmv.c +++ b/interface/tpmv.c @@ -79,6 +79,8 @@ static int (*tpmv_thread[])(BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLOAT *, int) }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, char *DIAG, diff --git a/interface/tpsv.c b/interface/tpsv.c index 58be77cd31..5357a0c798 100644 --- a/interface/tpsv.c +++ b/interface/tpsv.c @@ -64,6 +64,8 @@ static int (*tpsv[])(BLASLONG, FLOAT *, FLOAT *, BLASLONG, void *) = { #endif }; +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, char *DIAG, diff --git a/interface/trmv.c b/interface/trmv.c index 029a83499d..e881b5d93f 100644 --- a/interface/trmv.c +++ b/interface/trmv.c @@ -79,6 +79,8 @@ static int (*trmv_thread[])(BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOA }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, char *DIAG, diff --git a/interface/trsm.c b/interface/trsm.c index dcc64769d4..751294668e 100644 --- a/interface/trsm.c +++ b/interface/trsm.c @@ -109,6 +109,8 @@ static int (*trsm[])(blas_arg_t *, BLASLONG *, BLASLONG *, FLOAT *, FLOAT *, BLA #endif }; +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *SIDE, char *UPLO, char *TRANS, char *DIAG, diff --git a/interface/trsv.c b/interface/trsv.c index a054d8eeb6..7a035de18d 100644 --- a/interface/trsv.c +++ b/interface/trsv.c @@ -64,6 +64,8 @@ static int (*trsv[])(BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, void *) = { #endif }; +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, char *DIAG, diff --git a/interface/xerbla.c b/interface/xerbla.c index c3a1745523..2f0d6a6af9 100644 --- a/interface/xerbla.c +++ b/interface/xerbla.c @@ -6,6 +6,8 @@ #include #include "common.h" +OPENBLAS_EXPORT + void CNAME(blasint p, char *rout, char *form, ...) { va_list args; diff --git a/interface/zaxpby.c b/interface/zaxpby.c index e5065270d0..64939d862b 100644 --- a/interface/zaxpby.c +++ b/interface/zaxpby.c @@ -37,6 +37,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "functable.h" #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *N, void *VALPHA, FLOAT *x, blasint *INCX, void *VBETA, FLOAT *y, blasint *INCY) diff --git a/interface/zaxpy.c b/interface/zaxpy.c index 0e168606d5..6c201bedc8 100644 --- a/interface/zaxpy.c +++ b/interface/zaxpy.c @@ -46,6 +46,9 @@ #else #define MULTI_THREAD_MINIMAL 10000 #endif + +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY){ diff --git a/interface/zdot.c b/interface/zdot.c index af91b96d5e..17f6f77f74 100644 --- a/interface/zdot.c +++ b/interface/zdot.c @@ -52,6 +52,8 @@ #endif #endif +OPENBLAS_EXPORT + #ifndef CBLAS #ifdef RETURN_BY_STRUCT diff --git a/interface/zgbmv.c b/interface/zgbmv.c index 5128b22e15..1b0c958766 100644 --- a/interface/zgbmv.c +++ b/interface/zgbmv.c @@ -80,6 +80,8 @@ static int (*gbmv_thread[])(BLASLONG, BLASLONG, BLASLONG, BLASLONG, FLOAT *, }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *TRANS, blasint *M, blasint *N, diff --git a/interface/zgeadd.c b/interface/zgeadd.c index de71f27b87..a18ed8be65 100644 --- a/interface/zgeadd.c +++ b/interface/zgeadd.c @@ -48,6 +48,8 @@ #define ERROR_NAME "CGEADD " #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *M, blasint *N, FLOAT *ALPHA, FLOAT *a, blasint *LDA, diff --git a/interface/zgemv.c b/interface/zgemv.c index 3438575b90..42498c1600 100644 --- a/interface/zgemv.c +++ b/interface/zgemv.c @@ -62,6 +62,8 @@ static int (*gemv_thread[])(BLASLONG, BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLO }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *TRANS, blasint *M, blasint *N, diff --git a/interface/zger.c b/interface/zger.c index 1360c5873b..c6fa28e648 100644 --- a/interface/zger.c +++ b/interface/zger.c @@ -101,6 +101,8 @@ #endif #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *M, blasint *N, FLOAT *Alpha, diff --git a/interface/zhbmv.c b/interface/zhbmv.c index 656f137c6a..4abe33878a 100644 --- a/interface/zhbmv.c +++ b/interface/zhbmv.c @@ -73,6 +73,8 @@ static int (*hbmv_thread[])(BLASLONG, BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLO }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint *LDA, diff --git a/interface/zhemv.c b/interface/zhemv.c index 9c31f31d92..6186be3718 100644 --- a/interface/zhemv.c +++ b/interface/zhemv.c @@ -55,6 +55,8 @@ #define ERROR_NAME "CHEMV " #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a, blasint *LDA, diff --git a/interface/zher.c b/interface/zher.c index 49b1cec03b..466f4ca026 100644 --- a/interface/zher.c +++ b/interface/zher.c @@ -73,6 +73,8 @@ static int (*her_thread[])(BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT *, BLASLONG }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, diff --git a/interface/zher2.c b/interface/zher2.c index eba4c4f41b..8222bca421 100644 --- a/interface/zher2.c +++ b/interface/zher2.c @@ -73,6 +73,8 @@ static int (*her2_thread[])(BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLOAT *, BLASL }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, diff --git a/interface/zhpmv.c b/interface/zhpmv.c index ff49716b54..246fe2a732 100644 --- a/interface/zhpmv.c +++ b/interface/zhpmv.c @@ -73,6 +73,8 @@ static int (*hpmv_thread[])(BLASLONG, FLOAT *, FLOAT *, FLOAT *, BLASLONG, FLOA }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a, diff --git a/interface/zhpr.c b/interface/zhpr.c index 34700549e3..53689a3ab3 100644 --- a/interface/zhpr.c +++ b/interface/zhpr.c @@ -73,6 +73,8 @@ static int (*hpr_thread[])(BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT *, FLOAT *, }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, diff --git a/interface/zhpr2.c b/interface/zhpr2.c index 1cbaaa062b..1f3c90563e 100644 --- a/interface/zhpr2.c +++ b/interface/zhpr2.c @@ -73,6 +73,8 @@ static int (*hpr2_thread[])(BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLOAT *, BLASL }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, diff --git a/interface/zimatcopy.c b/interface/zimatcopy.c index b879c9ac29..7b30b62462 100644 --- a/interface/zimatcopy.c +++ b/interface/zimatcopy.c @@ -52,6 +52,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define NEW_IMATCOPY +OPENBLAS_EXPORT + #ifndef CBLAS void NAME( char* ORDER, char* TRANS, blasint *rows, blasint *cols, FLOAT *alpha, FLOAT *a, blasint *lda, blasint *ldb) { diff --git a/interface/zomatcopy.c b/interface/zomatcopy.c index 7121711d87..f63e075eaa 100644 --- a/interface/zomatcopy.c +++ b/interface/zomatcopy.c @@ -49,6 +49,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define BlasTransConj 2 #define BlasConj 3 +OPENBLAS_EXPORT + #ifndef CBLAS void NAME( char* ORDER, char* TRANS, blasint *rows, blasint *cols, FLOAT *alpha, FLOAT *a, blasint *lda, FLOAT *b, blasint *ldb) { diff --git a/interface/zrot.c b/interface/zrot.c index 228c5ee45a..f8dd0707a2 100644 --- a/interface/zrot.c +++ b/interface/zrot.c @@ -42,6 +42,8 @@ #include "functable.h" #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *N, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY, FLOAT *C, FLOAT *S){ BLASLONG n = *N; diff --git a/interface/zrotg.c b/interface/zrotg.c index 8acc3c9b21..6469e049a4 100644 --- a/interface/zrotg.c +++ b/interface/zrotg.c @@ -6,6 +6,7 @@ #endif +OPENBLAS_EXPORT #ifndef CBLAS void NAME(FLOAT *DA, FLOAT *DB, FLOAT *C, FLOAT *S){ diff --git a/interface/zsbmv.c b/interface/zsbmv.c index cd5cefed92..ee09ea64f6 100644 --- a/interface/zsbmv.c +++ b/interface/zsbmv.c @@ -81,6 +81,7 @@ static int (*sbmv_thread[])(BLASLONG, BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLO }; #endif +OPENBLAS_EXPORT void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint *LDA, FLOAT *b, blasint *INCX, FLOAT *BETA, FLOAT *c, blasint *INCY){ diff --git a/interface/zscal.c b/interface/zscal.c index 0e52d113be..8922b782eb 100644 --- a/interface/zscal.c +++ b/interface/zscal.c @@ -42,6 +42,8 @@ #include "functable.h" #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX){ diff --git a/interface/zspmv.c b/interface/zspmv.c index be11463c0e..a10cc30627 100644 --- a/interface/zspmv.c +++ b/interface/zspmv.c @@ -73,6 +73,8 @@ static int (*spmv_thread[])(BLASLONG, FLOAT *, FLOAT *, FLOAT *, BLASLONG, FLOA }; #endif +OPENBLAS_EXPORT + void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a, FLOAT *b, blasint *INCX, FLOAT *BETA, FLOAT *c, blasint *INCY){ diff --git a/interface/zspr.c b/interface/zspr.c index 574b59aa28..57cc961e29 100644 --- a/interface/zspr.c +++ b/interface/zspr.c @@ -73,6 +73,7 @@ static int (*spr_thread[])(BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLOAT *, FLOAT }; #endif +OPENBLAS_EXPORT void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX, FLOAT *a){ diff --git a/interface/zspr2.c b/interface/zspr2.c index 44c36d5536..57c9513b46 100644 --- a/interface/zspr2.c +++ b/interface/zspr2.c @@ -73,6 +73,7 @@ static int (*spr2_thread[])(BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLOAT *, BLASL }; #endif +OPENBLAS_EXPORT void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY, FLOAT *a){ diff --git a/interface/zswap.c b/interface/zswap.c index 43971b73e0..cabd0c8446 100644 --- a/interface/zswap.c +++ b/interface/zswap.c @@ -50,6 +50,8 @@ #undef SMP #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(blasint *N, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY){ diff --git a/interface/zsymv.c b/interface/zsymv.c index 1d6ff1f348..25beac13db 100644 --- a/interface/zsymv.c +++ b/interface/zsymv.c @@ -51,6 +51,8 @@ #define ERROR_NAME "CSYMV " #endif +OPENBLAS_EXPORT + void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a, blasint *LDA, FLOAT *b, blasint *INCX, FLOAT *BETA, FLOAT *c, blasint *INCY){ diff --git a/interface/zsyr.c b/interface/zsyr.c index 51cca84ee6..93bfc7a43e 100644 --- a/interface/zsyr.c +++ b/interface/zsyr.c @@ -73,6 +73,7 @@ static int (*syr_thread[])(BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLOAT *, BLASLO }; #endif +OPENBLAS_EXPORT #ifndef CBLAS diff --git a/interface/zsyr2.c b/interface/zsyr2.c index 7c81c20930..576a2ead0f 100644 --- a/interface/zsyr2.c +++ b/interface/zsyr2.c @@ -73,6 +73,7 @@ static int (*syr2_thread[])(BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLOAT *, BLASL }; #endif +OPENBLAS_EXPORT void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY, FLOAT *a, blasint *LDA){ diff --git a/interface/ztbmv.c b/interface/ztbmv.c index d56620c5bc..162cd207cf 100644 --- a/interface/ztbmv.c +++ b/interface/ztbmv.c @@ -91,6 +91,8 @@ static int (*tbmv_thread[])(BLASLONG, BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLAS }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, char *DIAG, diff --git a/interface/ztbsv.c b/interface/ztbsv.c index 7e144ce756..e51915d18f 100644 --- a/interface/ztbsv.c +++ b/interface/ztbsv.c @@ -70,6 +70,8 @@ static int (*tbsv[])(BLASLONG, BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, v #endif }; +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, char *DIAG, diff --git a/interface/ztpmv.c b/interface/ztpmv.c index 3791d16026..94238a3c09 100644 --- a/interface/ztpmv.c +++ b/interface/ztpmv.c @@ -91,6 +91,8 @@ static int (*tpmv_thread[])(BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLOAT *, int) }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, char *DIAG, diff --git a/interface/ztpsv.c b/interface/ztpsv.c index fa706b5657..4e927bccd6 100644 --- a/interface/ztpsv.c +++ b/interface/ztpsv.c @@ -70,6 +70,8 @@ static int (*tpsv[])(BLASLONG, FLOAT *, FLOAT *, BLASLONG, void *) = { #endif }; +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, char *DIAG, diff --git a/interface/ztrmv.c b/interface/ztrmv.c index 4c47e9e913..4e37a677c0 100644 --- a/interface/ztrmv.c +++ b/interface/ztrmv.c @@ -91,6 +91,8 @@ static int (*trmv_thread[])(BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOA }; #endif +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, char *DIAG, diff --git a/interface/ztrsv.c b/interface/ztrsv.c index cbb7bba13b..539d7e7a5d 100644 --- a/interface/ztrsv.c +++ b/interface/ztrsv.c @@ -70,6 +70,8 @@ static int (*trsv[])(BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, void *) = { #endif }; +OPENBLAS_EXPORT + #ifndef CBLAS void NAME(char *UPLO, char *TRANS, char *DIAG, diff --git a/kernel/generic/cabs.c b/kernel/generic/cabs.c index f76f69b20b..b89423ab81 100644 --- a/kernel/generic/cabs.c +++ b/kernel/generic/cabs.c @@ -39,6 +39,7 @@ #include #include "common.h" +OPENBLAS_EXPORT FLOAT NAME(FLOAT *a){ return fabs(a[0]) + fabs(a[1]); } diff --git a/kernel/generic/lsame.c b/kernel/generic/lsame.c index 83fff17982..b3ca14041c 100644 --- a/kernel/generic/lsame.c +++ b/kernel/generic/lsame.c @@ -38,6 +38,7 @@ #include +OPENBLAS_EXPORT int NAME(const char *A, const char *B){ char a = *A; diff --git a/kernel/ia64/cabs.S b/kernel/ia64/cabs.S index 834b1bd6db..92dc2a9236 100644 --- a/kernel/ia64/cabs.S +++ b/kernel/ia64/cabs.S @@ -39,7 +39,7 @@ #define ASSEMBLER #include "common.h" - PROLOGUE + PROLOGUE_EXPORT PROFCODE .prologue diff --git a/kernel/ia64/lsame.S b/kernel/ia64/lsame.S index 26da80e154..f5cc825e22 100644 --- a/kernel/ia64/lsame.S +++ b/kernel/ia64/lsame.S @@ -39,7 +39,7 @@ #define ASSEMBLER #include "common.h" - PROLOGUE + PROLOGUE_EXPORT PROFCODE .prologue diff --git a/kernel/power/cabs.S b/kernel/power/cabs.S index 28ae70318f..1c0b02b1fb 100644 --- a/kernel/power/cabs.S +++ b/kernel/power/cabs.S @@ -39,7 +39,7 @@ #define ASSEMBLER #include "common.h" - PROLOGUE + PROLOGUE_EXPORT PROFCODE LFD f0, 0 * SIZE(r3) diff --git a/kernel/power/lsame.S b/kernel/power/lsame.S index 51d21b041f..a77ff76ba8 100644 --- a/kernel/power/lsame.S +++ b/kernel/power/lsame.S @@ -39,7 +39,7 @@ #define ASSEMBLER #include "common.h" - PROLOGUE + PROLOGUE_EXPORT PROFCODE lbz r3, 0(r3) diff --git a/kernel/sparc/cabs.S b/kernel/sparc/cabs.S index d186faba62..fd5e38d6fd 100644 --- a/kernel/sparc/cabs.S +++ b/kernel/sparc/cabs.S @@ -39,7 +39,7 @@ #define ASSEMBLER #include "common.h" - PROLOGUE + PROLOGUE_EXPORT add %sp, -128, %sp diff --git a/kernel/sparc/lsame.S b/kernel/sparc/lsame.S index c00b565a56..5cb92196b4 100644 --- a/kernel/sparc/lsame.S +++ b/kernel/sparc/lsame.S @@ -44,7 +44,7 @@ #define AA %o4 #define BB %o3 - PROLOGUE + PROLOGUE_EXPORT ldub [A], A ldub [B], B diff --git a/kernel/x86/cabs.S b/kernel/x86/cabs.S index ba804202ea..bcd8cd2584 100644 --- a/kernel/x86/cabs.S +++ b/kernel/x86/cabs.S @@ -39,7 +39,7 @@ #define ASSEMBLER #include "common.h" - PROLOGUE + PROLOGUE_EXPORT PROFCODE #if defined(F_INTERFACE_GFORT) || defined(F_INTERFACE_G95) diff --git a/kernel/x86/lsame.S b/kernel/x86/lsame.S index 2a2ab2bb54..fd74ca83b6 100644 --- a/kernel/x86/lsame.S +++ b/kernel/x86/lsame.S @@ -39,7 +39,7 @@ #define ASSEMBLER #include "common.h" - PROLOGUE + PROLOGUE_EXPORT PROFCODE movl 4(%esp), %eax diff --git a/kernel/x86_64/cabs.S b/kernel/x86_64/cabs.S index 7de9ca4d5d..a0d6d39c79 100644 --- a/kernel/x86_64/cabs.S +++ b/kernel/x86_64/cabs.S @@ -39,7 +39,7 @@ #define ASSEMBLER #include "common.h" - PROLOGUE + PROLOGUE_EXPORT PROFCODE #ifdef DOUBLE diff --git a/kernel/x86_64/lsame.S b/kernel/x86_64/lsame.S index 8b1ca10db5..7f47cb72b2 100644 --- a/kernel/x86_64/lsame.S +++ b/kernel/x86_64/lsame.S @@ -44,7 +44,7 @@ #define XX ARG3 #define YY ARG4 - PROLOGUE + PROLOGUE_EXPORT PROFCODE movzbq (X), X diff --git a/lapack-netlib/LAPACKE/src/Makefile b/lapack-netlib/LAPACKE/src/Makefile index 969288f424..583c32922d 100644 --- a/lapack-netlib/LAPACKE/src/Makefile +++ b/lapack-netlib/LAPACKE/src/Makefile @@ -39,7 +39,7 @@ include $(TOPSRCDIR)/make.inc .SUFFIXES: .c .o .c.o: - $(CC) $(CFLAGS) -I../include -c -o $@ $< + $(CC) $(filter-out -fvisibility=hidden, $(CFLAGS)) -I../include -c -o $@ $< OBJ = \ lapacke_ilaver.o \ diff --git a/lapack-netlib/LAPACKE/utils/Makefile b/lapack-netlib/LAPACKE/utils/Makefile index a1f8631071..03cf5dcdd0 100644 --- a/lapack-netlib/LAPACKE/utils/Makefile +++ b/lapack-netlib/LAPACKE/utils/Makefile @@ -36,7 +36,7 @@ include $(TOPSRCDIR)/make.inc .SUFFIXES: .c .o .c.o: - $(CC) $(CFLAGS) -I../include -c -o $@ $< + $(CC) $(filter-out -fvisibility=hidden, $(CFLAGS)) -I../include -c -o $@ $< OBJ = lapacke_cgb_nancheck.o \ lapacke_cgb_trans.o \ From dbb135e5dc9bae7aebd03f561fa52d058dfb301d Mon Sep 17 00:00:00 2001 From: mattip Date: Mon, 22 Dec 2025 17:27:47 +0200 Subject: [PATCH 2/8] move defines to separate file for kernels/generic/lsame.c --- common.h | 24 +----------------------- exports.h | 29 +++++++++++++++++++++++++++++ kernel/generic/lsame.c | 1 + 3 files changed, 31 insertions(+), 23 deletions(-) create mode 100644 exports.h diff --git a/common.h b/common.h index a1ae66706d..5de78d9bad 100644 --- a/common.h +++ b/common.h @@ -57,6 +57,7 @@ extern "C" { #define __USE_SVID #endif +#include "exports.h" #ifdef BUILD_KERNEL #include "config_kernel.h" #else @@ -424,29 +425,6 @@ please https://github.com/xianyi/OpenBLAS/issues/246 #define BLAS3_MEM_ALLOC_THRESHOLD 32 #endif -/*** - For GCC/Clang, always use -fvisibility=hidden. Then mark exported function - implementations with OPENBLAS_EXPORT. For MSVC, using `__declspec` onces makes - the default atrribute for any function in the entire shared object hidden - (observed behaviour, documentation source needed). -**/ -#if defined (_WIN32) || defined (__CYGWIN__) -# if defined (__GNUC__) - /* GCC */ -# define OPENBLAS_EXPORT __attribute__ ((dllexport)) -# define OPENBLAS_IMPORT __attribute__ ((dllimport)) -# else - /* MSVC */ -# define OPENBLAS_EXPORT __declspec(dllexport) -# define OPENBLAS_IMPORT __declspec(dllimport) -# endif -#else - /* All other platforms. */ -# define OPENBLAS_EXPORT __attribute__ ((visibility ("default"))) -# define OPENBLAS_IMPORT -#endif - - #ifdef QUAD_PRECISION #include "common_quad.h" #endif diff --git a/exports.h b/exports.h new file mode 100644 index 0000000000..bda11a008f --- /dev/null +++ b/exports.h @@ -0,0 +1,29 @@ +#ifndef EXPORTS_H +#define EXPORTS_H + +#pragma once + +/*** + * For GCC/Clang, always use -fvisibility=hidden. Then mark exported function + * implementations with OPENBLAS_EXPORT. For MSVC, using `__declspec` onces makes + * the default atrribute for any function in the entire shared object hidden + * (observed behaviour, documentation source needed). + * **/ +#if defined (_WIN32) || defined (__CYGWIN__) +# if defined (__GNUC__) + /* GCC */ +# define OPENBLAS_EXPORT __attribute__ ((dllexport)) +# define OPENBLAS_IMPORT __attribute__ ((dllimport)) +# else + /* MSVC */ +# define OPENBLAS_EXPORT __declspec(dllexport) +# define OPENBLAS_IMPORT __declspec(dllimport) +# endif +#else + /* All other platforms. */ +# define OPENBLAS_EXPORT __attribute__ ((visibility ("default"))) +# define OPENBLAS_IMPORT +#endif + + +#endif // EXPORTS_H diff --git a/kernel/generic/lsame.c b/kernel/generic/lsame.c index b3ca14041c..5c7f0b17ce 100644 --- a/kernel/generic/lsame.c +++ b/kernel/generic/lsame.c @@ -37,6 +37,7 @@ /*********************************************************************/ #include +#include "exports.h" OPENBLAS_EXPORT int NAME(const char *A, const char *B){ From 7a3c742b376bd301d4a6b98ed51798e4b4631749 Mon Sep 17 00:00:00 2001 From: mattip Date: Mon, 22 Dec 2025 21:10:39 +0200 Subject: [PATCH 3/8] only use '.hidden' on ELF --- common_loongarch64.h | 10 +++++++--- common_mips.h | 10 +++++++--- common_mips64.h | 10 +++++++--- common_x86.h | 14 +++++++++----- common_x86_64.h | 13 ++++++++----- 5 files changed, 38 insertions(+), 19 deletions(-) diff --git a/common_loongarch64.h b/common_loongarch64.h index f2591b3561..2ae29acf9c 100644 --- a/common_loongarch64.h +++ b/common_loongarch64.h @@ -266,20 +266,24 @@ static inline int get_cpu_model(char *model_name) { #if defined(ASSEMBLER) && !defined(NEEDPARAM) -#define PROLOGUE \ +#define PROLOGUE_EXPORT \ .text ;\ .align 5 ;\ .globl REALNAME ;\ - .hidden REALNAME ;\ .type REALNAME, @function ;\ REALNAME: ;\ -#define PROLOGUE_EXPORT \ +#ifdef __ELF__ +#define PROLOGUE \ .text ;\ .align 5 ;\ .globl REALNAME ;\ + .hidden REALNAME ;\ .type REALNAME, @function ;\ REALNAME: ;\ +#else +#define PROLOGUE PROLOGUE_EXPORT +#endif #if defined(__linux__) && defined(__ELF__) #define GNUSTACK .section .note.GNU-stack,"",@progbits diff --git a/common_mips.h b/common_mips.h index f2ad78e5d5..6507cac177 100644 --- a/common_mips.h +++ b/common_mips.h @@ -73,16 +73,20 @@ static inline int blas_quickdivide(blasint x, blasint y){ #if defined(ASSEMBLER) && !defined(NEEDPARAM) -#define PROLOGUE \ +#define PROLOGUE_EXPORT \ .arm ;\ .global REALNAME ;\ - .hidden REALNAME ;\ REALNAME: -#define PROLOGUE_EXPORT \ +#ifdef __ELF__ +#define PROLOGUE \ .arm ;\ .global REALNAME ;\ + .hidden REALNAME ;\ REALNAME: +#else +#define PROLOGUE PROLOGUE_EXPORT +#endif #define EPILOGUE diff --git a/common_mips64.h b/common_mips64.h index e4949af97b..64b32f0228 100644 --- a/common_mips64.h +++ b/common_mips64.h @@ -205,28 +205,32 @@ static inline int blas_quickdivide(blasint x, blasint y){ #define ASSEMBLER_ARCH mips64 #endif -#define PROLOGUE \ +#define PROLOGUE_EXPORT \ .text ;\ .set ASSEMBLER_ARCH ;\ .align 5 ;\ .globl REALNAME ;\ - .hidden REALNAME ;\ .ent REALNAME ;\ .type REALNAME, @function ;\ REALNAME: ;\ .set noreorder ;\ .set nomacro -#define PROLOGUE_EXPORT \ +#ifdef __ELF__ +#define PROLOGUE \ .text ;\ .set ASSEMBLER_ARCH ;\ .align 5 ;\ .globl REALNAME ;\ + .hidden REALNAME ;\ .ent REALNAME ;\ .type REALNAME, @function ;\ REALNAME: ;\ .set noreorder ;\ .set nomacro +#else +#define PROLOGUE PROLOGUE_EXPORT +#endif #if defined(__linux__) && defined(__ELF__) #define GNUSTACK .section .note.GNU-stack,"",@progbits diff --git a/common_x86.h b/common_x86.h index ade3b9cb3b..9de9a85231 100644 --- a/common_x86.h +++ b/common_x86.h @@ -297,8 +297,8 @@ static __inline int blas_quickdivide(unsigned int x, unsigned int y){ #endif #ifdef OS_DARWIN -#define PROLOGUE .text;.align 5; .globl REALNAME; .hidden REALNAME; REALNAME: -#define PROLOGUE_EXPORT .text;.align 5; .globl REALNAME; REALNAME: +#define PROLOGUE .text;.align 5; .globl REALNAME; REALNAME: +#define PROLOGUE_EXPORT PROLOGUE #define EPILOGUE .subsections_via_symbols #define PROFCODE #endif @@ -319,20 +319,24 @@ static __inline int blas_quickdivide(unsigned int x, unsigned int y){ #endif #if defined(OS_WINNT) || defined(OS_CYGWIN_NT) || defined(OS_INTERIX) -#define PROLOGUE \ +#define PROLOGUE_EXPORT \ .text; \ .align 16; \ .globl REALNAME ;\ - .hidden REALNAME ;\ .def REALNAME;.scl 2;.type 32;.endef; \ REALNAME: -#define PROLOGUE_EXPORT \ +#ifdef __ELF__ +#define PROLOGUE \ .text; \ .align 16; \ .globl REALNAME ;\ + .hidden REALNAME ;\ .def REALNAME;.scl 2;.type 32;.endef; \ REALNAME: +#else +#define PROLOGUE PROLOGUE_EXPORT +#endif #define PROFCODE diff --git a/common_x86_64.h b/common_x86_64.h index 712d70edae..c754b576d2 100644 --- a/common_x86_64.h +++ b/common_x86_64.h @@ -400,7 +400,7 @@ static __inline unsigned int blas_quickdivide(unsigned int x, unsigned int y){ #endif #ifdef OS_DARWIN -#define PROLOGUE .text;.align 5; .globl REALNAME; .hidden REALNAME; REALNAME: +#define PROLOGUE .text;.align 5; .globl REALNAME; REALNAME: #define PROLOGUE_EXPORT .text;.align 5; .globl REALNAME; REALNAME: #define EPILOGUE .subsections_via_symbols #define PROFCODE @@ -438,20 +438,23 @@ static __inline unsigned int blas_quickdivide(unsigned int x, unsigned int y){ #endif #if defined(OS_WINDOWS) && !defined(C_PGI) -#define PROLOGUE \ +#define PROLOGUE_EXPORT \ .text; \ .align 16; \ .globl REALNAME ;\ - .hidden REALNAME ; \ .def REALNAME;.scl 2;.type 32;.endef; \ REALNAME: - -#define PROLOGUE_EXPORT \ +#ifdef __ELF__ +#define PROLOGUE \ .text; \ .align 16; \ .globl REALNAME ;\ + .hidden REALNAME ; \ .def REALNAME;.scl 2;.type 32;.endef; \ REALNAME: +#else +#define PROLOGUE PROLOGUE_EXPORT +#endif #define PROFCODE From e6072321a3b1f418bbf8cfec25c6cc6e2039e622 Mon Sep 17 00:00:00 2001 From: mattip Date: Mon, 22 Dec 2025 23:33:41 +0200 Subject: [PATCH 4/8] windows needs declaration to match definition --- common.h | 2 + common_interface.h | 994 ++++++++++++++++++++++----------------------- 2 files changed, 499 insertions(+), 497 deletions(-) diff --git a/common.h b/common.h index 5de78d9bad..b78d9f8bc6 100644 --- a/common.h +++ b/common.h @@ -194,8 +194,10 @@ extern "C" { #ifdef NEEDBUNDERSCORE #define BLASFUNC(FUNC) FUNC##_ +#define OPENBLAS_API(FUNC) OPENBLAS_EXPORT FUNC##_ #else #define BLASFUNC(FUNC) FUNC +#define OPENBLAS_API(FUNC) OPENBLAS_EXPORT FUNC #endif #undef USE_PTHREAD_LOCK diff --git a/common_interface.h b/common_interface.h index 380ce8d081..dd7aa9eced 100644 --- a/common_interface.h +++ b/common_interface.h @@ -46,26 +46,26 @@ extern "C" { int BLASFUNC(xerbla)(char *, blasint *info, blasint); -void openblas_set_num_threads_(int *); +void extern openblas_set_num_threads_(int *); /*Set the threading backend to a custom callback.*/ typedef void (*openblas_dojob_callback)(int thread_num, void *jobdata, int dojob_data); typedef void (*openblas_threads_callback)(int sync, openblas_dojob_callback dojob, int numjobs, size_t jobdata_elsize, void *jobdata, int dojob_data); extern openblas_threads_callback openblas_threads_callback_; -FLOATRET BLASFUNC(sdot) (blasint *, float *, blasint *, float *, blasint *); -FLOATRET BLASFUNC(sdsdot)(blasint *, float *, float *, blasint *, float *, blasint *); +FLOATRET OPENBLAS_API(sdot) (blasint *, float *, blasint *, float *, blasint *); +FLOATRET OPENBLAS_API(sdsdot)(blasint *, float *, float *, blasint *, float *, blasint *); -double BLASFUNC(dsdot) (blasint *, float *, blasint *, float *, blasint *); -double BLASFUNC(ddot) (blasint *, double *, blasint *, double *, blasint *); -xdouble BLASFUNC(qdot) (blasint *, xdouble *, blasint *, xdouble *, blasint *); +double OPENBLAS_API(dsdot) (blasint *, float *, blasint *, float *, blasint *); +double OPENBLAS_API(ddot) (blasint *, double *, blasint *, double *, blasint *); +xdouble OPENBLAS_API(qdot) (blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(bscal) (blasint *, bfloat16 *, bfloat16 *, blasint *); -float BLASFUNC(sbdot) (blasint *, bfloat16 *, blasint *, bfloat16 *, blasint *); -void BLASFUNC(sbstobf16) (blasint *, float *, blasint *, bfloat16 *, blasint *); -void BLASFUNC(sbdtobf16) (blasint *, double *, blasint *, bfloat16 *, blasint *); -void BLASFUNC(sbf16tos) (blasint *, bfloat16 *, blasint *, float *, blasint *); -void BLASFUNC(dbf16tod) (blasint *, bfloat16 *, blasint *, double *, blasint *); +void OPENBLAS_API(bscal) (blasint *, bfloat16 *, bfloat16 *, blasint *); +float OPENBLAS_API(sbdot) (blasint *, bfloat16 *, blasint *, bfloat16 *, blasint *); +void OPENBLAS_API(sbstobf16) (blasint *, float *, blasint *, bfloat16 *, blasint *); +void OPENBLAS_API(sbdtobf16) (blasint *, double *, blasint *, bfloat16 *, blasint *); +void OPENBLAS_API(sbf16tos) (blasint *, bfloat16 *, blasint *, float *, blasint *); +void OPENBLAS_API(dbf16tod) (blasint *, bfloat16 *, blasint *, double *, blasint *); #ifdef RETURN_BY_STRUCT typedef struct { @@ -80,731 +80,731 @@ typedef struct { xdouble r, i; } myxcomplex_t; -myccomplex_t BLASFUNC(cdotu) (blasint *, float *, blasint *, float *, blasint *); -myccomplex_t BLASFUNC(cdotc) (blasint *, float *, blasint *, float *, blasint *); -myzcomplex_t BLASFUNC(zdotu) (blasint *, double *, blasint *, double *, blasint *); -myzcomplex_t BLASFUNC(zdotc) (blasint *, double *, blasint *, double *, blasint *); -myxcomplex_t BLASFUNC(xdotu) (blasint *, xdouble *, blasint *, xdouble *, blasint *); -myxcomplex_t BLASFUNC(xdotc) (blasint *, xdouble *, blasint *, xdouble *, blasint *); +myccomplex_t OPENBLAS_API(cdotu) (blasint *, float *, blasint *, float *, blasint *); +myccomplex_t OPENBLAS_API(cdotc) (blasint *, float *, blasint *, float *, blasint *); +myzcomplex_t OPENBLAS_API(zdotu) (blasint *, double *, blasint *, double *, blasint *); +myzcomplex_t OPENBLAS_API(zdotc) (blasint *, double *, blasint *, double *, blasint *); +myxcomplex_t OPENBLAS_API(xdotu) (blasint *, xdouble *, blasint *, xdouble *, blasint *); +myxcomplex_t OPENBLAS_API(xdotc) (blasint *, xdouble *, blasint *, xdouble *, blasint *); #elif defined RETURN_BY_STACK -void BLASFUNC(cdotu) (openblas_complex_float *, blasint *, float * , blasint *, float *, blasint *); -void BLASFUNC(cdotc) (openblas_complex_float *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(zdotu) (openblas_complex_double *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(zdotc) (openblas_complex_double *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(xdotu) (openblas_complex_xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(xdotc) (openblas_complex_xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *); +void OPENBLAS_API(cdotu) (openblas_complex_float *, blasint *, float * , blasint *, float *, blasint *); +void OPENBLAS_API(cdotc) (openblas_complex_float *, blasint *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(zdotu) (openblas_complex_double *, blasint *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(zdotc) (openblas_complex_double *, blasint *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(xdotu) (openblas_complex_xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *); +void OPENBLAS_API(xdotc) (openblas_complex_xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *); #else -openblas_complex_float BLASFUNC(cdotu) (blasint *, float *, blasint *, float *, blasint *); -openblas_complex_float BLASFUNC(cdotc) (blasint *, float *, blasint *, float *, blasint *); -openblas_complex_double BLASFUNC(zdotu) (blasint *, double *, blasint *, double *, blasint *); -openblas_complex_double BLASFUNC(zdotc) (blasint *, double *, blasint *, double *, blasint *); -openblas_complex_xdouble BLASFUNC(xdotu) (blasint *, xdouble *, blasint *, xdouble *, blasint *); -openblas_complex_xdouble BLASFUNC(xdotc) (blasint *, xdouble *, blasint *, xdouble *, blasint *); +openblas_complex_float OPENBLAS_API(cdotu) (blasint *, float *, blasint *, float *, blasint *); +openblas_complex_float OPENBLAS_API(cdotc) (blasint *, float *, blasint *, float *, blasint *); +openblas_complex_double OPENBLAS_API(zdotu) (blasint *, double *, blasint *, double *, blasint *); +openblas_complex_double OPENBLAS_API(zdotc) (blasint *, double *, blasint *, double *, blasint *); +openblas_complex_xdouble OPENBLAS_API(xdotu) (blasint *, xdouble *, blasint *, xdouble *, blasint *); +openblas_complex_xdouble OPENBLAS_API(xdotc) (blasint *, xdouble *, blasint *, xdouble *, blasint *); #endif -void BLASFUNC(saxpy) (blasint *, float *, float *, blasint *, float *, blasint *); -void BLASFUNC(daxpy) (blasint *, double *, double *, blasint *, double *, blasint *); -void BLASFUNC(qaxpy) (blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(caxpy) (blasint *, float *, float *, blasint *, float *, blasint *); -void BLASFUNC(zaxpy) (blasint *, double *, double *, blasint *, double *, blasint *); -void BLASFUNC(xaxpy) (blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(caxpyc)(blasint *, float *, float *, blasint *, float *, blasint *); -void BLASFUNC(zaxpyc)(blasint *, double *, double *, blasint *, double *, blasint *); -void BLASFUNC(xaxpyc)(blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); - -void BLASFUNC(scopy) (blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(dcopy) (blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(qcopy) (blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(ccopy) (blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(zcopy) (blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(xcopy) (blasint *, xdouble *, blasint *, xdouble *, blasint *); - -void BLASFUNC(sswap) (blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(dswap) (blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(qswap) (blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(cswap) (blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(zswap) (blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(xswap) (blasint *, xdouble *, blasint *, xdouble *, blasint *); - -FLOATRET BLASFUNC(sasum) (blasint *, float *, blasint *); -FLOATRET BLASFUNC(scasum)(blasint *, float *, blasint *); -double BLASFUNC(dasum) (blasint *, double *, blasint *); -xdouble BLASFUNC(qasum) (blasint *, xdouble *, blasint *); -double BLASFUNC(dzasum)(blasint *, double *, blasint *); -xdouble BLASFUNC(qxasum)(blasint *, xdouble *, blasint *); - -FLOATRET BLASFUNC(ssum) (blasint *, float *, blasint *); -FLOATRET BLASFUNC(scsum)(blasint *, float *, blasint *); -double BLASFUNC(dsum) (blasint *, double *, blasint *); -xdouble BLASFUNC(qsum) (blasint *, xdouble *, blasint *); -double BLASFUNC(dzsum)(blasint *, double *, blasint *); -xdouble BLASFUNC(qxsum)(blasint *, xdouble *, blasint *); - -blasint BLASFUNC(isamax)(blasint *, float *, blasint *); -blasint BLASFUNC(idamax)(blasint *, double *, blasint *); -blasint BLASFUNC(iqamax)(blasint *, xdouble *, blasint *); -blasint BLASFUNC(icamax)(blasint *, float *, blasint *); -blasint BLASFUNC(izamax)(blasint *, double *, blasint *); -blasint BLASFUNC(ixamax)(blasint *, xdouble *, blasint *); - -blasint BLASFUNC(ismax) (blasint *, float *, blasint *); -blasint BLASFUNC(idmax) (blasint *, double *, blasint *); -blasint BLASFUNC(iqmax) (blasint *, xdouble *, blasint *); -blasint BLASFUNC(icmax) (blasint *, float *, blasint *); -blasint BLASFUNC(izmax) (blasint *, double *, blasint *); -blasint BLASFUNC(ixmax) (blasint *, xdouble *, blasint *); - -blasint BLASFUNC(isamin)(blasint *, float *, blasint *); -blasint BLASFUNC(idamin)(blasint *, double *, blasint *); -blasint BLASFUNC(iqamin)(blasint *, xdouble *, blasint *); -blasint BLASFUNC(icamin)(blasint *, float *, blasint *); -blasint BLASFUNC(izamin)(blasint *, double *, blasint *); -blasint BLASFUNC(ixamin)(blasint *, xdouble *, blasint *); - -blasint BLASFUNC(ismin)(blasint *, float *, blasint *); -blasint BLASFUNC(idmin)(blasint *, double *, blasint *); -blasint BLASFUNC(iqmin)(blasint *, xdouble *, blasint *); -blasint BLASFUNC(icmin)(blasint *, float *, blasint *); -blasint BLASFUNC(izmin)(blasint *, double *, blasint *); -blasint BLASFUNC(ixmin)(blasint *, xdouble *, blasint *); - -FLOATRET BLASFUNC(samax) (blasint *, float *, blasint *); -double BLASFUNC(damax) (blasint *, double *, blasint *); -xdouble BLASFUNC(qamax) (blasint *, xdouble *, blasint *); -FLOATRET BLASFUNC(scamax)(blasint *, float *, blasint *); -double BLASFUNC(dzamax)(blasint *, double *, blasint *); -xdouble BLASFUNC(qxamax)(blasint *, xdouble *, blasint *); - -FLOATRET BLASFUNC(samin) (blasint *, float *, blasint *); -double BLASFUNC(damin) (blasint *, double *, blasint *); -xdouble BLASFUNC(qamin) (blasint *, xdouble *, blasint *); -FLOATRET BLASFUNC(scamin)(blasint *, float *, blasint *); -double BLASFUNC(dzamin)(blasint *, double *, blasint *); -xdouble BLASFUNC(qxamin)(blasint *, xdouble *, blasint *); - -FLOATRET BLASFUNC(smax) (blasint *, float *, blasint *); -double BLASFUNC(dmax) (blasint *, double *, blasint *); -xdouble BLASFUNC(qmax) (blasint *, xdouble *, blasint *); -FLOATRET BLASFUNC(scmax) (blasint *, float *, blasint *); -double BLASFUNC(dzmax) (blasint *, double *, blasint *); -xdouble BLASFUNC(qxmax) (blasint *, xdouble *, blasint *); - -FLOATRET BLASFUNC(smin) (blasint *, float *, blasint *); -double BLASFUNC(dmin) (blasint *, double *, blasint *); -xdouble BLASFUNC(qmin) (blasint *, xdouble *, blasint *); -FLOATRET BLASFUNC(scmin) (blasint *, float *, blasint *); -double BLASFUNC(dzmin) (blasint *, double *, blasint *); -xdouble BLASFUNC(qxmin) (blasint *, xdouble *, blasint *); - -void BLASFUNC(sscal) (blasint *, float *, float *, blasint *); -void BLASFUNC(dscal) (blasint *, double *, double *, blasint *); -void BLASFUNC(qscal) (blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(cscal) (blasint *, float *, float *, blasint *); -void BLASFUNC(zscal) (blasint *, double *, double *, blasint *); -void BLASFUNC(xscal) (blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(csscal)(blasint *, float *, float *, blasint *); -void BLASFUNC(zdscal)(blasint *, double *, double *, blasint *); -void BLASFUNC(xqscal)(blasint *, xdouble *, xdouble *, blasint *); - -FLOATRET BLASFUNC(snrm2) (blasint *, float *, blasint *); -FLOATRET BLASFUNC(scnrm2)(blasint *, float *, blasint *); - -double BLASFUNC(dnrm2) (blasint *, double *, blasint *); -xdouble BLASFUNC(qnrm2) (blasint *, xdouble *, blasint *); -double BLASFUNC(dznrm2)(blasint *, double *, blasint *); -xdouble BLASFUNC(qxnrm2)(blasint *, xdouble *, blasint *); - -void BLASFUNC(srot) (blasint *, float *, blasint *, float *, blasint *, float *, float *); -void BLASFUNC(drot) (blasint *, double *, blasint *, double *, blasint *, double *, double *); -void BLASFUNC(qrot) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *); -void BLASFUNC(csrot) (blasint *, float *, blasint *, float *, blasint *, float *, float *); -void BLASFUNC(zdrot) (blasint *, double *, blasint *, double *, blasint *, double *, double *); -void BLASFUNC(xqrot) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *); - -void BLASFUNC(srotg) (float *, float *, float *, float *); -void BLASFUNC(drotg) (double *, double *, double *, double *); -void BLASFUNC(qrotg) (xdouble *, xdouble *, xdouble *, xdouble *); -void BLASFUNC(crotg) (float *, float *, float *, float *); -void BLASFUNC(zrotg) (double *, double *, double *, double *); -void BLASFUNC(xrotg) (xdouble *, xdouble *, xdouble *, xdouble *); - -void BLASFUNC(srotmg)(float *, float *, float *, float *, float *); -void BLASFUNC(drotmg)(double *, double *, double *, double *, double *); - -void BLASFUNC(srotm) (blasint *, float *, blasint *, float *, blasint *, float *); -void BLASFUNC(drotm) (blasint *, double *, blasint *, double *, blasint *, double *); -void BLASFUNC(qrotm) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *); +void OPENBLAS_API(saxpy) (blasint *, float *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(daxpy) (blasint *, double *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(qaxpy) (blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); +void OPENBLAS_API(caxpy) (blasint *, float *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(zaxpy) (blasint *, double *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(xaxpy) (blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); +void OPENBLAS_API(caxpyc)(blasint *, float *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(zaxpyc)(blasint *, double *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(xaxpyc)(blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); + +void OPENBLAS_API(scopy) (blasint *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(dcopy) (blasint *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(qcopy) (blasint *, xdouble *, blasint *, xdouble *, blasint *); +void OPENBLAS_API(ccopy) (blasint *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(zcopy) (blasint *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(xcopy) (blasint *, xdouble *, blasint *, xdouble *, blasint *); + +void OPENBLAS_API(sswap) (blasint *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(dswap) (blasint *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(qswap) (blasint *, xdouble *, blasint *, xdouble *, blasint *); +void OPENBLAS_API(cswap) (blasint *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(zswap) (blasint *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(xswap) (blasint *, xdouble *, blasint *, xdouble *, blasint *); + +FLOATRET OPENBLAS_API(sasum) (blasint *, float *, blasint *); +FLOATRET OPENBLAS_API(scasum)(blasint *, float *, blasint *); +double OPENBLAS_API(dasum) (blasint *, double *, blasint *); +xdouble OPENBLAS_API(qasum) (blasint *, xdouble *, blasint *); +double OPENBLAS_API(dzasum)(blasint *, double *, blasint *); +xdouble OPENBLAS_API(qxasum)(blasint *, xdouble *, blasint *); + +FLOATRET OPENBLAS_API(ssum) (blasint *, float *, blasint *); +FLOATRET OPENBLAS_API(scsum)(blasint *, float *, blasint *); +double OPENBLAS_API(dsum) (blasint *, double *, blasint *); +xdouble OPENBLAS_API(qsum) (blasint *, xdouble *, blasint *); +double OPENBLAS_API(dzsum)(blasint *, double *, blasint *); +xdouble OPENBLAS_API(qxsum)(blasint *, xdouble *, blasint *); + +blasint OPENBLAS_API(isamax)(blasint *, float *, blasint *); +blasint OPENBLAS_API(idamax)(blasint *, double *, blasint *); +blasint OPENBLAS_API(iqamax)(blasint *, xdouble *, blasint *); +blasint OPENBLAS_API(icamax)(blasint *, float *, blasint *); +blasint OPENBLAS_API(izamax)(blasint *, double *, blasint *); +blasint OPENBLAS_API(ixamax)(blasint *, xdouble *, blasint *); + +blasint OPENBLAS_API(ismax) (blasint *, float *, blasint *); +blasint OPENBLAS_API(idmax) (blasint *, double *, blasint *); +blasint OPENBLAS_API(iqmax) (blasint *, xdouble *, blasint *); +blasint OPENBLAS_API(icmax) (blasint *, float *, blasint *); +blasint OPENBLAS_API(izmax) (blasint *, double *, blasint *); +blasint OPENBLAS_API(ixmax) (blasint *, xdouble *, blasint *); + +blasint OPENBLAS_API(isamin)(blasint *, float *, blasint *); +blasint OPENBLAS_API(idamin)(blasint *, double *, blasint *); +blasint OPENBLAS_API(iqamin)(blasint *, xdouble *, blasint *); +blasint OPENBLAS_API(icamin)(blasint *, float *, blasint *); +blasint OPENBLAS_API(izamin)(blasint *, double *, blasint *); +blasint OPENBLAS_API(ixamin)(blasint *, xdouble *, blasint *); + +blasint OPENBLAS_API(ismin)(blasint *, float *, blasint *); +blasint OPENBLAS_API(idmin)(blasint *, double *, blasint *); +blasint OPENBLAS_API(iqmin)(blasint *, xdouble *, blasint *); +blasint OPENBLAS_API(icmin)(blasint *, float *, blasint *); +blasint OPENBLAS_API(izmin)(blasint *, double *, blasint *); +blasint OPENBLAS_API(ixmin)(blasint *, xdouble *, blasint *); + +FLOATRET OPENBLAS_API(samax) (blasint *, float *, blasint *); +double OPENBLAS_API(damax) (blasint *, double *, blasint *); +xdouble OPENBLAS_API(qamax) (blasint *, xdouble *, blasint *); +FLOATRET OPENBLAS_API(scamax)(blasint *, float *, blasint *); +double OPENBLAS_API(dzamax)(blasint *, double *, blasint *); +xdouble OPENBLAS_API(qxamax)(blasint *, xdouble *, blasint *); + +FLOATRET OPENBLAS_API(samin) (blasint *, float *, blasint *); +double OPENBLAS_API(damin) (blasint *, double *, blasint *); +xdouble OPENBLAS_API(qamin) (blasint *, xdouble *, blasint *); +FLOATRET OPENBLAS_API(scamin)(blasint *, float *, blasint *); +double OPENBLAS_API(dzamin)(blasint *, double *, blasint *); +xdouble OPENBLAS_API(qxamin)(blasint *, xdouble *, blasint *); + +FLOATRET OPENBLAS_API(smax) (blasint *, float *, blasint *); +double OPENBLAS_API(dmax) (blasint *, double *, blasint *); +xdouble OPENBLAS_API(qmax) (blasint *, xdouble *, blasint *); +FLOATRET OPENBLAS_API(scmax) (blasint *, float *, blasint *); +double OPENBLAS_API(dzmax) (blasint *, double *, blasint *); +xdouble OPENBLAS_API(qxmax) (blasint *, xdouble *, blasint *); + +FLOATRET OPENBLAS_API(smin) (blasint *, float *, blasint *); +double OPENBLAS_API(dmin) (blasint *, double *, blasint *); +xdouble OPENBLAS_API(qmin) (blasint *, xdouble *, blasint *); +FLOATRET OPENBLAS_API(scmin) (blasint *, float *, blasint *); +double OPENBLAS_API(dzmin) (blasint *, double *, blasint *); +xdouble OPENBLAS_API(qxmin) (blasint *, xdouble *, blasint *); + +void OPENBLAS_API(sscal) (blasint *, float *, float *, blasint *); +void OPENBLAS_API(dscal) (blasint *, double *, double *, blasint *); +void OPENBLAS_API(qscal) (blasint *, xdouble *, xdouble *, blasint *); +void OPENBLAS_API(cscal) (blasint *, float *, float *, blasint *); +void OPENBLAS_API(zscal) (blasint *, double *, double *, blasint *); +void OPENBLAS_API(xscal) (blasint *, xdouble *, xdouble *, blasint *); +void OPENBLAS_API(csscal)(blasint *, float *, float *, blasint *); +void OPENBLAS_API(zdscal)(blasint *, double *, double *, blasint *); +void OPENBLAS_API(xqscal)(blasint *, xdouble *, xdouble *, blasint *); + +FLOATRET OPENBLAS_API(snrm2) (blasint *, float *, blasint *); +FLOATRET OPENBLAS_API(scnrm2)(blasint *, float *, blasint *); + +double OPENBLAS_API(dnrm2) (blasint *, double *, blasint *); +xdouble OPENBLAS_API(qnrm2) (blasint *, xdouble *, blasint *); +double OPENBLAS_API(dznrm2)(blasint *, double *, blasint *); +xdouble OPENBLAS_API(qxnrm2)(blasint *, xdouble *, blasint *); + +void OPENBLAS_API(srot) (blasint *, float *, blasint *, float *, blasint *, float *, float *); +void OPENBLAS_API(drot) (blasint *, double *, blasint *, double *, blasint *, double *, double *); +void OPENBLAS_API(qrot) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *); +void OPENBLAS_API(csrot) (blasint *, float *, blasint *, float *, blasint *, float *, float *); +void OPENBLAS_API(zdrot) (blasint *, double *, blasint *, double *, blasint *, double *, double *); +void OPENBLAS_API(xqrot) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *); + +void OPENBLAS_API(srotg) (float *, float *, float *, float *); +void OPENBLAS_API(drotg) (double *, double *, double *, double *); +void OPENBLAS_API(qrotg) (xdouble *, xdouble *, xdouble *, xdouble *); +void OPENBLAS_API(crotg) (float *, float *, float *, float *); +void OPENBLAS_API(zrotg) (double *, double *, double *, double *); +void OPENBLAS_API(xrotg) (xdouble *, xdouble *, xdouble *, xdouble *); + +void OPENBLAS_API(srotmg)(float *, float *, float *, float *, float *); +void OPENBLAS_API(drotmg)(double *, double *, double *, double *, double *); + +void OPENBLAS_API(srotm) (blasint *, float *, blasint *, float *, blasint *, float *); +void OPENBLAS_API(drotm) (blasint *, double *, blasint *, double *, blasint *, double *); +void OPENBLAS_API(qrotm) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *); /* Level 2 routines */ -void BLASFUNC(sger)(blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(sger)(blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(dger)(blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(dger)(blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(qger)(blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(qger)(blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(cgeru)(blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(cgeru)(blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(cgerc)(blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(cgerc)(blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(zgeru)(blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zgeru)(blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(zgerc)(blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zgerc)(blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(xgeru)(blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xgeru)(blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(xgerc)(blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xgerc)(blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(bgemv)(char *, blasint *, blasint *, bfloat16 *, bfloat16 *, blasint *, +void OPENBLAS_API(bgemv)(char *, blasint *, blasint *, bfloat16 *, bfloat16 *, blasint *, bfloat16 *, blasint *, bfloat16 *, bfloat16 *, blasint *); -void BLASFUNC(sbgemv)(char *, blasint *, blasint *, float *, bfloat16 *, blasint *, +void OPENBLAS_API(sbgemv)(char *, blasint *, blasint *, float *, bfloat16 *, blasint *, bfloat16 *, blasint *, float *, float *, blasint *); -void BLASFUNC(shgemv)(char *, blasint *, blasint *, float *, hfloat16 *, blasint *, +void OPENBLAS_API(shgemv)(char *, blasint *, blasint *, float *, hfloat16 *, blasint *, hfloat16 *, blasint *, float *, float *, blasint *); -void BLASFUNC(sgemv)(char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(sgemv)(char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(dgemv)(char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(dgemv)(char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(qgemv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(qgemv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(cgemv)(char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(cgemv)(char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zgemv)(char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zgemv)(char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xgemv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xgemv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(strsv) (char *, char *, char *, blasint *, float *, blasint *, +void OPENBLAS_API(strsv) (char *, char *, char *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(dtrsv) (char *, char *, char *, blasint *, double *, blasint *, +void OPENBLAS_API(dtrsv) (char *, char *, char *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(qtrsv) (char *, char *, char *, blasint *, xdouble *, blasint *, +void OPENBLAS_API(qtrsv) (char *, char *, char *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(ctrsv) (char *, char *, char *, blasint *, float *, blasint *, +void OPENBLAS_API(ctrsv) (char *, char *, char *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(ztrsv) (char *, char *, char *, blasint *, double *, blasint *, +void OPENBLAS_API(ztrsv) (char *, char *, char *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(xtrsv) (char *, char *, char *, blasint *, xdouble *, blasint *, +void OPENBLAS_API(xtrsv) (char *, char *, char *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(strmv) (char *, char *, char *, blasint *, float *, blasint *, +void OPENBLAS_API(strmv) (char *, char *, char *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(dtrmv) (char *, char *, char *, blasint *, double *, blasint *, +void OPENBLAS_API(dtrmv) (char *, char *, char *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(qtrmv) (char *, char *, char *, blasint *, xdouble *, blasint *, +void OPENBLAS_API(qtrmv) (char *, char *, char *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(ctrmv) (char *, char *, char *, blasint *, float *, blasint *, +void OPENBLAS_API(ctrmv) (char *, char *, char *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(ztrmv) (char *, char *, char *, blasint *, double *, blasint *, +void OPENBLAS_API(ztrmv) (char *, char *, char *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(xtrmv) (char *, char *, char *, blasint *, xdouble *, blasint *, +void OPENBLAS_API(xtrmv) (char *, char *, char *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(stpsv) (char *, char *, char *, blasint *, float *, float *, blasint *); -void BLASFUNC(dtpsv) (char *, char *, char *, blasint *, double *, double *, blasint *); -void BLASFUNC(qtpsv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(ctpsv) (char *, char *, char *, blasint *, float *, float *, blasint *); -void BLASFUNC(ztpsv) (char *, char *, char *, blasint *, double *, double *, blasint *); -void BLASFUNC(xtpsv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *); - -void BLASFUNC(stpmv) (char *, char *, char *, blasint *, float *, float *, blasint *); -void BLASFUNC(dtpmv) (char *, char *, char *, blasint *, double *, double *, blasint *); -void BLASFUNC(qtpmv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(ctpmv) (char *, char *, char *, blasint *, float *, float *, blasint *); -void BLASFUNC(ztpmv) (char *, char *, char *, blasint *, double *, double *, blasint *); -void BLASFUNC(xtpmv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *); - -void BLASFUNC(stbmv) (char *, char *, char *, blasint *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(dtbmv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(qtbmv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(ctbmv) (char *, char *, char *, blasint *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(ztbmv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(xtbmv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *); - -void BLASFUNC(stbsv) (char *, char *, char *, blasint *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(dtbsv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(qtbsv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(ctbsv) (char *, char *, char *, blasint *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(ztbsv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(xtbsv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *); - -void BLASFUNC(ssymv) (char *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(stpsv) (char *, char *, char *, blasint *, float *, float *, blasint *); +void OPENBLAS_API(dtpsv) (char *, char *, char *, blasint *, double *, double *, blasint *); +void OPENBLAS_API(qtpsv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *); +void OPENBLAS_API(ctpsv) (char *, char *, char *, blasint *, float *, float *, blasint *); +void OPENBLAS_API(ztpsv) (char *, char *, char *, blasint *, double *, double *, blasint *); +void OPENBLAS_API(xtpsv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *); + +void OPENBLAS_API(stpmv) (char *, char *, char *, blasint *, float *, float *, blasint *); +void OPENBLAS_API(dtpmv) (char *, char *, char *, blasint *, double *, double *, blasint *); +void OPENBLAS_API(qtpmv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *); +void OPENBLAS_API(ctpmv) (char *, char *, char *, blasint *, float *, float *, blasint *); +void OPENBLAS_API(ztpmv) (char *, char *, char *, blasint *, double *, double *, blasint *); +void OPENBLAS_API(xtpmv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *); + +void OPENBLAS_API(stbmv) (char *, char *, char *, blasint *, blasint *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(dtbmv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(qtbmv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *); +void OPENBLAS_API(ctbmv) (char *, char *, char *, blasint *, blasint *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(ztbmv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(xtbmv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *); + +void OPENBLAS_API(stbsv) (char *, char *, char *, blasint *, blasint *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(dtbsv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(qtbsv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *); +void OPENBLAS_API(ctbsv) (char *, char *, char *, blasint *, blasint *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(ztbsv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(xtbsv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *); + +void OPENBLAS_API(ssymv) (char *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(dsymv) (char *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(dsymv) (char *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(qsymv) (char *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(qsymv) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(csymv) (char *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(csymv) (char *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zsymv) (char *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zsymv) (char *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xsymv) (char *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xsymv) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(sspmv) (char *, blasint *, float *, float *, +void OPENBLAS_API(sspmv) (char *, blasint *, float *, float *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(dspmv) (char *, blasint *, double *, double *, +void OPENBLAS_API(dspmv) (char *, blasint *, double *, double *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(qspmv) (char *, blasint *, xdouble *, xdouble *, +void OPENBLAS_API(qspmv) (char *, blasint *, xdouble *, xdouble *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(cspmv) (char *, blasint *, float *, float *, +void OPENBLAS_API(cspmv) (char *, blasint *, float *, float *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zspmv) (char *, blasint *, double *, double *, +void OPENBLAS_API(zspmv) (char *, blasint *, double *, double *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xspmv) (char *, blasint *, xdouble *, xdouble *, +void OPENBLAS_API(xspmv) (char *, blasint *, xdouble *, xdouble *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(ssyr) (char *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(ssyr) (char *, blasint *, float *, float *, blasint *, float *, blasint *); -void BLASFUNC(dsyr) (char *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(dsyr) (char *, blasint *, double *, double *, blasint *, double *, blasint *); -void BLASFUNC(qsyr) (char *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(qsyr) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(csyr) (char *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(csyr) (char *, blasint *, float *, float *, blasint *, float *, blasint *); -void BLASFUNC(zsyr) (char *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zsyr) (char *, blasint *, double *, double *, blasint *, double *, blasint *); -void BLASFUNC(xsyr) (char *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xsyr) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(ssyr2) (char *, blasint *, float *, +void OPENBLAS_API(ssyr2) (char *, blasint *, float *, float *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(dsyr2) (char *, blasint *, double *, +void OPENBLAS_API(dsyr2) (char *, blasint *, double *, double *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(qsyr2) (char *, blasint *, xdouble *, +void OPENBLAS_API(qsyr2) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(csyr2) (char *, blasint *, float *, +void OPENBLAS_API(csyr2) (char *, blasint *, float *, float *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(zsyr2) (char *, blasint *, double *, +void OPENBLAS_API(zsyr2) (char *, blasint *, double *, double *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(xsyr2) (char *, blasint *, xdouble *, +void OPENBLAS_API(xsyr2) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(sspr) (char *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(sspr) (char *, blasint *, float *, float *, blasint *, float *); -void BLASFUNC(dspr) (char *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(dspr) (char *, blasint *, double *, double *, blasint *, double *); -void BLASFUNC(qspr) (char *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(qspr) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *); -void BLASFUNC(cspr) (char *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(cspr) (char *, blasint *, float *, float *, blasint *, float *); -void BLASFUNC(zspr) (char *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zspr) (char *, blasint *, double *, double *, blasint *, double *); -void BLASFUNC(xspr) (char *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xspr) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *); -void BLASFUNC(sspr2) (char *, blasint *, float *, +void OPENBLAS_API(sspr2) (char *, blasint *, float *, float *, blasint *, float *, blasint *, float *); -void BLASFUNC(dspr2) (char *, blasint *, double *, +void OPENBLAS_API(dspr2) (char *, blasint *, double *, double *, blasint *, double *, blasint *, double *); -void BLASFUNC(qspr2) (char *, blasint *, xdouble *, +void OPENBLAS_API(qspr2) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *); -void BLASFUNC(cspr2) (char *, blasint *, float *, +void OPENBLAS_API(cspr2) (char *, blasint *, float *, float *, blasint *, float *, blasint *, float *); -void BLASFUNC(zspr2) (char *, blasint *, double *, +void OPENBLAS_API(zspr2) (char *, blasint *, double *, double *, blasint *, double *, blasint *, double *); -void BLASFUNC(xspr2) (char *, blasint *, xdouble *, +void OPENBLAS_API(xspr2) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *); -void BLASFUNC(cher) (char *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(cher) (char *, blasint *, float *, float *, blasint *, float *, blasint *); -void BLASFUNC(zher) (char *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zher) (char *, blasint *, double *, double *, blasint *, double *, blasint *); -void BLASFUNC(xher) (char *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xher) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(chpr) (char *, blasint *, float *, float *, blasint *, float *); -void BLASFUNC(zhpr) (char *, blasint *, double *, double *, blasint *, double *); -void BLASFUNC(xhpr) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *); +void OPENBLAS_API(chpr) (char *, blasint *, float *, float *, blasint *, float *); +void OPENBLAS_API(zhpr) (char *, blasint *, double *, double *, blasint *, double *); +void OPENBLAS_API(xhpr) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *); -void BLASFUNC(cher2) (char *, blasint *, float *, +void OPENBLAS_API(cher2) (char *, blasint *, float *, float *, blasint *, float *, blasint *, float *, blasint *); -void BLASFUNC(zher2) (char *, blasint *, double *, +void OPENBLAS_API(zher2) (char *, blasint *, double *, double *, blasint *, double *, blasint *, double *, blasint *); -void BLASFUNC(xher2) (char *, blasint *, xdouble *, +void OPENBLAS_API(xher2) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(chpr2) (char *, blasint *, float *, +void OPENBLAS_API(chpr2) (char *, blasint *, float *, float *, blasint *, float *, blasint *, float *); -void BLASFUNC(zhpr2) (char *, blasint *, double *, +void OPENBLAS_API(zhpr2) (char *, blasint *, double *, double *, blasint *, double *, blasint *, double *); -void BLASFUNC(xhpr2) (char *, blasint *, xdouble *, +void OPENBLAS_API(xhpr2) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *); -void BLASFUNC(chemv) (char *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(chemv) (char *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zhemv) (char *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zhemv) (char *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xhemv) (char *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xhemv) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(chpmv) (char *, blasint *, float *, float *, +void OPENBLAS_API(chpmv) (char *, blasint *, float *, float *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zhpmv) (char *, blasint *, double *, double *, +void OPENBLAS_API(zhpmv) (char *, blasint *, double *, double *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xhpmv) (char *, blasint *, xdouble *, xdouble *, +void OPENBLAS_API(xhpmv) (char *, blasint *, xdouble *, xdouble *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -int BLASFUNC(snorm)(char *, blasint *, blasint *, float *, blasint *); -int BLASFUNC(dnorm)(char *, blasint *, blasint *, double *, blasint *); -int BLASFUNC(cnorm)(char *, blasint *, blasint *, float *, blasint *); -int BLASFUNC(znorm)(char *, blasint *, blasint *, double *, blasint *); +int OPENBLAS_API(snorm)(char *, blasint *, blasint *, float *, blasint *); +int OPENBLAS_API(dnorm)(char *, blasint *, blasint *, double *, blasint *); +int OPENBLAS_API(cnorm)(char *, blasint *, blasint *, float *, blasint *); +int OPENBLAS_API(znorm)(char *, blasint *, blasint *, double *, blasint *); -void BLASFUNC(sgbmv)(char *, blasint *, blasint *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(sgbmv)(char *, blasint *, blasint *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(dgbmv)(char *, blasint *, blasint *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(dgbmv)(char *, blasint *, blasint *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(qgbmv)(char *, blasint *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(qgbmv)(char *, blasint *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(cgbmv)(char *, blasint *, blasint *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(cgbmv)(char *, blasint *, blasint *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zgbmv)(char *, blasint *, blasint *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zgbmv)(char *, blasint *, blasint *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xgbmv)(char *, blasint *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xgbmv)(char *, blasint *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(ssbmv)(char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(ssbmv)(char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(dsbmv)(char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(dsbmv)(char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(qsbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(qsbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(csbmv)(char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(csbmv)(char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zsbmv)(char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zsbmv)(char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xsbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xsbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(chbmv)(char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(chbmv)(char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zhbmv)(char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zhbmv)(char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xhbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xhbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); /* Level 3 routines */ -void BLASFUNC(shgemm)(char *, char *, blasint *, blasint *, blasint *, float *, +void OPENBLAS_API(shgemm)(char *, char *, blasint *, blasint *, blasint *, float *, hfloat16 *, blasint *, hfloat16 *, blasint *, float *, float *, blasint *); -void BLASFUNC(bgemm)(char *, char *, blasint *, blasint *, blasint *, bfloat16 *, +void OPENBLAS_API(bgemm)(char *, char *, blasint *, blasint *, blasint *, bfloat16 *, bfloat16 *, blasint *, bfloat16 *, blasint *, bfloat16 *, bfloat16 *, blasint *); -void BLASFUNC(sbgemm)(char *, char *, blasint *, blasint *, blasint *, float *, +void OPENBLAS_API(sbgemm)(char *, char *, blasint *, blasint *, blasint *, float *, bfloat16 *, blasint *, bfloat16 *, blasint *, float *, float *, blasint *); -void BLASFUNC(sgemm)(char *, char *, blasint *, blasint *, blasint *, float *, +void OPENBLAS_API(sgemm)(char *, char *, blasint *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(dgemm)(char *, char *, blasint *, blasint *, blasint *, double *, +void OPENBLAS_API(dgemm)(char *, char *, blasint *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(qgemm)(char *, char *, blasint *, blasint *, blasint *, xdouble *, +void OPENBLAS_API(qgemm)(char *, char *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(cgemm)(char *, char *, blasint *, blasint *, blasint *, float *, +void OPENBLAS_API(cgemm)(char *, char *, blasint *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zgemm)(char *, char *, blasint *, blasint *, blasint *, double *, +void OPENBLAS_API(zgemm)(char *, char *, blasint *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xgemm)(char *, char *, blasint *, blasint *, blasint *, xdouble *, +void OPENBLAS_API(xgemm)(char *, char *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(cgemm3m)(char *, char *, blasint *, blasint *, blasint *, float *, +void OPENBLAS_API(cgemm3m)(char *, char *, blasint *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zgemm3m)(char *, char *, blasint *, blasint *, blasint *, double *, +void OPENBLAS_API(zgemm3m)(char *, char *, blasint *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xgemm3m)(char *, char *, blasint *, blasint *, blasint *, xdouble *, +void OPENBLAS_API(xgemm3m)(char *, char *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(sgemmt)(char*, char *, char *, blasint *, blasint *, float *, +void OPENBLAS_API(sgemmt)(char*, char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(dgemmt)(char*, char *, char *, blasint *, blasint *, double *, +void OPENBLAS_API(dgemmt)(char*, char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(cgemmt)(char*, char *, char *, blasint *, blasint *, float *, +void OPENBLAS_API(cgemmt)(char*, char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zgemmt)(char*, char *, char *, blasint *, blasint *, double *, +void OPENBLAS_API(zgemmt)(char*, char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -int BLASFUNC(sge2mm)(char *, char *, char *, blasint *, blasint *, +int OPENBLAS_API(sge2mm)(char *, char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -int BLASFUNC(dge2mm)(char *, char *, char *, blasint *, blasint *, +int OPENBLAS_API(dge2mm)(char *, char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -int BLASFUNC(cge2mm)(char *, char *, char *, blasint *, blasint *, +int OPENBLAS_API(cge2mm)(char *, char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -int BLASFUNC(zge2mm)(char *, char *, char *, blasint *, blasint *, +int OPENBLAS_API(zge2mm)(char *, char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(strsm)(char *, char *, char *, char *, blasint *, blasint *, +void OPENBLAS_API(strsm)(char *, char *, char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *); -void BLASFUNC(dtrsm)(char *, char *, char *, char *, blasint *, blasint *, +void OPENBLAS_API(dtrsm)(char *, char *, char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *); -void BLASFUNC(qtrsm)(char *, char *, char *, char *, blasint *, blasint *, +void OPENBLAS_API(qtrsm)(char *, char *, char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(ctrsm)(char *, char *, char *, char *, blasint *, blasint *, +void OPENBLAS_API(ctrsm)(char *, char *, char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *); -void BLASFUNC(ztrsm)(char *, char *, char *, char *, blasint *, blasint *, +void OPENBLAS_API(ztrsm)(char *, char *, char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *); -void BLASFUNC(xtrsm)(char *, char *, char *, char *, blasint *, blasint *, +void OPENBLAS_API(xtrsm)(char *, char *, char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(strmm)(char *, char *, char *, char *, blasint *, blasint *, +void OPENBLAS_API(strmm)(char *, char *, char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *); -void BLASFUNC(dtrmm)(char *, char *, char *, char *, blasint *, blasint *, +void OPENBLAS_API(dtrmm)(char *, char *, char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *); -void BLASFUNC(qtrmm)(char *, char *, char *, char *, blasint *, blasint *, +void OPENBLAS_API(qtrmm)(char *, char *, char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(ctrmm)(char *, char *, char *, char *, blasint *, blasint *, +void OPENBLAS_API(ctrmm)(char *, char *, char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *); -void BLASFUNC(ztrmm)(char *, char *, char *, char *, blasint *, blasint *, +void OPENBLAS_API(ztrmm)(char *, char *, char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *); -void BLASFUNC(xtrmm)(char *, char *, char *, char *, blasint *, blasint *, +void OPENBLAS_API(xtrmm)(char *, char *, char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *); -void BLASFUNC(ssymm)(char *, char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(ssymm)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(dsymm)(char *, char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(dsymm)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(qsymm)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(qsymm)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(csymm)(char *, char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(csymm)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zsymm)(char *, char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zsymm)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xsymm)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xsymm)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(csymm3m)(char *, char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(csymm3m)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zsymm3m)(char *, char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zsymm3m)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xsymm3m)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xsymm3m)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(ssyrk)(char *, char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(ssyrk)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(dsyrk)(char *, char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(dsyrk)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(qsyrk)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(qsyrk)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(csyrk)(char *, char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(csyrk)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zsyrk)(char *, char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zsyrk)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xsyrk)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xsyrk)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(ssyr2k)(char *, char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(ssyr2k)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(dsyr2k)(char *, char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(dsyr2k)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double*, blasint *, double *, double *, blasint *); -void BLASFUNC(qsyr2k)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(qsyr2k)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble*, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(csyr2k)(char *, char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(csyr2k)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zsyr2k)(char *, char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zsyr2k)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double*, blasint *, double *, double *, blasint *); -void BLASFUNC(xsyr2k)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xsyr2k)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble*, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(chemm)(char *, char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(chemm)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zhemm)(char *, char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zhemm)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xhemm)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xhemm)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(chemm3m)(char *, char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(chemm3m)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zhemm3m)(char *, char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zhemm3m)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xhemm3m)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xhemm3m)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(cherk)(char *, char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(cherk)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zherk)(char *, char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zherk)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(xherk)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xherk)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -void BLASFUNC(cher2k)(char *, char *, blasint *, blasint *, float *, float *, blasint *, +void OPENBLAS_API(cher2k)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(zher2k)(char *, char *, blasint *, blasint *, double *, double *, blasint *, +void OPENBLAS_API(zher2k)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double*, blasint *, double *, double *, blasint *); -void BLASFUNC(xher2k)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +void OPENBLAS_API(xher2k)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble*, blasint *, xdouble *, xdouble *, blasint *); -int BLASFUNC(cher2m)(char *, char *, char *, blasint *, blasint *, float *, float *, blasint *, +int OPENBLAS_API(cher2m)(char *, char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -int BLASFUNC(zher2m)(char *, char *, char *, blasint *, blasint *, double *, double *, blasint *, +int OPENBLAS_API(zher2m)(char *, char *, char *, blasint *, blasint *, double *, double *, blasint *, double*, blasint *, double *, double *, blasint *); -int BLASFUNC(xher2m)(char *, char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, +int OPENBLAS_API(xher2m)(char *, char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble*, blasint *, xdouble *, xdouble *, blasint *); -int BLASFUNC(sgemt)(char *, blasint *, blasint *, float *, float *, blasint *, +int OPENBLAS_API(sgemt)(char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *); -int BLASFUNC(dgemt)(char *, blasint *, blasint *, double *, double *, blasint *, +int OPENBLAS_API(dgemt)(char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *); -int BLASFUNC(cgemt)(char *, blasint *, blasint *, float *, float *, blasint *, +int OPENBLAS_API(cgemt)(char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *); -int BLASFUNC(zgemt)(char *, blasint *, blasint *, double *, double *, blasint *, +int OPENBLAS_API(zgemt)(char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *); -int BLASFUNC(sgema)(char *, char *, blasint *, blasint *, float *, +int OPENBLAS_API(sgema)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint *, float *, blasint *); -int BLASFUNC(dgema)(char *, char *, blasint *, blasint *, double *, +int OPENBLAS_API(dgema)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double*, double *, blasint *, double*, blasint *); -int BLASFUNC(cgema)(char *, char *, blasint *, blasint *, float *, +int OPENBLAS_API(cgema)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint *, float *, blasint *); -int BLASFUNC(zgema)(char *, char *, blasint *, blasint *, double *, +int OPENBLAS_API(zgema)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double*, double *, blasint *, double*, blasint *); -int BLASFUNC(sgems)(char *, char *, blasint *, blasint *, float *, +int OPENBLAS_API(sgems)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint *, float *, blasint *); -int BLASFUNC(dgems)(char *, char *, blasint *, blasint *, double *, +int OPENBLAS_API(dgems)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double*, double *, blasint *, double*, blasint *); -int BLASFUNC(cgems)(char *, char *, blasint *, blasint *, float *, +int OPENBLAS_API(cgems)(char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint *, float *, blasint *); -int BLASFUNC(zgems)(char *, char *, blasint *, blasint *, double *, +int OPENBLAS_API(zgems)(char *, char *, blasint *, blasint *, double *, double *, blasint *, double*, double *, blasint *, double*, blasint *); -int BLASFUNC(sgemc)(char *, char *, blasint *, blasint *, blasint *, float *, +int OPENBLAS_API(sgemc)(char *, char *, blasint *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -int BLASFUNC(dgemc)(char *, char *, blasint *, blasint *, blasint *, double *, +int OPENBLAS_API(dgemc)(char *, char *, blasint *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -int BLASFUNC(qgemc)(char *, char *, blasint *, blasint *, blasint *, xdouble *, +int OPENBLAS_API(qgemc)(char *, char *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); -int BLASFUNC(cgemc)(char *, char *, blasint *, blasint *, blasint *, float *, +int OPENBLAS_API(cgemc)(char *, char *, blasint *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *, float *, blasint *, float *, float *, blasint *); -int BLASFUNC(zgemc)(char *, char *, blasint *, blasint *, blasint *, double *, +int OPENBLAS_API(zgemc)(char *, char *, blasint *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *, double *, blasint *, double *, double *, blasint *); -int BLASFUNC(xgemc)(char *, char *, blasint *, blasint *, blasint *, xdouble *, +int OPENBLAS_API(xgemc)(char *, char *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *); /* Lapack routines */ -int BLASFUNC(sgetf2)(blasint *, blasint *, float *, blasint *, blasint *, blasint *); -int BLASFUNC(dgetf2)(blasint *, blasint *, double *, blasint *, blasint *, blasint *); -int BLASFUNC(qgetf2)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *); -int BLASFUNC(cgetf2)(blasint *, blasint *, float *, blasint *, blasint *, blasint *); -int BLASFUNC(zgetf2)(blasint *, blasint *, double *, blasint *, blasint *, blasint *); -int BLASFUNC(xgetf2)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *); - -int BLASFUNC(sgetrf)(blasint *, blasint *, float *, blasint *, blasint *, blasint *); -int BLASFUNC(dgetrf)(blasint *, blasint *, double *, blasint *, blasint *, blasint *); -int BLASFUNC(qgetrf)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *); -int BLASFUNC(cgetrf)(blasint *, blasint *, float *, blasint *, blasint *, blasint *); -int BLASFUNC(zgetrf)(blasint *, blasint *, double *, blasint *, blasint *, blasint *); -int BLASFUNC(xgetrf)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *); - -int BLASFUNC(slaswp)(blasint *, float *, blasint *, blasint *, blasint *, blasint *, blasint *); -int BLASFUNC(dlaswp)(blasint *, double *, blasint *, blasint *, blasint *, blasint *, blasint *); -int BLASFUNC(qlaswp)(blasint *, xdouble *, blasint *, blasint *, blasint *, blasint *, blasint *); -int BLASFUNC(claswp)(blasint *, float *, blasint *, blasint *, blasint *, blasint *, blasint *); -int BLASFUNC(zlaswp)(blasint *, double *, blasint *, blasint *, blasint *, blasint *, blasint *); -int BLASFUNC(xlaswp)(blasint *, xdouble *, blasint *, blasint *, blasint *, blasint *, blasint *); - -int BLASFUNC(sgetrs)(char *, blasint *, blasint *, float *, blasint *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(dgetrs)(char *, blasint *, blasint *, double *, blasint *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(qgetrs)(char *, blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble *, blasint *, blasint *); -int BLASFUNC(cgetrs)(char *, blasint *, blasint *, float *, blasint *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(zgetrs)(char *, blasint *, blasint *, double *, blasint *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(xgetrs)(char *, blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble *, blasint *, blasint *); - -int BLASFUNC(sgesv)(blasint *, blasint *, float *, blasint *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(dgesv)(blasint *, blasint *, double *, blasint *, blasint *, double*, blasint *, blasint *); -int BLASFUNC(qgesv)(blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble*, blasint *, blasint *); -int BLASFUNC(cgesv)(blasint *, blasint *, float *, blasint *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(zgesv)(blasint *, blasint *, double *, blasint *, blasint *, double*, blasint *, blasint *); -int BLASFUNC(xgesv)(blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble*, blasint *, blasint *); - -int BLASFUNC(spotf2)(char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(dpotf2)(char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(qpotf2)(char *, blasint *, xdouble *, blasint *, blasint *); -int BLASFUNC(cpotf2)(char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(zpotf2)(char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(xpotf2)(char *, blasint *, xdouble *, blasint *, blasint *); - -int BLASFUNC(spotrf)(char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(dpotrf)(char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(qpotrf)(char *, blasint *, xdouble *, blasint *, blasint *); -int BLASFUNC(cpotrf)(char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(zpotrf)(char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(xpotrf)(char *, blasint *, xdouble *, blasint *, blasint *); - -int BLASFUNC(spotri)(char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(dpotri)(char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(qpotri)(char *, blasint *, xdouble *, blasint *, blasint *); -int BLASFUNC(cpotri)(char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(zpotri)(char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(xpotri)(char *, blasint *, xdouble *, blasint *, blasint *); - -int BLASFUNC(spotrs)(char *, blasint *, blasint *, float *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(dpotrs)(char *, blasint *, blasint *, double *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(qpotrs)(char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *, blasint *); -int BLASFUNC(cpotrs)(char *, blasint *, blasint *, float *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(zpotrs)(char *, blasint *, blasint *, double *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(xpotrs)(char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *, blasint *); - -int BLASFUNC(slauu2)(char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(dlauu2)(char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(qlauu2)(char *, blasint *, xdouble *, blasint *, blasint *); -int BLASFUNC(clauu2)(char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(zlauu2)(char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(xlauu2)(char *, blasint *, xdouble *, blasint *, blasint *); - -int BLASFUNC(slauum)(char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(dlauum)(char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(qlauum)(char *, blasint *, xdouble *, blasint *, blasint *); -int BLASFUNC(clauum)(char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(zlauum)(char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(xlauum)(char *, blasint *, xdouble *, blasint *, blasint *); - -int BLASFUNC(strti2)(char *, char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(dtrti2)(char *, char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(qtrti2)(char *, char *, blasint *, xdouble *, blasint *, blasint *); -int BLASFUNC(ctrti2)(char *, char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(ztrti2)(char *, char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(xtrti2)(char *, char *, blasint *, xdouble *, blasint *, blasint *); - -int BLASFUNC(strtri)(char *, char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(dtrtri)(char *, char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(qtrtri)(char *, char *, blasint *, xdouble *, blasint *, blasint *); -int BLASFUNC(ctrtri)(char *, char *, blasint *, float *, blasint *, blasint *); -int BLASFUNC(ztrtri)(char *, char *, blasint *, double *, blasint *, blasint *); -int BLASFUNC(xtrtri)(char *, char *, blasint *, xdouble *, blasint *, blasint *); - - -FLOATRET BLASFUNC(slamch)(char *); -double BLASFUNC(dlamch)(char *); -xdouble BLASFUNC(qlamch)(char *); - -FLOATRET BLASFUNC(slamc3)(float *, float *); -double BLASFUNC(dlamc3)(double *, double *); -xdouble BLASFUNC(qlamc3)(xdouble *, xdouble *); +int OPENBLAS_API(sgetf2)(blasint *, blasint *, float *, blasint *, blasint *, blasint *); +int OPENBLAS_API(dgetf2)(blasint *, blasint *, double *, blasint *, blasint *, blasint *); +int OPENBLAS_API(qgetf2)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *); +int OPENBLAS_API(cgetf2)(blasint *, blasint *, float *, blasint *, blasint *, blasint *); +int OPENBLAS_API(zgetf2)(blasint *, blasint *, double *, blasint *, blasint *, blasint *); +int OPENBLAS_API(xgetf2)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *); + +int OPENBLAS_API(sgetrf)(blasint *, blasint *, float *, blasint *, blasint *, blasint *); +int OPENBLAS_API(dgetrf)(blasint *, blasint *, double *, blasint *, blasint *, blasint *); +int OPENBLAS_API(qgetrf)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *); +int OPENBLAS_API(cgetrf)(blasint *, blasint *, float *, blasint *, blasint *, blasint *); +int OPENBLAS_API(zgetrf)(blasint *, blasint *, double *, blasint *, blasint *, blasint *); +int OPENBLAS_API(xgetrf)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *); + +int OPENBLAS_API(slaswp)(blasint *, float *, blasint *, blasint *, blasint *, blasint *, blasint *); +int OPENBLAS_API(dlaswp)(blasint *, double *, blasint *, blasint *, blasint *, blasint *, blasint *); +int OPENBLAS_API(qlaswp)(blasint *, xdouble *, blasint *, blasint *, blasint *, blasint *, blasint *); +int OPENBLAS_API(claswp)(blasint *, float *, blasint *, blasint *, blasint *, blasint *, blasint *); +int OPENBLAS_API(zlaswp)(blasint *, double *, blasint *, blasint *, blasint *, blasint *, blasint *); +int OPENBLAS_API(xlaswp)(blasint *, xdouble *, blasint *, blasint *, blasint *, blasint *, blasint *); + +int OPENBLAS_API(sgetrs)(char *, blasint *, blasint *, float *, blasint *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(dgetrs)(char *, blasint *, blasint *, double *, blasint *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(qgetrs)(char *, blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble *, blasint *, blasint *); +int OPENBLAS_API(cgetrs)(char *, blasint *, blasint *, float *, blasint *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(zgetrs)(char *, blasint *, blasint *, double *, blasint *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(xgetrs)(char *, blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble *, blasint *, blasint *); + +int OPENBLAS_API(sgesv)(blasint *, blasint *, float *, blasint *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(dgesv)(blasint *, blasint *, double *, blasint *, blasint *, double*, blasint *, blasint *); +int OPENBLAS_API(qgesv)(blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble*, blasint *, blasint *); +int OPENBLAS_API(cgesv)(blasint *, blasint *, float *, blasint *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(zgesv)(blasint *, blasint *, double *, blasint *, blasint *, double*, blasint *, blasint *); +int OPENBLAS_API(xgesv)(blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble*, blasint *, blasint *); + +int OPENBLAS_API(spotf2)(char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(dpotf2)(char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(qpotf2)(char *, blasint *, xdouble *, blasint *, blasint *); +int OPENBLAS_API(cpotf2)(char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(zpotf2)(char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(xpotf2)(char *, blasint *, xdouble *, blasint *, blasint *); + +int OPENBLAS_API(spotrf)(char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(dpotrf)(char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(qpotrf)(char *, blasint *, xdouble *, blasint *, blasint *); +int OPENBLAS_API(cpotrf)(char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(zpotrf)(char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(xpotrf)(char *, blasint *, xdouble *, blasint *, blasint *); + +int OPENBLAS_API(spotri)(char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(dpotri)(char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(qpotri)(char *, blasint *, xdouble *, blasint *, blasint *); +int OPENBLAS_API(cpotri)(char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(zpotri)(char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(xpotri)(char *, blasint *, xdouble *, blasint *, blasint *); + +int OPENBLAS_API(spotrs)(char *, blasint *, blasint *, float *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(dpotrs)(char *, blasint *, blasint *, double *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(qpotrs)(char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *, blasint *); +int OPENBLAS_API(cpotrs)(char *, blasint *, blasint *, float *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(zpotrs)(char *, blasint *, blasint *, double *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(xpotrs)(char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *, blasint *); + +int OPENBLAS_API(slauu2)(char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(dlauu2)(char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(qlauu2)(char *, blasint *, xdouble *, blasint *, blasint *); +int OPENBLAS_API(clauu2)(char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(zlauu2)(char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(xlauu2)(char *, blasint *, xdouble *, blasint *, blasint *); + +int OPENBLAS_API(slauum)(char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(dlauum)(char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(qlauum)(char *, blasint *, xdouble *, blasint *, blasint *); +int OPENBLAS_API(clauum)(char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(zlauum)(char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(xlauum)(char *, blasint *, xdouble *, blasint *, blasint *); + +int OPENBLAS_API(strti2)(char *, char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(dtrti2)(char *, char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(qtrti2)(char *, char *, blasint *, xdouble *, blasint *, blasint *); +int OPENBLAS_API(ctrti2)(char *, char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(ztrti2)(char *, char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(xtrti2)(char *, char *, blasint *, xdouble *, blasint *, blasint *); + +int OPENBLAS_API(strtri)(char *, char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(dtrtri)(char *, char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(qtrtri)(char *, char *, blasint *, xdouble *, blasint *, blasint *); +int OPENBLAS_API(ctrtri)(char *, char *, blasint *, float *, blasint *, blasint *); +int OPENBLAS_API(ztrtri)(char *, char *, blasint *, double *, blasint *, blasint *); +int OPENBLAS_API(xtrtri)(char *, char *, blasint *, xdouble *, blasint *, blasint *); + + +FLOATRET OPENBLAS_API(slamch)(char *); +double OPENBLAS_API(dlamch)(char *); +xdouble OPENBLAS_API(qlamch)(char *); + +FLOATRET OPENBLAS_API(slamc3)(float *, float *); +double OPENBLAS_API(dlamc3)(double *, double *); +xdouble OPENBLAS_API(qlamc3)(xdouble *, xdouble *); /* BLAS extensions */ -void BLASFUNC(saxpby) (blasint *, float *, float *, blasint *, float *, float *, blasint *); -void BLASFUNC(daxpby) (blasint *, double *, double *, blasint *, double *, double *, blasint *); -void BLASFUNC(caxpby) (blasint *, void *, float *, blasint *, void *, float *, blasint *); -void BLASFUNC(zaxpby) (blasint *, void *, double *, blasint *, void *, double *, blasint *); - -void BLASFUNC(somatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *); -void BLASFUNC(domatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *); -void BLASFUNC(comatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *); -void BLASFUNC(zomatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *); - -void BLASFUNC(simatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, blasint *); -void BLASFUNC(dimatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, blasint *); -void BLASFUNC(cimatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, blasint *); -void BLASFUNC(zimatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, blasint *); - -void BLASFUNC(sgeadd) (blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint*); -void BLASFUNC(dgeadd) (blasint *, blasint *, double *, double *, blasint *, double *, double *, blasint*); -void BLASFUNC(cgeadd) (blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint*); -void BLASFUNC(zgeadd) (blasint *, blasint *, double *, double *, blasint *, double *, double *, blasint*); +void OPENBLAS_API(saxpby) (blasint *, float *, float *, blasint *, float *, float *, blasint *); +void OPENBLAS_API(daxpby) (blasint *, double *, double *, blasint *, double *, double *, blasint *); +void OPENBLAS_API(caxpby) (blasint *, void *, float *, blasint *, void *, float *, blasint *); +void OPENBLAS_API(zaxpby) (blasint *, void *, double *, blasint *, void *, double *, blasint *); + +void OPENBLAS_API(somatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(domatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *); +void OPENBLAS_API(comatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *); +void OPENBLAS_API(zomatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *); + +void OPENBLAS_API(simatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, blasint *); +void OPENBLAS_API(dimatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, blasint *); +void OPENBLAS_API(cimatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, blasint *); +void OPENBLAS_API(zimatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, blasint *); + +void OPENBLAS_API(sgeadd) (blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint*); +void OPENBLAS_API(dgeadd) (blasint *, blasint *, double *, double *, blasint *, double *, double *, blasint*); +void OPENBLAS_API(cgeadd) (blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint*); +void OPENBLAS_API(zgeadd) (blasint *, blasint *, double *, double *, blasint *, double *, double *, blasint*); #ifdef __cplusplus From 59b8184eb87508e7bf9d9b18565939d874a146cb Mon Sep 17 00:00:00 2001 From: mattip Date: Tue, 23 Dec 2025 10:46:13 +0200 Subject: [PATCH 5/8] add OPENBLAS_EXPORT to cblas.h during build, remove for install --- CMakeLists.txt | 3 +- Makefile.install | 3 +- cblas.h | 508 +++++++++++++++++++++++------------------------ 3 files changed, 258 insertions(+), 256 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 96c2a43642..1dfcf49a5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -676,7 +676,8 @@ if(NOT NO_CBLAS) message (STATUS "Generating cblas.h in ${CMAKE_INSTALL_INCLUDEDIR}") set(CBLAS_H ${CMAKE_BINARY_DIR}/generated/cblas.h) file(READ ${CMAKE_CURRENT_SOURCE_DIR}/cblas.h CBLAS_H_CONTENTS) - string(REPLACE "common" "openblas_config" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS}") + string(REPLACE "common" "openblas_config" CBLAS_H_CONTENTS_NEW2 "${CBLAS_H_CONTENTS}") + string(REPLACE "OPENBLAS_EXPORT " "" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS_NEW2}") if (NOT ${SYMBOLPREFIX} STREQUAL "") string(REPLACE " cblas" " ${SYMBOLPREFIX}cblas" CBLAS_H_CONTENTS "${CBLAS_H_CONTENTS_NEW}") string(REPLACE " openblas" " ${SYMBOLPREFIX}openblas" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS}") diff --git a/Makefile.install b/Makefile.install index 3c8d47642b..a4b1effb4f 100644 --- a/Makefile.install +++ b/Makefile.install @@ -86,8 +86,9 @@ ifdef SYMBOLSUFFIX @sed 's/openblas[^() ]*/&$(SYMBOLSUFFIX)/g' cblas.tmp2 > cblas.tmp #change back any openblas_complex_float and double that got hit @sed 's/\(openblas_complex_\)\([^ ]*\)$(SYMBOLSUFFIX)/\1\2 /g' cblas.tmp > cblas.tmp2 - @sed 's/goto[^() ]*/&$(SYMBOLSUFFIX)/g' cblas.tmp2 > cblas.tmp + @sed 's/goto[^() ]*/&$(SYMBOLSUFFIX)/g' cblas.tmp2 > cblas.tmp3 endif + @sed 's/OPENBLAS_EXPORT //' cblas.tmp3 > cblas.tmp @sed 's/common/openblas_config/g' cblas.tmp > "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/cblas.h" endif diff --git a/cblas.h b/cblas.h index 8395f1b8b2..51008e2da4 100644 --- a/cblas.h +++ b/cblas.h @@ -38,26 +38,26 @@ extern "C" { #endif /* __cplusplus */ /*Set the number of threads on runtime.*/ -void openblas_set_num_threads(int num_threads); -void goto_set_num_threads(int num_threads); -int openblas_set_num_threads_local(int num_threads); +void OPENBLAS_EXPORT openblas_set_num_threads(int num_threads); +void OPENBLAS_EXPORT goto_set_num_threads(int num_threads); +int OPENBLAS_EXPORT openblas_set_num_threads_local(int num_threads); /*Get the number of threads on runtime.*/ -int openblas_get_num_threads(void); +int OPENBLAS_EXPORT openblas_get_num_threads(void); /*Get the number of physical processors (cores).*/ -int openblas_get_num_procs(void); +int OPENBLAS_EXPORT openblas_get_num_procs(void); /*Get the build configure on runtime.*/ -char* openblas_get_config(void); +char* OPENBLAS_EXPORT openblas_get_config(void); /*Get the CPU corename on runtime.*/ -char* openblas_get_corename(void); +char* OPENBLAS_EXPORT openblas_get_corename(void); /*Set the threading backend to a custom callback.*/ typedef void (*openblas_dojob_callback)(int thread_num, void *jobdata, int dojob_data); typedef void (*openblas_threads_callback)(int sync, openblas_dojob_callback dojob, int numjobs, size_t jobdata_elsize, void *jobdata, int dojob_data); -void openblas_set_threads_callback_function(openblas_threads_callback callback); +void OPENBLAS_EXPORT openblas_set_threads_callback_function(openblas_threads_callback callback); #ifdef OPENBLAS_OS_LINUX /* Sets thread affinity for OpenBLAS threads. `thread_idx` is in [0, openblas_get_num_threads()-1]. */ @@ -67,7 +67,7 @@ int openblas_getaffinity(int thread_idx, size_t cpusetsize, cpu_set_t* cpu_set); #endif /* Get the parallelization type which is used by OpenBLAS */ -int openblas_get_parallel(void); +int OPENBLAS_EXPORT openblas_get_parallel(void); /* OpenBLAS is compiled for sequential use */ #define OPENBLAS_SEQUENTIAL 0 /* OpenBLAS is compiled using normal threading model */ @@ -94,400 +94,400 @@ typedef enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132} CBLAS_DIAG; typedef enum CBLAS_SIDE {CblasLeft=141, CblasRight=142} CBLAS_SIDE; typedef CBLAS_ORDER CBLAS_LAYOUT; -float cblas_sdsdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy); -double cblas_dsdot (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy); -float cblas_sdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy); -double cblas_ddot(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double *y, OPENBLAS_CONST blasint incy); - -openblas_complex_float cblas_cdotu(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); -openblas_complex_float cblas_cdotc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); -openblas_complex_double cblas_zdotu(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); -openblas_complex_double cblas_zdotc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); - -void cblas_cdotu_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); -void cblas_cdotc_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); -void cblas_zdotu_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); -void cblas_zdotc_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); - -float cblas_sasum (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -double cblas_dasum (OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -float cblas_scasum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -double cblas_dzasum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -float cblas_ssum (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -double cblas_dsum (OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -float cblas_scsum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -double cblas_dzsum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -float cblas_snrm2 (OPENBLAS_CONST blasint N, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX); -double cblas_dnrm2 (OPENBLAS_CONST blasint N, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX); -float cblas_scnrm2(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX); -double cblas_dznrm2(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX); - -CBLAS_INDEX cblas_isamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX cblas_idamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX cblas_icamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX cblas_izamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -CBLAS_INDEX cblas_isamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX cblas_idamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX cblas_icamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX cblas_izamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -float cblas_samax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -double cblas_damax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -float cblas_scamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -double cblas_dzamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -float cblas_samin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -double cblas_damin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -float cblas_scamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -double cblas_dzamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -CBLAS_INDEX cblas_ismax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX cblas_idmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX cblas_icmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX cblas_izmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -CBLAS_INDEX cblas_ismin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX cblas_idmin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX cblas_icmin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX cblas_izmin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -void cblas_saxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy); -void cblas_daxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy); -void cblas_caxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); -void cblas_zaxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); - -void cblas_caxpyc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); -void cblas_zaxpyc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); - -void cblas_scopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy); -void cblas_dcopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy); -void cblas_ccopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); -void cblas_zcopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); - -void cblas_sswap(OPENBLAS_CONST blasint n, float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy); -void cblas_dswap(OPENBLAS_CONST blasint n, double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy); -void cblas_cswap(OPENBLAS_CONST blasint n, void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); -void cblas_zswap(OPENBLAS_CONST blasint n, void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); - -void cblas_srot(OPENBLAS_CONST blasint N, float *X, OPENBLAS_CONST blasint incX, float *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float c, OPENBLAS_CONST float s); -void cblas_drot(OPENBLAS_CONST blasint N, double *X, OPENBLAS_CONST blasint incX, double *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double c, OPENBLAS_CONST double s); -void cblas_csrot(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float c, OPENBLAS_CONST float s); -void cblas_zdrot(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double c, OPENBLAS_CONST double s); - -void cblas_srotg(float *a, float *b, float *c, float *s); -void cblas_drotg(double *a, double *b, double *c, double *s); -void cblas_crotg(void *a, void *b, float *c, void *s); -void cblas_zrotg(void *a, void *b, double *c, void *s); - - -void cblas_srotm(OPENBLAS_CONST blasint N, float *X, OPENBLAS_CONST blasint incX, float *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float *P); -void cblas_drotm(OPENBLAS_CONST blasint N, double *X, OPENBLAS_CONST blasint incX, double *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double *P); - -void cblas_srotmg(float *d1, float *d2, float *b1, OPENBLAS_CONST float b2, float *P); -void cblas_drotmg(double *d1, double *d2, double *b1, OPENBLAS_CONST double b2, double *P); - -void cblas_sscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, float *X, OPENBLAS_CONST blasint incX); -void cblas_dscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, double *X, OPENBLAS_CONST blasint incX); -void cblas_cscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, void *X, OPENBLAS_CONST blasint incX); -void cblas_zscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, void *X, OPENBLAS_CONST blasint incX); -void cblas_csscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, void *X, OPENBLAS_CONST blasint incX); -void cblas_zdscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, void *X, OPENBLAS_CONST blasint incX); - -void cblas_sgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, +float OPENBLAS_EXPORT cblas_sdsdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy); +double OPENBLAS_EXPORT cblas_dsdot (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy); +float OPENBLAS_EXPORT cblas_sdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy); +double OPENBLAS_EXPORT cblas_ddot(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double *y, OPENBLAS_CONST blasint incy); + +openblas_complex_float OPENBLAS_EXPORT cblas_cdotu(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); +openblas_complex_float OPENBLAS_EXPORT cblas_cdotc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); +openblas_complex_double OPENBLAS_EXPORT cblas_zdotu(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); +openblas_complex_double OPENBLAS_EXPORT cblas_zdotc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); + +void OPENBLAS_EXPORT cblas_cdotu_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); +void OPENBLAS_EXPORT cblas_cdotc_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); +void OPENBLAS_EXPORT cblas_zdotu_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); +void OPENBLAS_EXPORT cblas_zdotc_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); + +float OPENBLAS_EXPORT cblas_sasum (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +double OPENBLAS_EXPORT cblas_dasum (OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +float OPENBLAS_EXPORT cblas_scasum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +double OPENBLAS_EXPORT cblas_dzasum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +float OPENBLAS_EXPORT cblas_ssum (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +double OPENBLAS_EXPORT cblas_dsum (OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +float OPENBLAS_EXPORT cblas_scsum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +double OPENBLAS_EXPORT cblas_dzsum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +float OPENBLAS_EXPORT cblas_snrm2 (OPENBLAS_CONST blasint N, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX); +double OPENBLAS_EXPORT cblas_dnrm2 (OPENBLAS_CONST blasint N, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX); +float OPENBLAS_EXPORT cblas_scnrm2(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX); +double OPENBLAS_EXPORT cblas_dznrm2(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX); + +CBLAS_INDEX OPENBLAS_EXPORT cblas_isamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +CBLAS_INDEX OPENBLAS_EXPORT cblas_idamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +CBLAS_INDEX OPENBLAS_EXPORT cblas_icamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +CBLAS_INDEX OPENBLAS_EXPORT cblas_izamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +CBLAS_INDEX OPENBLAS_EXPORT cblas_isamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +CBLAS_INDEX OPENBLAS_EXPORT cblas_idamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +CBLAS_INDEX OPENBLAS_EXPORT cblas_icamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +CBLAS_INDEX OPENBLAS_EXPORT cblas_izamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +float OPENBLAS_EXPORT cblas_samax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +double OPENBLAS_EXPORT cblas_damax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +float OPENBLAS_EXPORT cblas_scamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +double OPENBLAS_EXPORT cblas_dzamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +float OPENBLAS_EXPORT cblas_samin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +double OPENBLAS_EXPORT cblas_damin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +float OPENBLAS_EXPORT cblas_scamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +double OPENBLAS_EXPORT cblas_dzamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +CBLAS_INDEX OPENBLAS_EXPORT cblas_ismax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +CBLAS_INDEX OPENBLAS_EXPORT cblas_idmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +CBLAS_INDEX OPENBLAS_EXPORT cblas_icmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +CBLAS_INDEX OPENBLAS_EXPORT cblas_izmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +CBLAS_INDEX OPENBLAS_EXPORT cblas_ismin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +CBLAS_INDEX OPENBLAS_EXPORT cblas_idmin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +CBLAS_INDEX OPENBLAS_EXPORT cblas_icmin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +CBLAS_INDEX OPENBLAS_EXPORT cblas_izmin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +void OPENBLAS_EXPORT cblas_saxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_daxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_caxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_zaxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); + +void OPENBLAS_EXPORT cblas_caxpyc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_zaxpyc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); + +void OPENBLAS_EXPORT cblas_scopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_dcopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_ccopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_zcopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); + +void OPENBLAS_EXPORT cblas_sswap(OPENBLAS_CONST blasint n, float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_dswap(OPENBLAS_CONST blasint n, double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_cswap(OPENBLAS_CONST blasint n, void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_zswap(OPENBLAS_CONST blasint n, void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); + +void OPENBLAS_EXPORT cblas_srot(OPENBLAS_CONST blasint N, float *X, OPENBLAS_CONST blasint incX, float *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float c, OPENBLAS_CONST float s); +void OPENBLAS_EXPORT cblas_drot(OPENBLAS_CONST blasint N, double *X, OPENBLAS_CONST blasint incX, double *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double c, OPENBLAS_CONST double s); +void OPENBLAS_EXPORT cblas_csrot(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float c, OPENBLAS_CONST float s); +void OPENBLAS_EXPORT cblas_zdrot(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double c, OPENBLAS_CONST double s); + +void OPENBLAS_EXPORT cblas_srotg(float *a, float *b, float *c, float *s); +void OPENBLAS_EXPORT cblas_drotg(double *a, double *b, double *c, double *s); +void OPENBLAS_EXPORT cblas_crotg(void *a, void *b, float *c, void *s); +void OPENBLAS_EXPORT cblas_zrotg(void *a, void *b, double *c, void *s); + + +void OPENBLAS_EXPORT cblas_srotm(OPENBLAS_CONST blasint N, float *X, OPENBLAS_CONST blasint incX, float *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float *P); +void OPENBLAS_EXPORT cblas_drotm(OPENBLAS_CONST blasint N, double *X, OPENBLAS_CONST blasint incX, double *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double *P); + +void OPENBLAS_EXPORT cblas_srotmg(float *d1, float *d2, float *b1, OPENBLAS_CONST float b2, float *P); +void OPENBLAS_EXPORT cblas_drotmg(double *d1, double *d2, double *b1, OPENBLAS_CONST double b2, double *P); + +void OPENBLAS_EXPORT cblas_sscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, float *X, OPENBLAS_CONST blasint incX); +void OPENBLAS_EXPORT cblas_dscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, double *X, OPENBLAS_CONST blasint incX); +void OPENBLAS_EXPORT cblas_cscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, void *X, OPENBLAS_CONST blasint incX); +void OPENBLAS_EXPORT cblas_zscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, void *X, OPENBLAS_CONST blasint incX); +void OPENBLAS_EXPORT cblas_csscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, void *X, OPENBLAS_CONST blasint incX); +void OPENBLAS_EXPORT cblas_zdscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, void *X, OPENBLAS_CONST blasint incX); + +void OPENBLAS_EXPORT cblas_sgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float beta, float *y, OPENBLAS_CONST blasint incy); -void cblas_dgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, +void OPENBLAS_EXPORT cblas_dgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double beta, double *y, OPENBLAS_CONST blasint incy); -void cblas_cgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, +void OPENBLAS_EXPORT cblas_cgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *beta, void *y, OPENBLAS_CONST blasint incy); -void cblas_zgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, +void OPENBLAS_EXPORT cblas_zgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *beta, void *y, OPENBLAS_CONST blasint incy); -void cblas_sger (OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A, OPENBLAS_CONST blasint lda); -void cblas_dger (OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A, OPENBLAS_CONST blasint lda); -void cblas_cgeru(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); -void cblas_cgerc(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); -void cblas_zgeru(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); -void cblas_zgerc(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); - -void cblas_strsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX); -void cblas_dtrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX); -void cblas_ctrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); -void cblas_ztrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); - -void cblas_strmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX); -void cblas_dtrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX); -void cblas_ctrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); -void cblas_ztrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); - -void cblas_ssyr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, float *A, OPENBLAS_CONST blasint lda); -void cblas_dsyr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, double *A, OPENBLAS_CONST blasint lda); -void cblas_cher(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, void *A, OPENBLAS_CONST blasint lda); -void cblas_zher(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, void *A, OPENBLAS_CONST blasint lda); - -void cblas_ssyr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo,OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, +void OPENBLAS_EXPORT cblas_sger (OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A, OPENBLAS_CONST blasint lda); +void OPENBLAS_EXPORT cblas_dger (OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A, OPENBLAS_CONST blasint lda); +void OPENBLAS_EXPORT cblas_cgeru(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); +void OPENBLAS_EXPORT cblas_cgerc(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); +void OPENBLAS_EXPORT cblas_zgeru(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); +void OPENBLAS_EXPORT cblas_zgerc(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); + +void OPENBLAS_EXPORT cblas_strsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX); +void OPENBLAS_EXPORT cblas_dtrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX); +void OPENBLAS_EXPORT cblas_ctrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); +void OPENBLAS_EXPORT cblas_ztrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); + +void OPENBLAS_EXPORT cblas_strmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX); +void OPENBLAS_EXPORT cblas_dtrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX); +void OPENBLAS_EXPORT cblas_ctrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); +void OPENBLAS_EXPORT cblas_ztrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); + +void OPENBLAS_EXPORT cblas_ssyr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, float *A, OPENBLAS_CONST blasint lda); +void OPENBLAS_EXPORT cblas_dsyr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, double *A, OPENBLAS_CONST blasint lda); +void OPENBLAS_EXPORT cblas_cher(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, void *A, OPENBLAS_CONST blasint lda); +void OPENBLAS_EXPORT cblas_zher(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, void *A, OPENBLAS_CONST blasint lda); + +void OPENBLAS_EXPORT cblas_ssyr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo,OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A, OPENBLAS_CONST blasint lda); -void cblas_dsyr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, +void OPENBLAS_EXPORT cblas_dsyr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A, OPENBLAS_CONST blasint lda); -void cblas_cher2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, +void OPENBLAS_EXPORT cblas_cher2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); -void cblas_zher2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, +void OPENBLAS_EXPORT cblas_zher2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); -void cblas_sgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +void OPENBLAS_EXPORT cblas_sgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint KL, OPENBLAS_CONST blasint KU, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float beta, float *Y, OPENBLAS_CONST blasint incY); -void cblas_dgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +void OPENBLAS_EXPORT cblas_dgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint KL, OPENBLAS_CONST blasint KU, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double beta, double *Y, OPENBLAS_CONST blasint incY); -void cblas_cgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +void OPENBLAS_EXPORT cblas_cgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint KL, OPENBLAS_CONST blasint KU, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void cblas_zgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +void OPENBLAS_EXPORT cblas_zgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint KL, OPENBLAS_CONST blasint KU, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void cblas_ssbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, +void OPENBLAS_EXPORT cblas_ssbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float beta, float *Y, OPENBLAS_CONST blasint incY); -void cblas_dsbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, +void OPENBLAS_EXPORT cblas_dsbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double beta, double *Y, OPENBLAS_CONST blasint incY); -void cblas_stbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_stbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX); -void cblas_dtbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_dtbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX); -void cblas_ctbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_ctbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); -void cblas_ztbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_ztbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); -void cblas_stbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_stbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX); -void cblas_dtbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_dtbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX); -void cblas_ctbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_ctbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); -void cblas_ztbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_ztbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); -void cblas_stpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_stpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *Ap, float *X, OPENBLAS_CONST blasint incX); -void cblas_dtpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_dtpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *Ap, double *X, OPENBLAS_CONST blasint incX); -void cblas_ctpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_ctpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *Ap, void *X, OPENBLAS_CONST blasint incX); -void cblas_ztpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_ztpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *Ap, void *X, OPENBLAS_CONST blasint incX); -void cblas_stpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_stpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *Ap, float *X, OPENBLAS_CONST blasint incX); -void cblas_dtpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_dtpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *Ap, double *X, OPENBLAS_CONST blasint incX); -void cblas_ctpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_ctpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *Ap, void *X, OPENBLAS_CONST blasint incX); -void cblas_ztpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +void OPENBLAS_EXPORT cblas_ztpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *Ap, void *X, OPENBLAS_CONST blasint incX); -void cblas_ssymv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, +void OPENBLAS_EXPORT cblas_ssymv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float beta, float *Y, OPENBLAS_CONST blasint incY); -void cblas_dsymv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, +void OPENBLAS_EXPORT cblas_dsymv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double beta, double *Y, OPENBLAS_CONST blasint incY); -void cblas_chemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, +void OPENBLAS_EXPORT cblas_chemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void cblas_zhemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, +void OPENBLAS_EXPORT cblas_zhemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void cblas_sspmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *Ap, +void OPENBLAS_EXPORT cblas_sspmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *Ap, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float beta, float *Y, OPENBLAS_CONST blasint incY); -void cblas_dspmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *Ap, +void OPENBLAS_EXPORT cblas_dspmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *Ap, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double beta, double *Y, OPENBLAS_CONST blasint incY); -void cblas_sspr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, float *Ap); -void cblas_dspr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, double *Ap); +void OPENBLAS_EXPORT cblas_sspr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, float *Ap); +void OPENBLAS_EXPORT cblas_dspr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, double *Ap); -void cblas_chpr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, void *A); -void cblas_zhpr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST void *X,OPENBLAS_CONST blasint incX, void *A); +void OPENBLAS_EXPORT cblas_chpr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, void *A); +void OPENBLAS_EXPORT cblas_zhpr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST void *X,OPENBLAS_CONST blasint incX, void *A); -void cblas_sspr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A); -void cblas_dspr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A); -void cblas_chpr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *Ap); -void cblas_zhpr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *Ap); +void OPENBLAS_EXPORT cblas_sspr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A); +void OPENBLAS_EXPORT cblas_dspr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A); +void OPENBLAS_EXPORT cblas_chpr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *Ap); +void OPENBLAS_EXPORT cblas_zhpr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *Ap); -void cblas_chbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_chbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void cblas_zhbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_zhbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void cblas_chpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, +void OPENBLAS_EXPORT cblas_chpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *Ap, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void cblas_zhpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, +void OPENBLAS_EXPORT cblas_zhpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *Ap, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void cblas_sgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_sgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); -void cblas_dgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_dgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc); -void cblas_cgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_cgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_cgemm3m(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_cgemm3m(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_zgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_zgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_zgemm3m(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_zgemm3m(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_sgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_sgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); -void cblas_dgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_dgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc); -void cblas_cgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_cgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_zgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_zgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_ssymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +void OPENBLAS_EXPORT cblas_ssymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); -void cblas_dsymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +void OPENBLAS_EXPORT cblas_dsymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc); -void cblas_csymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +void OPENBLAS_EXPORT cblas_csymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_zsymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +void OPENBLAS_EXPORT cblas_zsymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_ssyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +void OPENBLAS_EXPORT cblas_ssyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); -void cblas_dsyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +void OPENBLAS_EXPORT cblas_dsyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc); -void cblas_csyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +void OPENBLAS_EXPORT cblas_csyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_zsyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +void OPENBLAS_EXPORT cblas_zsyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_ssyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +void OPENBLAS_EXPORT cblas_ssyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); -void cblas_dsyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +void OPENBLAS_EXPORT cblas_dsyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc); -void cblas_csyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +void OPENBLAS_EXPORT cblas_csyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_zsyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +void OPENBLAS_EXPORT cblas_zsyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_strmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +void OPENBLAS_EXPORT cblas_strmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *B, OPENBLAS_CONST blasint ldb); -void cblas_dtrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +void OPENBLAS_EXPORT cblas_dtrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *B, OPENBLAS_CONST blasint ldb); -void cblas_ctrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +void OPENBLAS_EXPORT cblas_ctrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *B, OPENBLAS_CONST blasint ldb); -void cblas_ztrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +void OPENBLAS_EXPORT cblas_ztrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *B, OPENBLAS_CONST blasint ldb); -void cblas_strsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +void OPENBLAS_EXPORT cblas_strsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *B, OPENBLAS_CONST blasint ldb); -void cblas_dtrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +void OPENBLAS_EXPORT cblas_dtrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *B, OPENBLAS_CONST blasint ldb); -void cblas_ctrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +void OPENBLAS_EXPORT cblas_ctrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *B, OPENBLAS_CONST blasint ldb); -void cblas_ztrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +void OPENBLAS_EXPORT cblas_ztrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *B, OPENBLAS_CONST blasint ldb); -void cblas_chemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +void OPENBLAS_EXPORT cblas_chemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_zhemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +void OPENBLAS_EXPORT cblas_zhemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_cherk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_cherk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_zherk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_zherk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_cher2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_cher2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_zher2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_zher2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, void *C, OPENBLAS_CONST blasint ldc); -void cblas_xerbla(blasint p, OPENBLAS_CONST char *rout, OPENBLAS_CONST char *form, ...); +void OPENBLAS_EXPORT cblas_xerbla(blasint p, OPENBLAS_CONST char *rout, OPENBLAS_CONST char *form, ...); /*** BLAS extensions ***/ -void cblas_saxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST float beta, float *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_saxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST float beta, float *y, OPENBLAS_CONST blasint incy); -void cblas_daxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST double beta, double *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_daxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST double beta, double *y, OPENBLAS_CONST blasint incy); -void cblas_caxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST void *beta, void *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_caxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST void *beta, void *y, OPENBLAS_CONST blasint incy); -void cblas_zaxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST void *beta, void *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_zaxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST void *beta, void *y, OPENBLAS_CONST blasint incy); -void cblas_somatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float calpha, OPENBLAS_CONST float *a, +void OPENBLAS_EXPORT cblas_somatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float calpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint clda, float *b, OPENBLAS_CONST blasint cldb); -void cblas_domatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double calpha, OPENBLAS_CONST double *a, +void OPENBLAS_EXPORT cblas_domatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double calpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint clda, double *b, OPENBLAS_CONST blasint cldb); -void cblas_comatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float* calpha, OPENBLAS_CONST float* a, +void OPENBLAS_EXPORT cblas_comatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float* calpha, OPENBLAS_CONST float* a, OPENBLAS_CONST blasint clda, float*b, OPENBLAS_CONST blasint cldb); -void cblas_zomatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double* calpha, OPENBLAS_CONST double* a, +void OPENBLAS_EXPORT cblas_zomatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double* calpha, OPENBLAS_CONST double* a, OPENBLAS_CONST blasint clda, double *b, OPENBLAS_CONST blasint cldb); -void cblas_simatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float calpha, float *a, +void OPENBLAS_EXPORT cblas_simatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float calpha, float *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST blasint cldb); -void cblas_dimatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double calpha, double *a, +void OPENBLAS_EXPORT cblas_dimatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double calpha, double *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST blasint cldb); -void cblas_cimatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float* calpha, float* a, +void OPENBLAS_EXPORT cblas_cimatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float* calpha, float* a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST blasint cldb); -void cblas_zimatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double* calpha, double* a, +void OPENBLAS_EXPORT cblas_zimatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double* calpha, double* a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST blasint cldb); -void cblas_sgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float calpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST float cbeta, +void OPENBLAS_EXPORT cblas_sgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float calpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST float cbeta, float *c, OPENBLAS_CONST blasint cldc); -void cblas_dgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double calpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST double cbeta, +void OPENBLAS_EXPORT cblas_dgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double calpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST double cbeta, double *c, OPENBLAS_CONST blasint cldc); -void cblas_cgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float *calpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST float *cbeta, +void OPENBLAS_EXPORT cblas_cgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float *calpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST float *cbeta, float *c, OPENBLAS_CONST blasint cldc); -void cblas_zgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double *calpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST double *cbeta, +void OPENBLAS_EXPORT cblas_zgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double *calpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST double *cbeta, double *c, OPENBLAS_CONST blasint cldc); -void cblas_sgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, +void OPENBLAS_EXPORT cblas_sgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, OPENBLAS_CONST float * alpha_array, OPENBLAS_CONST float ** A_array, OPENBLAS_CONST blasint * lda_array, OPENBLAS_CONST float ** B_array, OPENBLAS_CONST blasint * ldb_array, OPENBLAS_CONST float * beta_array, float ** C_array, OPENBLAS_CONST blasint * ldc_array, OPENBLAS_CONST blasint group_count, OPENBLAS_CONST blasint * group_size); -void cblas_dgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, +void OPENBLAS_EXPORT cblas_dgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, OPENBLAS_CONST double * alpha_array, OPENBLAS_CONST double ** A_array, OPENBLAS_CONST blasint * lda_array, OPENBLAS_CONST double ** B_array, OPENBLAS_CONST blasint * ldb_array, OPENBLAS_CONST double * beta_array, double ** C_array, OPENBLAS_CONST blasint * ldc_array, OPENBLAS_CONST blasint group_count, OPENBLAS_CONST blasint * group_size); -void cblas_cgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, +void OPENBLAS_EXPORT cblas_cgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, OPENBLAS_CONST void * alpha_array, OPENBLAS_CONST void ** A_array, OPENBLAS_CONST blasint * lda_array, OPENBLAS_CONST void ** B_array, OPENBLAS_CONST blasint * ldb_array, OPENBLAS_CONST void * beta_array, void ** C_array, OPENBLAS_CONST blasint * ldc_array, OPENBLAS_CONST blasint group_count, OPENBLAS_CONST blasint * group_size); -void cblas_zgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, +void OPENBLAS_EXPORT cblas_zgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, OPENBLAS_CONST void * alpha_array, OPENBLAS_CONST void ** A_array, OPENBLAS_CONST blasint * lda_array, OPENBLAS_CONST void ** B_array, OPENBLAS_CONST blasint * ldb_array, OPENBLAS_CONST void * beta_array, void ** C_array, OPENBLAS_CONST blasint * ldc_array, OPENBLAS_CONST blasint group_count, OPENBLAS_CONST blasint * group_size); -void cblas_sgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST float * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST float beta, float * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); +void OPENBLAS_EXPORT cblas_sgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST float * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST float beta, float * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); -void cblas_dgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST double * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST double beta, double * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); +void OPENBLAS_EXPORT cblas_dgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST double * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST double beta, double * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); -void cblas_cgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void * alpha, OPENBLAS_CONST void * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST void * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST void * beta, void * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); +void OPENBLAS_EXPORT cblas_cgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void * alpha, OPENBLAS_CONST void * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST void * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST void * beta, void * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); -void cblas_zgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void * alpha, OPENBLAS_CONST void * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST void * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST void * beta, void * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); +void OPENBLAS_EXPORT cblas_zgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void * alpha, OPENBLAS_CONST void * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST void * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST void * beta, void * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); /*** BFLOAT16 and INT8 extensions ***/ /* convert float array to BFLOAT16 array by rounding */ -void cblas_sbstobf16(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *in, OPENBLAS_CONST blasint incin, bfloat16 *out, OPENBLAS_CONST blasint incout); +void OPENBLAS_EXPORT cblas_sbstobf16(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *in, OPENBLAS_CONST blasint incin, bfloat16 *out, OPENBLAS_CONST blasint incout); /* convert double array to BFLOAT16 array by rounding */ -void cblas_sbdtobf16(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *in, OPENBLAS_CONST blasint incin, bfloat16 *out, OPENBLAS_CONST blasint incout); +void OPENBLAS_EXPORT cblas_sbdtobf16(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *in, OPENBLAS_CONST blasint incin, bfloat16 *out, OPENBLAS_CONST blasint incout); /* convert BFLOAT16 array to float array */ -void cblas_sbf16tos(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *in, OPENBLAS_CONST blasint incin, float *out, OPENBLAS_CONST blasint incout); +void OPENBLAS_EXPORT cblas_sbf16tos(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *in, OPENBLAS_CONST blasint incin, float *out, OPENBLAS_CONST blasint incout); /* convert BFLOAT16 array to double array */ -void cblas_dbf16tod(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *in, OPENBLAS_CONST blasint incin, double *out, OPENBLAS_CONST blasint incout); -void cblas_bgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 alpha, OPENBLAS_CONST bfloat16 *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST bfloat16 beta, bfloat16 *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_dbf16tod(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *in, OPENBLAS_CONST blasint incin, double *out, OPENBLAS_CONST blasint incout); +void OPENBLAS_EXPORT cblas_bgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 alpha, OPENBLAS_CONST bfloat16 *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST bfloat16 beta, bfloat16 *y, OPENBLAS_CONST blasint incy); /* dot production of BFLOAT16 input arrays, and output as float */ -float cblas_sbdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST bfloat16 *y, OPENBLAS_CONST blasint incy); -void cblas_sbgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST bfloat16 *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float beta, float *y, OPENBLAS_CONST blasint incy); +float OPENBLAS_EXPORT cblas_sbdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST bfloat16 *y, OPENBLAS_CONST blasint incy); +void OPENBLAS_EXPORT cblas_sbgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST bfloat16 *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float beta, float *y, OPENBLAS_CONST blasint incy); -void cblas_bgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_bgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST bfloat16 alpha, OPENBLAS_CONST bfloat16 *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST bfloat16 *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST bfloat16 beta, bfloat16 *C, OPENBLAS_CONST blasint ldc); -void cblas_sbgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_sbgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST bfloat16 *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST bfloat16 *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); -void cblas_sbgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, +void OPENBLAS_EXPORT cblas_sbgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, OPENBLAS_CONST float * alpha_array, OPENBLAS_CONST bfloat16 ** A_array, OPENBLAS_CONST blasint * lda_array, OPENBLAS_CONST bfloat16 ** B_array, OPENBLAS_CONST blasint * ldb_array, OPENBLAS_CONST float * beta_array, float ** C_array, OPENBLAS_CONST blasint * ldc_array, OPENBLAS_CONST blasint group_count, OPENBLAS_CONST blasint * group_size); -void cblas_sbgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST bfloat16 * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST bfloat16 * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST float beta, float * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); +void OPENBLAS_EXPORT cblas_sbgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST bfloat16 * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST bfloat16 * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST float beta, float * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); /*** FLOAT16 extensions ***/ -void cblas_shgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +void OPENBLAS_EXPORT cblas_shgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST hfloat16 *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST hfloat16 *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); #ifdef __cplusplus From a6b94c519edcd2f4670ae19d85c1ce7f0a1e5db6 Mon Sep 17 00:00:00 2001 From: mattip Date: Tue, 23 Dec 2025 11:32:05 +0200 Subject: [PATCH 6/8] fix position of OPENBLAS_EXPORT, decorate server_win32 function --- cblas.h | 508 +++++++++++++++--------------- common.h | 2 +- driver/others/blas_server_win32.c | 2 + 3 files changed, 257 insertions(+), 255 deletions(-) diff --git a/cblas.h b/cblas.h index 51008e2da4..ba5c2d0d0b 100644 --- a/cblas.h +++ b/cblas.h @@ -38,26 +38,26 @@ extern "C" { #endif /* __cplusplus */ /*Set the number of threads on runtime.*/ -void OPENBLAS_EXPORT openblas_set_num_threads(int num_threads); -void OPENBLAS_EXPORT goto_set_num_threads(int num_threads); -int OPENBLAS_EXPORT openblas_set_num_threads_local(int num_threads); +OPENBLAS_EXPORT void openblas_set_num_threads(int num_threads); +OPENBLAS_EXPORT void goto_set_num_threads(int num_threads); +OPENBLAS_EXPORT int openblas_set_num_threads_local(int num_threads); /*Get the number of threads on runtime.*/ -int OPENBLAS_EXPORT openblas_get_num_threads(void); +OPENBLAS_EXPORT int openblas_get_num_threads(void); /*Get the number of physical processors (cores).*/ -int OPENBLAS_EXPORT openblas_get_num_procs(void); +OPENBLAS_EXPORT int openblas_get_num_procs(void); /*Get the build configure on runtime.*/ -char* OPENBLAS_EXPORT openblas_get_config(void); +OPENBLAS_EXPORT char* openblas_get_config(void); /*Get the CPU corename on runtime.*/ -char* OPENBLAS_EXPORT openblas_get_corename(void); +OPENBLAS_EXPORT char* openblas_get_corename(void); /*Set the threading backend to a custom callback.*/ typedef void (*openblas_dojob_callback)(int thread_num, void *jobdata, int dojob_data); typedef void (*openblas_threads_callback)(int sync, openblas_dojob_callback dojob, int numjobs, size_t jobdata_elsize, void *jobdata, int dojob_data); -void OPENBLAS_EXPORT openblas_set_threads_callback_function(openblas_threads_callback callback); +OPENBLAS_EXPORT void openblas_set_threads_callback_function(openblas_threads_callback callback); #ifdef OPENBLAS_OS_LINUX /* Sets thread affinity for OpenBLAS threads. `thread_idx` is in [0, openblas_get_num_threads()-1]. */ @@ -67,7 +67,7 @@ int openblas_getaffinity(int thread_idx, size_t cpusetsize, cpu_set_t* cpu_set); #endif /* Get the parallelization type which is used by OpenBLAS */ -int OPENBLAS_EXPORT openblas_get_parallel(void); +OPENBLAS_EXPORT int openblas_get_parallel(void); /* OpenBLAS is compiled for sequential use */ #define OPENBLAS_SEQUENTIAL 0 /* OpenBLAS is compiled using normal threading model */ @@ -94,400 +94,400 @@ typedef enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132} CBLAS_DIAG; typedef enum CBLAS_SIDE {CblasLeft=141, CblasRight=142} CBLAS_SIDE; typedef CBLAS_ORDER CBLAS_LAYOUT; -float OPENBLAS_EXPORT cblas_sdsdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy); -double OPENBLAS_EXPORT cblas_dsdot (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy); -float OPENBLAS_EXPORT cblas_sdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy); -double OPENBLAS_EXPORT cblas_ddot(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double *y, OPENBLAS_CONST blasint incy); - -openblas_complex_float OPENBLAS_EXPORT cblas_cdotu(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); -openblas_complex_float OPENBLAS_EXPORT cblas_cdotc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); -openblas_complex_double OPENBLAS_EXPORT cblas_zdotu(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); -openblas_complex_double OPENBLAS_EXPORT cblas_zdotc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); - -void OPENBLAS_EXPORT cblas_cdotu_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); -void OPENBLAS_EXPORT cblas_cdotc_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); -void OPENBLAS_EXPORT cblas_zdotu_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); -void OPENBLAS_EXPORT cblas_zdotc_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); - -float OPENBLAS_EXPORT cblas_sasum (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -double OPENBLAS_EXPORT cblas_dasum (OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -float OPENBLAS_EXPORT cblas_scasum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -double OPENBLAS_EXPORT cblas_dzasum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -float OPENBLAS_EXPORT cblas_ssum (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -double OPENBLAS_EXPORT cblas_dsum (OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -float OPENBLAS_EXPORT cblas_scsum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -double OPENBLAS_EXPORT cblas_dzsum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -float OPENBLAS_EXPORT cblas_snrm2 (OPENBLAS_CONST blasint N, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX); -double OPENBLAS_EXPORT cblas_dnrm2 (OPENBLAS_CONST blasint N, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX); -float OPENBLAS_EXPORT cblas_scnrm2(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX); -double OPENBLAS_EXPORT cblas_dznrm2(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX); - -CBLAS_INDEX OPENBLAS_EXPORT cblas_isamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX OPENBLAS_EXPORT cblas_idamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX OPENBLAS_EXPORT cblas_icamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX OPENBLAS_EXPORT cblas_izamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -CBLAS_INDEX OPENBLAS_EXPORT cblas_isamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX OPENBLAS_EXPORT cblas_idamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX OPENBLAS_EXPORT cblas_icamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX OPENBLAS_EXPORT cblas_izamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -float OPENBLAS_EXPORT cblas_samax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -double OPENBLAS_EXPORT cblas_damax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -float OPENBLAS_EXPORT cblas_scamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -double OPENBLAS_EXPORT cblas_dzamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -float OPENBLAS_EXPORT cblas_samin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -double OPENBLAS_EXPORT cblas_damin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -float OPENBLAS_EXPORT cblas_scamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -double OPENBLAS_EXPORT cblas_dzamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -CBLAS_INDEX OPENBLAS_EXPORT cblas_ismax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX OPENBLAS_EXPORT cblas_idmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX OPENBLAS_EXPORT cblas_icmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX OPENBLAS_EXPORT cblas_izmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -CBLAS_INDEX OPENBLAS_EXPORT cblas_ismin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX OPENBLAS_EXPORT cblas_idmin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX OPENBLAS_EXPORT cblas_icmin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); -CBLAS_INDEX OPENBLAS_EXPORT cblas_izmin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); - -void OPENBLAS_EXPORT cblas_saxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_daxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_caxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_zaxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); - -void OPENBLAS_EXPORT cblas_caxpyc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_zaxpyc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); - -void OPENBLAS_EXPORT cblas_scopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_dcopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_ccopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_zcopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); - -void OPENBLAS_EXPORT cblas_sswap(OPENBLAS_CONST blasint n, float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_dswap(OPENBLAS_CONST blasint n, double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_cswap(OPENBLAS_CONST blasint n, void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_zswap(OPENBLAS_CONST blasint n, void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); - -void OPENBLAS_EXPORT cblas_srot(OPENBLAS_CONST blasint N, float *X, OPENBLAS_CONST blasint incX, float *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float c, OPENBLAS_CONST float s); -void OPENBLAS_EXPORT cblas_drot(OPENBLAS_CONST blasint N, double *X, OPENBLAS_CONST blasint incX, double *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double c, OPENBLAS_CONST double s); -void OPENBLAS_EXPORT cblas_csrot(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float c, OPENBLAS_CONST float s); -void OPENBLAS_EXPORT cblas_zdrot(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double c, OPENBLAS_CONST double s); - -void OPENBLAS_EXPORT cblas_srotg(float *a, float *b, float *c, float *s); -void OPENBLAS_EXPORT cblas_drotg(double *a, double *b, double *c, double *s); -void OPENBLAS_EXPORT cblas_crotg(void *a, void *b, float *c, void *s); -void OPENBLAS_EXPORT cblas_zrotg(void *a, void *b, double *c, void *s); - - -void OPENBLAS_EXPORT cblas_srotm(OPENBLAS_CONST blasint N, float *X, OPENBLAS_CONST blasint incX, float *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float *P); -void OPENBLAS_EXPORT cblas_drotm(OPENBLAS_CONST blasint N, double *X, OPENBLAS_CONST blasint incX, double *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double *P); - -void OPENBLAS_EXPORT cblas_srotmg(float *d1, float *d2, float *b1, OPENBLAS_CONST float b2, float *P); -void OPENBLAS_EXPORT cblas_drotmg(double *d1, double *d2, double *b1, OPENBLAS_CONST double b2, double *P); - -void OPENBLAS_EXPORT cblas_sscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, float *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_dscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, double *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_cscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_zscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_csscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_zdscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, void *X, OPENBLAS_CONST blasint incX); - -void OPENBLAS_EXPORT cblas_sgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, +OPENBLAS_EXPORT float cblas_sdsdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT double cblas_dsdot (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT float cblas_sdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT double cblas_ddot(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double *y, OPENBLAS_CONST blasint incy); + +OPENBLAS_EXPORT openblas_complex_float cblas_cdotu(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT openblas_complex_float cblas_cdotc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT openblas_complex_double cblas_zdotu(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT openblas_complex_double cblas_zdotc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy); + +OPENBLAS_EXPORT void cblas_cdotu_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); +OPENBLAS_EXPORT void cblas_cdotc_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); +OPENBLAS_EXPORT void cblas_zdotu_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); +OPENBLAS_EXPORT void cblas_zdotc_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *y, OPENBLAS_CONST blasint incy, void *ret); + +OPENBLAS_EXPORT float cblas_sasum (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT double cblas_dasum (OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT float cblas_scasum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT double cblas_dzasum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +OPENBLAS_EXPORT float cblas_ssum (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT double cblas_dsum (OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT float cblas_scsum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT double cblas_dzsum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +OPENBLAS_EXPORT float cblas_snrm2 (OPENBLAS_CONST blasint N, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT double cblas_dnrm2 (OPENBLAS_CONST blasint N, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT float cblas_scnrm2(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT double cblas_dznrm2(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX); + +OPENBLAS_EXPORT CBLAS_INDEX cblas_isamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT CBLAS_INDEX cblas_idamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT CBLAS_INDEX cblas_icamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT CBLAS_INDEX cblas_izamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +OPENBLAS_EXPORT CBLAS_INDEX cblas_isamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT CBLAS_INDEX cblas_idamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT CBLAS_INDEX cblas_icamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT CBLAS_INDEX cblas_izamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +OPENBLAS_EXPORT float cblas_samax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT double cblas_damax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT float cblas_scamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT double cblas_dzamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +OPENBLAS_EXPORT float cblas_samin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT double cblas_damin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT float cblas_scamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT double cblas_dzamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +OPENBLAS_EXPORT CBLAS_INDEX cblas_ismax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT CBLAS_INDEX cblas_idmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT CBLAS_INDEX cblas_icmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT CBLAS_INDEX cblas_izmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +OPENBLAS_EXPORT CBLAS_INDEX cblas_ismin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT CBLAS_INDEX cblas_idmin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT CBLAS_INDEX cblas_icmin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); +OPENBLAS_EXPORT CBLAS_INDEX cblas_izmin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx); + +OPENBLAS_EXPORT void cblas_saxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_daxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_caxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_zaxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); + +OPENBLAS_EXPORT void cblas_caxpyc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_zaxpyc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); + +OPENBLAS_EXPORT void cblas_scopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_dcopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_ccopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_zcopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); + +OPENBLAS_EXPORT void cblas_sswap(OPENBLAS_CONST blasint n, float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_dswap(OPENBLAS_CONST blasint n, double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_cswap(OPENBLAS_CONST blasint n, void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_zswap(OPENBLAS_CONST blasint n, void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy); + +OPENBLAS_EXPORT void cblas_srot(OPENBLAS_CONST blasint N, float *X, OPENBLAS_CONST blasint incX, float *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float c, OPENBLAS_CONST float s); +OPENBLAS_EXPORT void cblas_drot(OPENBLAS_CONST blasint N, double *X, OPENBLAS_CONST blasint incX, double *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double c, OPENBLAS_CONST double s); +OPENBLAS_EXPORT void cblas_csrot(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float c, OPENBLAS_CONST float s); +OPENBLAS_EXPORT void cblas_zdrot(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double c, OPENBLAS_CONST double s); + +OPENBLAS_EXPORT void cblas_srotg(float *a, float *b, float *c, float *s); +OPENBLAS_EXPORT void cblas_drotg(double *a, double *b, double *c, double *s); +OPENBLAS_EXPORT void cblas_crotg(void *a, void *b, float *c, void *s); +OPENBLAS_EXPORT void cblas_zrotg(void *a, void *b, double *c, void *s); + + +OPENBLAS_EXPORT void cblas_srotm(OPENBLAS_CONST blasint N, float *X, OPENBLAS_CONST blasint incX, float *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float *P); +OPENBLAS_EXPORT void cblas_drotm(OPENBLAS_CONST blasint N, double *X, OPENBLAS_CONST blasint incX, double *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double *P); + +OPENBLAS_EXPORT void cblas_srotmg(float *d1, float *d2, float *b1, OPENBLAS_CONST float b2, float *P); +OPENBLAS_EXPORT void cblas_drotmg(double *d1, double *d2, double *b1, OPENBLAS_CONST double b2, double *P); + +OPENBLAS_EXPORT void cblas_sscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, float *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT void cblas_dscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, double *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT void cblas_cscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, void *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT void cblas_zscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, void *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT void cblas_csscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, void *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT void cblas_zdscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, void *X, OPENBLAS_CONST blasint incX); + +OPENBLAS_EXPORT void cblas_sgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float beta, float *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_dgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, +OPENBLAS_EXPORT void cblas_dgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double beta, double *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_cgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, +OPENBLAS_EXPORT void cblas_cgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *beta, void *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_zgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, +OPENBLAS_EXPORT void cblas_zgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST void *beta, void *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_sger (OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A, OPENBLAS_CONST blasint lda); -void OPENBLAS_EXPORT cblas_dger (OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A, OPENBLAS_CONST blasint lda); -void OPENBLAS_EXPORT cblas_cgeru(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); -void OPENBLAS_EXPORT cblas_cgerc(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); -void OPENBLAS_EXPORT cblas_zgeru(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); -void OPENBLAS_EXPORT cblas_zgerc(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); - -void OPENBLAS_EXPORT cblas_strsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_dtrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ctrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ztrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); - -void OPENBLAS_EXPORT cblas_strmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_dtrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ctrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ztrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); - -void OPENBLAS_EXPORT cblas_ssyr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, float *A, OPENBLAS_CONST blasint lda); -void OPENBLAS_EXPORT cblas_dsyr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, double *A, OPENBLAS_CONST blasint lda); -void OPENBLAS_EXPORT cblas_cher(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, void *A, OPENBLAS_CONST blasint lda); -void OPENBLAS_EXPORT cblas_zher(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, void *A, OPENBLAS_CONST blasint lda); - -void OPENBLAS_EXPORT cblas_ssyr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo,OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, +OPENBLAS_EXPORT void cblas_sger (OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A, OPENBLAS_CONST blasint lda); +OPENBLAS_EXPORT void cblas_dger (OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A, OPENBLAS_CONST blasint lda); +OPENBLAS_EXPORT void cblas_cgeru(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); +OPENBLAS_EXPORT void cblas_cgerc(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); +OPENBLAS_EXPORT void cblas_zgeru(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); +OPENBLAS_EXPORT void cblas_zgerc(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); + +OPENBLAS_EXPORT void cblas_strsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT void cblas_dtrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT void cblas_ctrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT void cblas_ztrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); + +OPENBLAS_EXPORT void cblas_strmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT void cblas_dtrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT void cblas_ctrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); +OPENBLAS_EXPORT void cblas_ztrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); + +OPENBLAS_EXPORT void cblas_ssyr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, float *A, OPENBLAS_CONST blasint lda); +OPENBLAS_EXPORT void cblas_dsyr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, double *A, OPENBLAS_CONST blasint lda); +OPENBLAS_EXPORT void cblas_cher(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, void *A, OPENBLAS_CONST blasint lda); +OPENBLAS_EXPORT void cblas_zher(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, void *A, OPENBLAS_CONST blasint lda); + +OPENBLAS_EXPORT void cblas_ssyr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo,OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A, OPENBLAS_CONST blasint lda); -void OPENBLAS_EXPORT cblas_dsyr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, +OPENBLAS_EXPORT void cblas_dsyr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A, OPENBLAS_CONST blasint lda); -void OPENBLAS_EXPORT cblas_cher2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, +OPENBLAS_EXPORT void cblas_cher2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); -void OPENBLAS_EXPORT cblas_zher2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, +OPENBLAS_EXPORT void cblas_zher2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *A, OPENBLAS_CONST blasint lda); -void OPENBLAS_EXPORT cblas_sgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +OPENBLAS_EXPORT void cblas_sgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint KL, OPENBLAS_CONST blasint KU, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float beta, float *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_dgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +OPENBLAS_EXPORT void cblas_dgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint KL, OPENBLAS_CONST blasint KU, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double beta, double *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_cgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +OPENBLAS_EXPORT void cblas_cgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint KL, OPENBLAS_CONST blasint KU, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_zgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +OPENBLAS_EXPORT void cblas_zgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint KL, OPENBLAS_CONST blasint KU, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_ssbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, +OPENBLAS_EXPORT void cblas_ssbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float beta, float *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_dsbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, +OPENBLAS_EXPORT void cblas_dsbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double beta, double *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_stbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_stbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_dtbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_dtbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ctbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_ctbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ztbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_ztbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_stbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_stbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_dtbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_dtbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ctbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_ctbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ztbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_ztbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_stpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_stpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *Ap, float *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_dtpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_dtpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *Ap, double *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ctpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_ctpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *Ap, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ztpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_ztpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *Ap, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_stpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_stpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *Ap, float *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_dtpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_dtpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *Ap, double *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ctpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_ctpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *Ap, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ztpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, +OPENBLAS_EXPORT void cblas_ztpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *Ap, void *X, OPENBLAS_CONST blasint incX); -void OPENBLAS_EXPORT cblas_ssymv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, +OPENBLAS_EXPORT void cblas_ssymv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float beta, float *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_dsymv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, +OPENBLAS_EXPORT void cblas_dsymv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double beta, double *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_chemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, +OPENBLAS_EXPORT void cblas_chemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_zhemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, +OPENBLAS_EXPORT void cblas_zhemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_sspmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *Ap, +OPENBLAS_EXPORT void cblas_sspmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *Ap, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float beta, float *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_dspmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *Ap, +OPENBLAS_EXPORT void cblas_dspmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *Ap, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double beta, double *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_sspr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, float *Ap); -void OPENBLAS_EXPORT cblas_dspr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, double *Ap); +OPENBLAS_EXPORT void cblas_sspr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, float *Ap); +OPENBLAS_EXPORT void cblas_dspr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, double *Ap); -void OPENBLAS_EXPORT cblas_chpr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, void *A); -void OPENBLAS_EXPORT cblas_zhpr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST void *X,OPENBLAS_CONST blasint incX, void *A); +OPENBLAS_EXPORT void cblas_chpr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, void *A); +OPENBLAS_EXPORT void cblas_zhpr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST void *X,OPENBLAS_CONST blasint incX, void *A); -void OPENBLAS_EXPORT cblas_sspr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A); -void OPENBLAS_EXPORT cblas_dspr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A); -void OPENBLAS_EXPORT cblas_chpr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *Ap); -void OPENBLAS_EXPORT cblas_zhpr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *Ap); +OPENBLAS_EXPORT void cblas_sspr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A); +OPENBLAS_EXPORT void cblas_dspr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A); +OPENBLAS_EXPORT void cblas_chpr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *Ap); +OPENBLAS_EXPORT void cblas_zhpr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *Y, OPENBLAS_CONST blasint incY, void *Ap); -void OPENBLAS_EXPORT cblas_chbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_chbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_zhbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_zhbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_chpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, +OPENBLAS_EXPORT void cblas_chpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *Ap, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_zhpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, +OPENBLAS_EXPORT void cblas_zhpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *Ap, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST void *beta, void *Y, OPENBLAS_CONST blasint incY); -void OPENBLAS_EXPORT cblas_sgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_sgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_dgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_dgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_cgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_cgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_cgemm3m(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_cgemm3m(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_zgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_zgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_zgemm3m(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_zgemm3m(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_sgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_sgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_dgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_dgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_cgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_cgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_zgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_zgemmt(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_ssymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +OPENBLAS_EXPORT void cblas_ssymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_dsymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +OPENBLAS_EXPORT void cblas_dsymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_csymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +OPENBLAS_EXPORT void cblas_csymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_zsymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +OPENBLAS_EXPORT void cblas_zsymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_ssyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +OPENBLAS_EXPORT void cblas_ssyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_dsyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +OPENBLAS_EXPORT void cblas_dsyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_csyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +OPENBLAS_EXPORT void cblas_csyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_zsyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +OPENBLAS_EXPORT void cblas_zsyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_ssyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +OPENBLAS_EXPORT void cblas_ssyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_dsyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +OPENBLAS_EXPORT void cblas_dsyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_csyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +OPENBLAS_EXPORT void cblas_csyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_zsyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, +OPENBLAS_EXPORT void cblas_zsyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_strmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +OPENBLAS_EXPORT void cblas_strmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *B, OPENBLAS_CONST blasint ldb); -void OPENBLAS_EXPORT cblas_dtrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +OPENBLAS_EXPORT void cblas_dtrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *B, OPENBLAS_CONST blasint ldb); -void OPENBLAS_EXPORT cblas_ctrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +OPENBLAS_EXPORT void cblas_ctrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *B, OPENBLAS_CONST blasint ldb); -void OPENBLAS_EXPORT cblas_ztrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +OPENBLAS_EXPORT void cblas_ztrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *B, OPENBLAS_CONST blasint ldb); -void OPENBLAS_EXPORT cblas_strsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +OPENBLAS_EXPORT void cblas_strsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *B, OPENBLAS_CONST blasint ldb); -void OPENBLAS_EXPORT cblas_dtrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +OPENBLAS_EXPORT void cblas_dtrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *B, OPENBLAS_CONST blasint ldb); -void OPENBLAS_EXPORT cblas_ctrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +OPENBLAS_EXPORT void cblas_ctrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *B, OPENBLAS_CONST blasint ldb); -void OPENBLAS_EXPORT cblas_ztrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, +OPENBLAS_EXPORT void cblas_ztrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, void *B, OPENBLAS_CONST blasint ldb); -void OPENBLAS_EXPORT cblas_chemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +OPENBLAS_EXPORT void cblas_chemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_zhemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, +OPENBLAS_EXPORT void cblas_zhemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_cherk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_cherk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_zherk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_zherk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_cher2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_cher2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_zher2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_zher2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, void *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_xerbla(blasint p, OPENBLAS_CONST char *rout, OPENBLAS_CONST char *form, ...); +OPENBLAS_EXPORT void cblas_xerbla(blasint p, OPENBLAS_CONST char *rout, OPENBLAS_CONST char *form, ...); /*** BLAS extensions ***/ -void OPENBLAS_EXPORT cblas_saxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST float beta, float *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_saxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST float beta, float *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_daxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST double beta, double *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_daxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST double beta, double *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_caxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST void *beta, void *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_caxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST void *beta, void *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_zaxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST void *beta, void *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_zaxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST void *beta, void *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_somatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float calpha, OPENBLAS_CONST float *a, +OPENBLAS_EXPORT void cblas_somatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float calpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint clda, float *b, OPENBLAS_CONST blasint cldb); -void OPENBLAS_EXPORT cblas_domatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double calpha, OPENBLAS_CONST double *a, +OPENBLAS_EXPORT void cblas_domatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double calpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint clda, double *b, OPENBLAS_CONST blasint cldb); -void OPENBLAS_EXPORT cblas_comatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float* calpha, OPENBLAS_CONST float* a, +OPENBLAS_EXPORT void cblas_comatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float* calpha, OPENBLAS_CONST float* a, OPENBLAS_CONST blasint clda, float*b, OPENBLAS_CONST blasint cldb); -void OPENBLAS_EXPORT cblas_zomatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double* calpha, OPENBLAS_CONST double* a, +OPENBLAS_EXPORT void cblas_zomatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double* calpha, OPENBLAS_CONST double* a, OPENBLAS_CONST blasint clda, double *b, OPENBLAS_CONST blasint cldb); -void OPENBLAS_EXPORT cblas_simatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float calpha, float *a, +OPENBLAS_EXPORT void cblas_simatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float calpha, float *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST blasint cldb); -void OPENBLAS_EXPORT cblas_dimatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double calpha, double *a, +OPENBLAS_EXPORT void cblas_dimatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double calpha, double *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST blasint cldb); -void OPENBLAS_EXPORT cblas_cimatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float* calpha, float* a, +OPENBLAS_EXPORT void cblas_cimatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float* calpha, float* a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST blasint cldb); -void OPENBLAS_EXPORT cblas_zimatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double* calpha, double* a, +OPENBLAS_EXPORT void cblas_zimatcopy(OPENBLAS_CONST enum CBLAS_ORDER CORDER, OPENBLAS_CONST enum CBLAS_TRANSPOSE CTRANS, OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double* calpha, double* a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST blasint cldb); -void OPENBLAS_EXPORT cblas_sgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float calpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST float cbeta, +OPENBLAS_EXPORT void cblas_sgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float calpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST float cbeta, float *c, OPENBLAS_CONST blasint cldc); -void OPENBLAS_EXPORT cblas_dgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double calpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST double cbeta, +OPENBLAS_EXPORT void cblas_dgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double calpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST double cbeta, double *c, OPENBLAS_CONST blasint cldc); -void OPENBLAS_EXPORT cblas_cgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float *calpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST float *cbeta, +OPENBLAS_EXPORT void cblas_cgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST float *calpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST float *cbeta, float *c, OPENBLAS_CONST blasint cldc); -void OPENBLAS_EXPORT cblas_zgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double *calpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST double *cbeta, +OPENBLAS_EXPORT void cblas_zgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double *calpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST double *cbeta, double *c, OPENBLAS_CONST blasint cldc); -void OPENBLAS_EXPORT cblas_sgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, +OPENBLAS_EXPORT void cblas_sgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, OPENBLAS_CONST float * alpha_array, OPENBLAS_CONST float ** A_array, OPENBLAS_CONST blasint * lda_array, OPENBLAS_CONST float ** B_array, OPENBLAS_CONST blasint * ldb_array, OPENBLAS_CONST float * beta_array, float ** C_array, OPENBLAS_CONST blasint * ldc_array, OPENBLAS_CONST blasint group_count, OPENBLAS_CONST blasint * group_size); -void OPENBLAS_EXPORT cblas_dgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, +OPENBLAS_EXPORT void cblas_dgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, OPENBLAS_CONST double * alpha_array, OPENBLAS_CONST double ** A_array, OPENBLAS_CONST blasint * lda_array, OPENBLAS_CONST double ** B_array, OPENBLAS_CONST blasint * ldb_array, OPENBLAS_CONST double * beta_array, double ** C_array, OPENBLAS_CONST blasint * ldc_array, OPENBLAS_CONST blasint group_count, OPENBLAS_CONST blasint * group_size); -void OPENBLAS_EXPORT cblas_cgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, +OPENBLAS_EXPORT void cblas_cgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, OPENBLAS_CONST void * alpha_array, OPENBLAS_CONST void ** A_array, OPENBLAS_CONST blasint * lda_array, OPENBLAS_CONST void ** B_array, OPENBLAS_CONST blasint * ldb_array, OPENBLAS_CONST void * beta_array, void ** C_array, OPENBLAS_CONST blasint * ldc_array, OPENBLAS_CONST blasint group_count, OPENBLAS_CONST blasint * group_size); -void OPENBLAS_EXPORT cblas_zgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, +OPENBLAS_EXPORT void cblas_zgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, OPENBLAS_CONST void * alpha_array, OPENBLAS_CONST void ** A_array, OPENBLAS_CONST blasint * lda_array, OPENBLAS_CONST void ** B_array, OPENBLAS_CONST blasint * ldb_array, OPENBLAS_CONST void * beta_array, void ** C_array, OPENBLAS_CONST blasint * ldc_array, OPENBLAS_CONST blasint group_count, OPENBLAS_CONST blasint * group_size); -void OPENBLAS_EXPORT cblas_sgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST float * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST float beta, float * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); +OPENBLAS_EXPORT void cblas_sgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST float * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST float beta, float * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); -void OPENBLAS_EXPORT cblas_dgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST double * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST double beta, double * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); +OPENBLAS_EXPORT void cblas_dgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST double * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST double beta, double * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); -void OPENBLAS_EXPORT cblas_cgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void * alpha, OPENBLAS_CONST void * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST void * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST void * beta, void * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); +OPENBLAS_EXPORT void cblas_cgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void * alpha, OPENBLAS_CONST void * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST void * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST void * beta, void * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); -void OPENBLAS_EXPORT cblas_zgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void * alpha, OPENBLAS_CONST void * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST void * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST void * beta, void * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); +OPENBLAS_EXPORT void cblas_zgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST void * alpha, OPENBLAS_CONST void * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST void * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST void * beta, void * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); /*** BFLOAT16 and INT8 extensions ***/ /* convert float array to BFLOAT16 array by rounding */ -void OPENBLAS_EXPORT cblas_sbstobf16(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *in, OPENBLAS_CONST blasint incin, bfloat16 *out, OPENBLAS_CONST blasint incout); +OPENBLAS_EXPORT void cblas_sbstobf16(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *in, OPENBLAS_CONST blasint incin, bfloat16 *out, OPENBLAS_CONST blasint incout); /* convert double array to BFLOAT16 array by rounding */ -void OPENBLAS_EXPORT cblas_sbdtobf16(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *in, OPENBLAS_CONST blasint incin, bfloat16 *out, OPENBLAS_CONST blasint incout); +OPENBLAS_EXPORT void cblas_sbdtobf16(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *in, OPENBLAS_CONST blasint incin, bfloat16 *out, OPENBLAS_CONST blasint incout); /* convert BFLOAT16 array to float array */ -void OPENBLAS_EXPORT cblas_sbf16tos(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *in, OPENBLAS_CONST blasint incin, float *out, OPENBLAS_CONST blasint incout); +OPENBLAS_EXPORT void cblas_sbf16tos(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *in, OPENBLAS_CONST blasint incin, float *out, OPENBLAS_CONST blasint incout); /* convert BFLOAT16 array to double array */ -void OPENBLAS_EXPORT cblas_dbf16tod(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *in, OPENBLAS_CONST blasint incin, double *out, OPENBLAS_CONST blasint incout); -void OPENBLAS_EXPORT cblas_bgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 alpha, OPENBLAS_CONST bfloat16 *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST bfloat16 beta, bfloat16 *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_dbf16tod(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *in, OPENBLAS_CONST blasint incin, double *out, OPENBLAS_CONST blasint incout); +OPENBLAS_EXPORT void cblas_bgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 alpha, OPENBLAS_CONST bfloat16 *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST bfloat16 beta, bfloat16 *y, OPENBLAS_CONST blasint incy); /* dot production of BFLOAT16 input arrays, and output as float */ -float OPENBLAS_EXPORT cblas_sbdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST bfloat16 *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_sbgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST bfloat16 *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float beta, float *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT float cblas_sbdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST bfloat16 *y, OPENBLAS_CONST blasint incy); +OPENBLAS_EXPORT void cblas_sbgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST bfloat16 *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float beta, float *y, OPENBLAS_CONST blasint incy); -void OPENBLAS_EXPORT cblas_bgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_bgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST bfloat16 alpha, OPENBLAS_CONST bfloat16 *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST bfloat16 *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST bfloat16 beta, bfloat16 *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_sbgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_sbgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST bfloat16 *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST bfloat16 *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); -void OPENBLAS_EXPORT cblas_sbgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, +OPENBLAS_EXPORT void cblas_sbgemm_batch(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransA_array, OPENBLAS_CONST enum CBLAS_TRANSPOSE * TransB_array, OPENBLAS_CONST blasint * M_array, OPENBLAS_CONST blasint * N_array, OPENBLAS_CONST blasint * K_array, OPENBLAS_CONST float * alpha_array, OPENBLAS_CONST bfloat16 ** A_array, OPENBLAS_CONST blasint * lda_array, OPENBLAS_CONST bfloat16 ** B_array, OPENBLAS_CONST blasint * ldb_array, OPENBLAS_CONST float * beta_array, float ** C_array, OPENBLAS_CONST blasint * ldc_array, OPENBLAS_CONST blasint group_count, OPENBLAS_CONST blasint * group_size); -void OPENBLAS_EXPORT cblas_sbgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST bfloat16 * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST bfloat16 * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST float beta, float * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); +OPENBLAS_EXPORT void cblas_sbgemm_batch_strided(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST bfloat16 * A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST blasint stridea, OPENBLAS_CONST bfloat16 * B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST blasint strideb, OPENBLAS_CONST float beta, float * C, OPENBLAS_CONST blasint ldc, OPENBLAS_CONST blasint stridec, OPENBLAS_CONST blasint group_size); /*** FLOAT16 extensions ***/ -void OPENBLAS_EXPORT cblas_shgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, +OPENBLAS_EXPORT void cblas_shgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST hfloat16 *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST hfloat16 *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc); #ifdef __cplusplus diff --git a/common.h b/common.h index b78d9f8bc6..cccda64c70 100644 --- a/common.h +++ b/common.h @@ -715,7 +715,7 @@ int get_num_proc (int); int get_node_equal (void); #endif -void goto_set_num_threads(int); +OPENBLAS_EXPORT void goto_set_num_threads(int); void gotoblas_affinity_init(void); void gotoblas_affinity_quit(void); diff --git a/driver/others/blas_server_win32.c b/driver/others/blas_server_win32.c index 5d792eaaed..c8aa4c50b0 100644 --- a/driver/others/blas_server_win32.c +++ b/driver/others/blas_server_win32.c @@ -539,6 +539,7 @@ int BLASFUNC(blas_thread_shutdown)(void){ return 0; } +OPENBLAS_EXPORT void goto_set_num_threads(int num_threads) { long i; @@ -583,6 +584,7 @@ void goto_set_num_threads(int num_threads) blas_cpu_number = num_threads; } +OPENBLAS_EXPORT void openblas_set_num_threads(int num) { goto_set_num_threads(num); From e1d244f752f5e35fff6f126861bac3967b7a5ed0 Mon Sep 17 00:00:00 2001 From: mattip Date: Tue, 23 Dec 2025 12:08:33 +0200 Subject: [PATCH 7/8] add another OPENBLAS_EXPORT --- common_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common_interface.h b/common_interface.h index dd7aa9eced..971bb9a869 100644 --- a/common_interface.h +++ b/common_interface.h @@ -46,7 +46,7 @@ extern "C" { int BLASFUNC(xerbla)(char *, blasint *info, blasint); -void extern openblas_set_num_threads_(int *); +OPENBLAS_EXPORT void extern openblas_set_num_threads_(int *); /*Set the threading backend to a custom callback.*/ typedef void (*openblas_dojob_callback)(int thread_num, void *jobdata, int dojob_data); From 24653a372085f163dbb669196063d5f345ffa97a Mon Sep 17 00:00:00 2001 From: mattip Date: Tue, 23 Dec 2025 15:12:24 +0200 Subject: [PATCH 8/8] typo --- Makefile.install | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile.install b/Makefile.install index a4b1effb4f..682c7589f7 100644 --- a/Makefile.install +++ b/Makefile.install @@ -86,10 +86,10 @@ ifdef SYMBOLSUFFIX @sed 's/openblas[^() ]*/&$(SYMBOLSUFFIX)/g' cblas.tmp2 > cblas.tmp #change back any openblas_complex_float and double that got hit @sed 's/\(openblas_complex_\)\([^ ]*\)$(SYMBOLSUFFIX)/\1\2 /g' cblas.tmp > cblas.tmp2 - @sed 's/goto[^() ]*/&$(SYMBOLSUFFIX)/g' cblas.tmp2 > cblas.tmp3 + @sed 's/goto[^() ]*/&$(SYMBOLSUFFIX)/g' cblas.tmp2 > cblas.tmp endif - @sed 's/OPENBLAS_EXPORT //' cblas.tmp3 > cblas.tmp - @sed 's/common/openblas_config/g' cblas.tmp > "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/cblas.h" + @sed 's/OPENBLAS_EXPORT //' cblas.tmp > cblas.tmp2 + @sed 's/common/openblas_config/g' cblas.tmp2 > "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/cblas.h" endif ifneq ($(OSNAME), AIX)