summaryrefslogtreecommitdiff
path: root/wolfram_link/convexminorant.tm
diff options
context:
space:
mode:
Diffstat (limited to 'wolfram_link/convexminorant.tm')
-rw-r--r--wolfram_link/convexminorant.tm33
1 files changed, 33 insertions, 0 deletions
diff --git a/wolfram_link/convexminorant.tm b/wolfram_link/convexminorant.tm
new file mode 100644
index 0000000..48f5650
--- /dev/null
+++ b/wolfram_link/convexminorant.tm
@@ -0,0 +1,33 @@
+
+#include <convex.h>
+#include <wstp.h>
+
+extern int WSMain(int, char **);
+
+void convexminorant(double *, int);
+
+:Begin:
+:Function: convexminorant
+:Pattern: GetConvexMinorant[ list:{___Real} ]
+:Arguments: { list }
+:ArgumentTypes: { Real64List }
+:ReturnType: Manual
+:End:
+
+:Evaluate: GetConvexMinorant[ sequence___Float]:= GetConvexMinorant[ {sequence} ]
+
+void convexminorant(double * Gammas, int len) {
+ int i;
+ for (i = 0; i < len; i++) {
+ if (Gammas[i] <= 0) {
+ break;
+ }
+ }
+ double *m = get_convex_minorant(i, Gammas);
+ WSPutReal64List(stdlink, m, i);
+}
+
+int main(int argc, char **argv) {
+ return WSMain(argc, argv);
+}
+