#pragma once // TODO: think of better names enum { blas·LowerTri = 1u, blas·Transpose = 2u, blas·ConjTranspose = 4u, blas·DiagOnes = 8u, blas·LeftSide = 16u, }; typedef uint32 blas·Flag; /* * Floats */ // level 1 void blas·frot(int len, float *x, int incx, float *y, int incy, float cos, float sin); void blas·frotg(float *a, float *b, float *cos, float *sin); error blas·frotm(int len, float *x, int incx, float *y, int incy, float p[5]); void blas·fscale(int len, float a, float *x, int inc); void blas·fcopy(int len, float *x, int incx, float *y, int incy); void blas·fswap(int len, float *x, int incx, float *y, int incy); void blas·faxpy(int len, float a, float *x, int incx, float *y, int incy); float blas·fdot(int len, float *x, int incx, float *y, int incy); float blas·fnorm(int len, float *x, int inc); float blas·fasum(int len, float *x, int inc); int blas·fargmax(int len, float *x, int inc); int blas·fargmin(int len, float *x, int inc); // level 2 void blas·tpmvf(blas·Flag f, int n, float *m, float *x); error blas·gemvf(int nrow, int ncol, float a, float *m, int incm, float *x, int incx, float b, float *y, int incy) ; void blas·tpsvf(blas·Flag f, int n, float *m, float *x); void blas·gerf(int nrow, int ncol, float a, float *x, int incx, float *y, int incy, float *m, int incm); void blas·herf(int n, float a, float *x, float *m); void blas·syrf(int nrow, int ncol, float a, float *x, float *m); // level 3 void blas·gemmf(int n1, int n2, int n3, float a, float *m1, float *m2, float b, float *m3); void blas·trmmf(blas·Flag f, int nrow, int ncol, float a, float *m1, float *m2); void blas·trsmf(blas·Flag f, int nrow, int ncol, float a, float *m1, float *m2); /* * Doubles */ // level 1 void blas·drot(int len, double *x, int incx, double *y, int incy, double cos, double sin); void blas·drotg(double *a, double *b, double *cos, double *sin); error blas·drotm(int len, double *x, int incx, double *y, int incy, double p[5]); void blas·dscale(int len, double a, double *x, int inc); void blas·dcopy(int len, double *x, int incx, double *y, int incy); void blas·dswap(int len, double *x, int incx, double *y, int incy); void blas·daxpy(int len, double a, double *x, int incx, double *y, int incy); double blas·ddot(int len, double *x, int incx, double *y, int incy); double blas·dnorm(int len, double *x, int inc); double blas·dasum(int len, double *x, int inc); int blas·dargmax(int len, double *x, int inc); int blas·dargmin(int len, double *x, int inc); // level 2 void blas·tpmvd(blas·Flag f, int n, double *m, double *x); error blas·gemvd(int nrow, int ncol, double a, double *m, int incm, double *x, int incx, double b, double *y, int incy) ; void blas·tpsvd(blas·Flag f, int n, double *m, double *x); void blas·gerd(int nrow, int ncol, double a, double *x, int incx, double *y, int incy, double *m, int incm); void blas·herd(int n, double a, double *x, double *m); void blas·syrd(int nrow, int ncol, double a, double *x, double *m); // level 3 void blas·gemmd(int n1, int n2, int n3, double a, double *m1, double *m2, double b, double *m3); void blas·trmmd(blas·Flag f, int nrow, int ncol, double a, double *m1, double *m2); void blas·trsmd(blas·Flag f, int nrow, int ncol, double a, double *m1, double *m2); /* * TODO: Complex */