diff options
author | Anton Khirnov <anton@khirnov.net> | 2018-05-11 09:04:15 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2018-05-11 09:04:15 +0200 |
commit | cc74493091be7fd22ebf7c21bcaf8ef10a9bc949 (patch) | |
tree | 1896ef7c4c50a8b224d28d6ba226ec884192cd00 /init.c | |
parent | a877278dc70a0a5c0c172e163ba5b2e9d37e2870 (diff) |
Implement evaluating derivatives of k_rtheta.
Diffstat (limited to 'init.c')
-rw-r--r-- | init.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -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); |