Add BLAS to supported intrinsics.
Change-Id: I8e776b2ffdbac09a73924035eee2eca0a12facb3
diff --git a/rsDefines.h b/rsDefines.h
index 69a62d6..4ccdeb8 100644
--- a/rsDefines.h
+++ b/rsDefines.h
@@ -254,7 +254,209 @@
RS_CONTEXT_LOW_POWER = 0x0004
};
+enum RsBlasTranspose {
+ RsBlasNoTrans=111,
+ RsBlasTrans=112,
+ RsBlasConjTrans=113
+};
+enum RsBlasUplo {
+ RsBlasUpper=121,
+ RsBlasLower=122
+};
+
+enum RsBlasDiag {
+ RsBlasNonUnit=131,
+ RsBlasUnit=132
+};
+
+enum RsBlasSide {
+ RsBlasLeft=141,
+ RsBlasRight=142
+};
+
+enum RsBlasFunction {
+ RsBlas_nop = 0,
+ RsBlas_sdsdot,
+ RsBlas_dsdot,
+ RsBlas_sdot,
+ RsBlas_ddot,
+ RsBlas_cdotu_sub,
+ RsBlas_cdotc_sub,
+ RsBlas_zdotu_sub,
+ RsBlas_zdotc_sub,
+ RsBlas_snrm2,
+ RsBlas_sasum,
+ RsBlas_dnrm2,
+ RsBlas_dasum,
+ RsBlas_scnrm2,
+ RsBlas_scasum,
+ RsBlas_dznrm2,
+ RsBlas_dzasum,
+ RsBlas_isamax,
+ RsBlas_idamax,
+ RsBlas_icamax,
+ RsBlas_izamax,
+ RsBlas_sswap,
+ RsBlas_scopy,
+ RsBlas_saxpy,
+ RsBlas_dswap,
+ RsBlas_dcopy,
+ RsBlas_daxpy,
+ RsBlas_cswap,
+ RsBlas_ccopy,
+ RsBlas_caxpy,
+ RsBlas_zswap,
+ RsBlas_zcopy,
+ RsBlas_zaxpy,
+ RsBlas_srotg,
+ RsBlas_srotmg,
+ RsBlas_srot,
+ RsBlas_srotm,
+ RsBlas_drotg,
+ RsBlas_drotmg,
+ RsBlas_drot,
+ RsBlas_drotm,
+ RsBlas_sscal,
+ RsBlas_dscal,
+ RsBlas_cscal,
+ RsBlas_zscal,
+ RsBlas_csscal,
+ RsBlas_zdscal,
+ RsBlas_sgemv,
+ RsBlas_sgbmv,
+ RsBlas_strmv,
+ RsBlas_stbmv,
+ RsBlas_stpmv,
+ RsBlas_strsv,
+ RsBlas_stbsv,
+ RsBlas_stpsv,
+ RsBlas_dgemv,
+ RsBlas_dgbmv,
+ RsBlas_dtrmv,
+ RsBlas_dtbmv,
+ RsBlas_dtpmv,
+ RsBlas_dtrsv,
+ RsBlas_dtbsv,
+ RsBlas_dtpsv,
+ RsBlas_cgemv,
+ RsBlas_cgbmv,
+ RsBlas_ctrmv,
+ RsBlas_ctbmv,
+ RsBlas_ctpmv,
+ RsBlas_ctrsv,
+ RsBlas_ctbsv,
+ RsBlas_ctpsv,
+ RsBlas_zgemv,
+ RsBlas_zgbmv,
+ RsBlas_ztrmv,
+ RsBlas_ztbmv,
+ RsBlas_ztpmv,
+ RsBlas_ztrsv,
+ RsBlas_ztbsv,
+ RsBlas_ztpsv,
+ RsBlas_ssymv,
+ RsBlas_ssbmv,
+ RsBlas_sspmv,
+ RsBlas_sger,
+ RsBlas_ssyr,
+ RsBlas_sspr,
+ RsBlas_ssyr2,
+ RsBlas_sspr2,
+ RsBlas_dsymv,
+ RsBlas_dsbmv,
+ RsBlas_dspmv,
+ RsBlas_dger,
+ RsBlas_dsyr,
+ RsBlas_dspr,
+ RsBlas_dsyr2,
+ RsBlas_dspr2,
+ RsBlas_chemv,
+ RsBlas_chbmv,
+ RsBlas_chpmv,
+ RsBlas_cgeru,
+ RsBlas_cgerc,
+ RsBlas_cher,
+ RsBlas_chpr,
+ RsBlas_cher2,
+ RsBlas_chpr2,
+ RsBlas_zhemv,
+ RsBlas_zhbmv,
+ RsBlas_zhpmv,
+ RsBlas_zgeru,
+ RsBlas_zgerc,
+ RsBlas_zher,
+ RsBlas_zhpr,
+ RsBlas_zher2,
+ RsBlas_zhpr2,
+ RsBlas_sgemm,
+ RsBlas_ssymm,
+ RsBlas_ssyrk,
+ RsBlas_ssyr2k,
+ RsBlas_strmm,
+ RsBlas_strsm,
+ RsBlas_dgemm,
+ RsBlas_dsymm,
+ RsBlas_dsyrk,
+ RsBlas_dsyr2k,
+ RsBlas_dtrmm,
+ RsBlas_dtrsm,
+ RsBlas_cgemm,
+ RsBlas_csymm,
+ RsBlas_csyrk,
+ RsBlas_csyr2k,
+ RsBlas_ctrmm,
+ RsBlas_ctrsm,
+ RsBlas_zgemm,
+ RsBlas_zsymm,
+ RsBlas_zsyrk,
+ RsBlas_zsyr2k,
+ RsBlas_ztrmm,
+ RsBlas_ztrsm,
+ RsBlas_chemm,
+ RsBlas_cherk,
+ RsBlas_cher2k,
+ RsBlas_zhemm,
+ RsBlas_zherk,
+ RsBlas_zher2k
+};
+
+// custom complex types because of NDK support
+typedef struct {
+ float r;
+ float i;
+} RsFloatComplex;
+
+typedef struct {
+ double r;
+ double i;
+} RsDoubleComplex;
+
+typedef union {
+ float f;
+ RsFloatComplex c;
+ double d;
+ RsDoubleComplex z;
+} RsBlasScalar;
+
+typedef struct {
+ RsBlasFunction func;
+ RsBlasTranspose transA;
+ RsBlasTranspose transB;
+ RsBlasUplo uplo;
+ RsBlasDiag diag;
+ RsBlasSide side;
+ int M;
+ int N;
+ int K;
+ RsBlasScalar alpha;
+ RsBlasScalar beta;
+ int incX;
+ int incY;
+ int KL;
+ int KU;
+} RsBlasCall;
+
#ifdef __cplusplus
};
#endif