aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2020-04-28 21:31:01 -0700
committerNicholas Noll <nbnoll@eml.cc>2020-04-28 21:31:01 -0700
commit86134ccf82dcafe338e68c14e483ec98cfc94925 (patch)
treea5bae880fcd03e8de6393988ce5f6f2317eb9004
parenta48e7f9fd525b4da828605fb7be4d2a35dde4e23 (diff)
struct: preparing for prototype of math library
-rw-r--r--include/libmath.h20
-rw-r--r--sys/libbio/phylo.c14
-rw-r--r--sys/libn/rules.mk2
-rw-r--r--sys/rules.mk3
4 files changed, 38 insertions, 1 deletions
diff --git a/include/libmath.h b/include/libmath.h
new file mode 100644
index 0000000..03e8e1a
--- /dev/null
+++ b/include/libmath.h
@@ -0,0 +1,20 @@
+#pragma once
+
+// -----------------------------------------------------------------------
+// Linear algebra
+
+/*
+ * Vector (double precision)
+ * len : dimension of space
+ * inc : stride to access in buffer
+ * buf : pointer to start of data
+ * NOTE: minimum buffer size MUST be len*inc
+ */
+typedef struct math·Vecd
+{
+ int len;
+ int inc;
+ double *buf;
+} math·Vecd;
+
+double linalg·dotd(math·Vecd a, math·Vecd b);
diff --git a/sys/libbio/phylo.c b/sys/libbio/phylo.c
index 4a4bcb1..4bb8f66 100644
--- a/sys/libbio/phylo.c
+++ b/sys/libbio/phylo.c
@@ -205,3 +205,17 @@ phylo·reroot(bio·Tree *tree, bio·Node *node, double d)
tree->root = new;
return 0;
}
+
+// -----------------------------------------------------------------------
+// ancestral inference
+
+struct phylo·InferOpts
+{
+ int nstates;
+ double *Q;
+};
+
+error
+phylo·ancestralinfer(bio·Tree *tree, struct phylo·InferOpts opts)
+{
+}
diff --git a/sys/libn/rules.mk b/sys/libn/rules.mk
index 19e4c50..4731558 100644
--- a/sys/libn/rules.mk
+++ b/sys/libn/rules.mk
@@ -37,7 +37,7 @@ $(LIBS_$(d)): $(OBJS_$(d))
$(ARCHIVE)
$(BINS_$(d)): TCLIBS := $(LIBS_$(d)) $(LIB_DIR)/vendor/libz.a
-$(BINS_$(d)): $(OBJ_DIR)/libn/test.o
+$(BINS_$(d)): $(OBJS_$(d)) $(OBJ_DIR)/libn/test.o
$(LINK)
# ---- Pop off stack ----
diff --git a/sys/rules.mk b/sys/rules.mk
index d7ca408..aac0aaa 100644
--- a/sys/rules.mk
+++ b/sys/rules.mk
@@ -11,6 +11,9 @@ include $(DIR)/rules.mk
DIR := $(d)/libn
include $(DIR)/rules.mk
+DIR := $(d)/libmath
+include $(DIR)/rules.mk
+
DIR := $(d)/libbio
include $(DIR)/rules.mk