primarycensored
Loading...
Searching...
No Matches
expgrowth.stan
Go to the documentation of this file.
1
11real expgrowth_pdf(real x, real min, real max, real r) {
12 if (x < min || x > max) {
13 return 0;
14 }
15 if (abs(r) < 1e-10) {
16 return 1 / (max - min);
17 }
18 return r * exp(r * (x - min)) / (exp(r * max) - exp(r * min));
19}
20
31real expgrowth_lpdf(real x, real min, real max, real r) {
32 if (x < min || x > max) {
33 return negative_infinity();
34 }
35 if (abs(r) < 1e-10) {
36 return -log(max - min);
37 }
38 return log(r) + r * (x - min) - log(exp(r * max) - exp(r * min));
39}
40
51real expgrowth_cdf(real x, real min, real max, real r) {
52 if (x < min) {
53 return 0;
54 }
55 if (x > max) {
56 return 1;
57 }
58 if (abs(r) < 1e-10) {
59 return (x - min) / (max - min);
60 }
61 return (exp(r * (x - min)) - exp(r * min)) / (exp(r * max) - exp(r * min));
62}
63
74real expgrowth_lcdf(real x, real min, real max, real r) {
75 if (x < min) {
76 return negative_infinity();
77 }
78 if (x > max) {
79 return 0;
80 }
81 return log(expgrowth_cdf(x | min, max, r));
82}
83
93real expgrowth_rng(real min, real max, real r) {
94 real u = uniform_rng(0, 1);
95 if (abs(r) < 1e-10) {
96 return min + u * (max - min);
97 }
98 return min + log(u * (exp(r * max) - exp(r * min)) + exp(r * min)) / r;
99}
real expgrowth_lpdf(real x, real min, real max, real r)
real expgrowth_pdf(real x, real min, real max, real r)
real expgrowth_cdf(real x, real min, real max, real r)
real expgrowth_lcdf(real x, real min, real max, real r)
real expgrowth_rng(real min, real max, real r)