summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/runtimebase.in
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/runtimebase.in')
-rw-r--r--Build/source/utils/asymptote/runtimebase.in32
1 files changed, 32 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/runtimebase.in b/Build/source/utils/asymptote/runtimebase.in
index b7c13d590fd..87f928f4c4d 100644
--- a/Build/source/utils/asymptote/runtimebase.in
+++ b/Build/source/utils/asymptote/runtimebase.in
@@ -25,14 +25,46 @@ string => primString()
#include "builtin.h"
#include "entry.h"
#include "errormsg.h"
+#include "array.h"
+#include "triple.h"
+#include "callable.h"
using vm::stack;
using vm::error;
+using vm::array;
+using vm::callable;
using types::formal;
+using types::function;
+using camp::triple;
#define PRIMITIVE(name,Name,asyName) using types::prim##Name;
#include <primitives.h>
#undef PRIMITIVE
+typedef double real;
+
void unused(void *);
+
+namespace run {
+array *copyArray(array *a);
+array *copyArray2(array *a);
+array *copyArray3(array *a);
+
+double *copyArrayC(const array *a, size_t dim=0);
+double *copyArray2C(const array *a, bool square=true, size_t dim2=0);
+
+triple *copyTripleArrayC(const array *a, size_t dim=0);
+triple *copyTripleArray2C(const array *a, bool square=true, size_t dim2=0);
+double *copyTripleArray2Components(array *a, bool square=true, size_t dim2=0);
+}
+
+function *realRealFunction();
+
+// Return the component of vector v perpendicular to a unit vector u.
+inline triple perp(triple v, triple u)
+{
+ return v-dot(v,u)*u;
+}
+
+#define CURRENTPEN processData().currentpen