summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Biz/Bild/Bessel.c19
-rw-r--r--Biz/Bild/Bessel.scm10
2 files changed, 29 insertions, 0 deletions
diff --git a/Biz/Bild/Bessel.c b/Biz/Bild/Bessel.c
new file mode 100644
index 0000000..524956c
--- /dev/null
+++ b/Biz/Bild/Bessel.c
@@ -0,0 +1,19 @@
+// : dep guile-3.0
+// : lib libbessel-guile
+// : arg -shared
+// : arg -fPIC
+
+#include <math.h>
+#include <libguile.h>
+
+SCM
+j0_wrapper(SCM x)
+{
+ return scm_from_double(j0(scm_to_double(x)));
+}
+
+void
+init_bessel()
+{
+ scm_c_define_gsubr("j0", 1, 0, 0, j0_wrapper);
+}
diff --git a/Biz/Bild/Bessel.scm b/Biz/Bild/Bessel.scm
new file mode 100644
index 0000000..ad40834
--- /dev/null
+++ b/Biz/Bild/Bessel.scm
@@ -0,0 +1,10 @@
+;; : out bessel.exe
+(import (only (rnrs base) assert))
+(load-extension "libguile-bessel" "init_bessel")
+(define (main args)
+ (let ((result (j0 2)))
+ (display "testing")
+ (newline)
+ (display result)
+ (newline)
+ (assert (= (j0 2) 0.22389077914123567))))