summaryrefslogtreecommitdiff
path: root/2.3-1/src/c/differential_calculus
diff options
context:
space:
mode:
Diffstat (limited to '2.3-1/src/c/differential_calculus')
-rw-r--r--2.3-1/src/c/differential_calculus/includes/ode.h4
-rw-r--r--2.3-1/src/c/differential_calculus/interfaces/int_ode.h14
-rw-r--r--2.3-1/src/c/differential_calculus/ode/dodea.c2
-rw-r--r--2.3-1/src/c/differential_calculus/ode/dodes.c3
4 files changed, 19 insertions, 4 deletions
diff --git a/2.3-1/src/c/differential_calculus/includes/ode.h b/2.3-1/src/c/differential_calculus/includes/ode.h
index 79962434..7e110031 100644
--- a/2.3-1/src/c/differential_calculus/includes/ode.h
+++ b/2.3-1/src/c/differential_calculus/includes/ode.h
@@ -14,11 +14,11 @@
#define __ODE_H__
double dodes(double initial_value, double start_time, double end_time, \
- int (*ode_function), char *solver_type, double nequs, double eps_abs, double eps_rel, \
+ int (*ode_function)(double, double*, double*, int*), char *solver_type, double nequs, double eps_abs, double eps_rel, \
double step_size, int *params);
void dodea(double *initial_value, double start_time, double end_time, \
- int (*ode_function), char *solver_type, double nequs, double eps_abs, double eps_rel, \
+ int (*ode_function)(double, double*, double*, int*), char *solver_type, double nequs, double eps_abs, double eps_rel, \
double step_size, int *params, double *out);
#endif /*__ODE_H__*/ \ No newline at end of file
diff --git a/2.3-1/src/c/differential_calculus/interfaces/int_ode.h b/2.3-1/src/c/differential_calculus/interfaces/int_ode.h
index 28f43999..51764ea1 100644
--- a/2.3-1/src/c/differential_calculus/interfaces/int_ode.h
+++ b/2.3-1/src/c/differential_calculus/interfaces/int_ode.h
@@ -46,6 +46,20 @@ extern "C" {
in2, in3, func_name, solvertype, size1[1], 1.0e-2, 1.0e-2, \
1.0e-6, size1, out)
+#define d0d0d0d0d0fn0oded0(in1, in2, in3, in4, in5, func_name) \
+ dodes(in1, in2, in3, func_name, "rkf",1, in5, in4, 1.0e-6, NULL)
+
+#define d2d0d0d0d0fn0oded2(in1, size1, in2, in3, in4, in5, func_name, out) \
+ dodea(in1, in2, in3, func_name, "rkf", size1[1], in5, in4, \
+ 1.0e-6, size1, out)
+
+#define d0d0d2d0d0fn0oded2(in1, in2, in3, size3, in4, in5, func_name, out) \
+ dodea(in1, in2, in3, func_name, "rkf", 1, in5, in4, 1.0e-6, size3, out)
+
+#define d2d0d2d0d0fn0oded2(in1, size1, in2, in3, size3, in4, in5, func_name, out) \
+ dodea(in1, in2, in3, func_name, "rkf", size1[1], in5, in4, \
+ 1.0e-6, size1, out)
+
#ifdef __cplusplus
} /* extern "C" */
#endif
diff --git a/2.3-1/src/c/differential_calculus/ode/dodea.c b/2.3-1/src/c/differential_calculus/ode/dodea.c
index 1cb07fab..97d56a1a 100644
--- a/2.3-1/src/c/differential_calculus/ode/dodea.c
+++ b/2.3-1/src/c/differential_calculus/ode/dodea.c
@@ -20,7 +20,7 @@
void dodea(double *initial_value, double start_time, double end_time, \
- int (*ode_function), char *solver_type, double nequs, double eps_abs, \
+ int (*ode_function)(double, double*, double*, int*), char *solver_type, double nequs, double eps_abs, \
double eps_rel, double step_size, int *params, double *out)
{
double t = start_time;
diff --git a/2.3-1/src/c/differential_calculus/ode/dodes.c b/2.3-1/src/c/differential_calculus/ode/dodes.c
index adef1ba7..6d1a8672 100644
--- a/2.3-1/src/c/differential_calculus/ode/dodes.c
+++ b/2.3-1/src/c/differential_calculus/ode/dodes.c
@@ -20,7 +20,8 @@
double dodes(double initial_value, double start_time, double end_time, \
- int (*ode_function), char *solver_type, double nequs, double eps_abs, \
+ int (*ode_function)(double, double*, double*, int*), \
+ char *solver_type, double nequs, double eps_abs, \
double eps_rel, double step_size, int *params)
{
double out = 0, t = 0;