Skip to content
Snippets Groups Projects
Commit 39d26a9c authored by Andreas Gattringer's avatar Andreas Gattringer
Browse files

sigmoid vital rate: ensure density dependence correctness for edge cases

parent 99211441
No related branches found
No related tags found
No related merge requests found
......@@ -143,7 +143,7 @@ sigmoid(const struct cats_vital_rate *rate_info,
K = K - K * rate_info->density_ts;
assert(N >= 0);
assert(K >= 0);
cats_dt_rates old_rate = rate;
switch (rate_info->density) {
case DENSITY_DEP_NEGATIVE:
......@@ -152,10 +152,12 @@ sigmoid(const struct cats_vital_rate *rate_info,
if (K == 0) return 0.0;
rate = rate * density + (N / K) * rate_at_OT; // was: max_rate * scale;
if (rate > old_rate) rate = old_rate;
break;
case DENSITY_DEP_POSITIVE:
if (K == 0) return 0.0;
rate = rate * density + (1.0 - (N / K)) * rate_at_OT; // was: max_rate * scale;
if (rate < old_rate) rate = old_rate;
break;
case NO_DENSITY_DEP:
break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment