diff options
author | Nicholas Noll <nbnoll@eml.cc> | 2020-05-13 17:30:19 -0700 |
---|---|---|
committer | Nicholas Noll <nbnoll@eml.cc> | 2020-05-13 17:30:19 -0700 |
commit | d982e7c2fdebf560ccce193cb98b85d4fac28a45 (patch) | |
tree | b18902eea12a2d55a24994ca0681ca1a369631aa /include | |
parent | c9d4b2d7dd1d9a46571e5d2b2cf6ce10a9d9ebea (diff) |
blas 1 generation code complete
Diffstat (limited to 'include')
-rw-r--r-- | include/libmath.h | 46 |
1 files changed, 2 insertions, 44 deletions
diff --git a/include/libmath.h b/include/libmath.h index 5a7dc4e..40ae4ee 100644 --- a/include/libmath.h +++ b/include/libmath.h @@ -130,49 +130,7 @@ double math·trunc(double); float math·truncf(float); // ----------------------------------------------------------------------- -// basic linear algebra compute kernels - -// 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; - -/* level 1 */ -void blas·rot(int len, double *x, int incx, double *y, int incy, double cos, double sin); -void blas·rotg(double *a, double *b, double *cos, double *sin); -error blas·rotm(int len, double *x, int incx, double *y, int incy, double p[5]); -void blas·scale(int len, double a, double *x, int inc); -void blas·copy(int len, double *x, int incx, double *y, int incy); -void blas·swap(int len, double *x, int incx, double *y, int incy); -void blas·axpy(int len, double a, double *x, int incx, double *y, int incy); -double blas·dot(int len, double *x, int incx, double *y, int incy); -double blas·norm(int len, double *x, int inc); -double blas·sum(int len, double *x, int inc); -int blas·argmax(int len, double *x, int inc); -int blas·argmin(int len, double *x, int inc); - -/* level 2 */ -void blas·tpmv(blas·Flag f, int n, double *m, double *x); -error blas·gemv(int nrow, int ncol, double a, double *m, int incm, double *x, int incx, double b, double *y, int incy) ; -void blas·tpsv(blas·Flag f, int n, double *m, double *x); -void blas·ger(int nrow, int ncol, double a, double *x, double *y, double *m); -void blas·her(int n, double a, double *x, double *m); -void blas·syr(int nrow, int ncol, double a, double *x, double *m); - -/* level 3 */ -void blas·gemm(int n1, int n2, int n3, double a, double *m1, double *m2, double b, double *m3); -void blas·trmm(blas·Flag f, int nrow, int ncol, double a, double *m1, double *m2); -void blas·trsm(blas·Flag f, int nrow, int ncol, double a, double *m1, double *m2); - -// ----------------------------------------------------------------------- -// higher level linear algebra +// linear algebra typedef struct math·Vector { @@ -185,7 +143,7 @@ typedef struct math·Vector typedef struct math·Matrix { double *data; - blas·Flag kind; + uint32 kind; int dim[2]; } math·Matrix; |