aboutsummaryrefslogtreecommitdiff
path: root/init.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2018-05-11 09:04:15 +0200
committerAnton Khirnov <anton@khirnov.net>2018-05-11 09:04:15 +0200
commitcc74493091be7fd22ebf7c21bcaf8ef10a9bc949 (patch)
tree1896ef7c4c50a8b224d28d6ba226ec884192cd00 /init.c
parenta877278dc70a0a5c0c172e163ba5b2e9d37e2870 (diff)
Implement evaluating derivatives of k_rtheta.
Diffstat (limited to 'init.c')
-rw-r--r--init.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/init.c b/init.c
index e5ad3d8..6b05048 100644
--- a/init.c
+++ b/init.c
@@ -830,9 +830,16 @@ int td_eval_krt(const TDContext *td,
static const unsigned int nb_dummy_coords[2] = { 1, 1 };
TDConstraintEvalContext *ce;
+ double (*eval)(TDConstraintEvalContext*, double, double);
int ret;
- if (diff_order[0] || diff_order[1])
+ if (diff_order[0] == 0 && diff_order[1] == 0)
+ eval = tdi_constraint_eval_k_rtheta;
+ else if (diff_order[0] == 1 && diff_order[1] == 0)
+ eval = tdi_constraint_eval_dk_rtheta_r;
+ else if (diff_order[0] == 0 && diff_order[1] == 1)
+ eval = tdi_constraint_eval_dk_rtheta_t;
+ else
return -ENOSYS;
ret = constraint_eval_alloc(td, nb_dummy_coords, dummy_coords,
@@ -844,7 +851,7 @@ int td_eval_krt(const TDContext *td,
double theta_val = theta[i];
double r_val = r[i];
- out[i] = tdi_constraint_eval_k_rtheta(ce, r_val, theta_val);
+ out[i] = eval(ce, r_val, theta_val);
}
tdi_constraint_eval_free(&ce);