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