diff interp.c @ 28:d8b4d38fceb6

Merged in the worker registration code for the math functions added for ICFP 08
author Mike Pavone <pavone@retrodev.com>
date Fri, 26 Jun 2009 19:57:46 -0400
parents 20d40cb8abf3
children 3cc5e4a42344
line wrap: on
line diff
--- a/interp.c	Fri Jun 26 17:24:31 2009 -0400
+++ b/interp.c	Fri Jun 26 19:57:46 2009 -0400
@@ -1528,6 +1528,39 @@
 	aworker->implement_func=(custom_worker *)vis_real_div;
 	aworker->input_types[0] = BUILTIN_TYPE_REAL;
 	aworker->input_types[1] = BUILTIN_TYPE_REAL;
+	
+	aworker = create_worker(prog, "Cosine@Real Number", 1, 1, WORKER_TYPE);
+	aworker->implement_func=(custom_worker *)vis_real_cos;
+	aworker->input_types[0] = BUILTIN_TYPE_REAL;
+
+	aworker = create_worker(prog, "Sine@Real Number", 1, 1, WORKER_TYPE);
+	aworker->implement_func=(custom_worker *)vis_real_sin;
+	aworker->input_types[0] = BUILTIN_TYPE_REAL;
+
+	aworker = create_worker(prog, "Tangent@Real Number", 1, 1, WORKER_TYPE);
+	aworker->implement_func=(custom_worker *)vis_real_tan;
+	aworker->input_types[0] = BUILTIN_TYPE_REAL;
+
+	aworker = create_worker(prog, "Arc Cosine@Real Number", 1, 1, WORKER_TYPE);
+	aworker->implement_func=(custom_worker *)vis_real_arccos;
+	aworker->input_types[0] = BUILTIN_TYPE_REAL;
+
+	aworker = create_worker(prog, "Arc Sine@Real Number", 1, 1, WORKER_TYPE);
+	aworker->implement_func=(custom_worker *)vis_real_arcsin;
+	aworker->input_types[0] = BUILTIN_TYPE_REAL;
+
+	aworker = create_worker(prog, "Arc Tangent@Real Number", 1, 1, WORKER_TYPE);
+	aworker->implement_func=(custom_worker *)vis_real_arctan;
+	aworker->input_types[0] = BUILTIN_TYPE_REAL;
+
+	aworker = create_worker(prog, "^@Real Number", 2, 1, WORKER_TYPE);
+	aworker->implement_func=(custom_worker *)vis_real_exp;
+	aworker->input_types[0] = BUILTIN_TYPE_REAL;
+	aworker->input_types[1] = BUILTIN_TYPE_REAL;
+
+	aworker = create_worker(prog, "Square Root@Real Number", 1, 1, WORKER_TYPE);
+	aworker->implement_func=(custom_worker *)vis_real_sqrt;
+	aworker->input_types[0] = BUILTIN_TYPE_REAL;
 
 	//add_method(this_comp, aworker);