From d982e7c2fdebf560ccce193cb98b85d4fac28a45 Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Wed, 13 May 2020 17:30:19 -0700 Subject: blas 1 generation code complete --- include/libmath.h | 46 ++-------------------------------------------- 1 file changed, 2 insertions(+), 44 deletions(-) (limited to 'include') 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; -- cgit v1.2.1