aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2020-05-13 17:30:19 -0700
committerNicholas Noll <nbnoll@eml.cc>2020-05-13 17:30:19 -0700
commitd982e7c2fdebf560ccce193cb98b85d4fac28a45 (patch)
treeb18902eea12a2d55a24994ca0681ca1a369631aa /include
parentc9d4b2d7dd1d9a46571e5d2b2cf6ce10a9d9ebea (diff)
blas 1 generation code complete
Diffstat (limited to 'include')
-rw-r--r--include/libmath.h46
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;