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 - xmin)) / (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(r) + r * (x - xmin) - log(exp(r * xmax) - exp(r * xmin));
39}
40
51real expgrowth_cdf(real x, real xmin, real xmax, real r) {
52 if (x < xmin) {
53 return 0;
54 }
55 if (x > xmax) {
56 return 1;
57 }
58 if (abs(r) < 1e-10) {
59 return (x - xmin) / (xmax - xmin);
60 }
61 return (exp(r * (x - xmin)) - exp(r * xmin)) / (exp(r * xmax) - exp(r * xmin));
62}
63
74real expgrowth_lcdf(real x, real xmin, real xmax, real r) {
75 if (x < xmin) {
76 return negative_infinity();
77 }
78 if (x > xmax) {
79 return 0;
80 }
81 return log(expgrowth_cdf(x | xmin, xmax, r));
82}
83
93real expgrowth_rng(real xmin, real xmax, real r) {
94 real u = uniform_rng(0, 1);
95 if (abs(r) < 1e-10) {
96 return xmin + u * (xmax - xmin);
97 }
98 return xmin + log(u * (exp(r * xmax) - exp(r * xmin)) + exp(r * xmin)) / r;
99}
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)