diff options
Diffstat (limited to '2.3-1/src/c/differential_calculus')
-rw-r--r-- | 2.3-1/src/c/differential_calculus/includes/ode.h | 4 | ||||
-rw-r--r-- | 2.3-1/src/c/differential_calculus/interfaces/int_ode.h | 14 | ||||
-rw-r--r-- | 2.3-1/src/c/differential_calculus/ode/dodea.c | 2 | ||||
-rw-r--r-- | 2.3-1/src/c/differential_calculus/ode/dodes.c | 3 |
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; |