Skip to content

Commit 582ade1

Browse files
authored
Merge pull request #1607 from stan-dev/feat/yule_simon
Add signatures for yule_simon distribution
2 parents 813a864 + 153ea1a commit 582ade1

File tree

8 files changed

+308
-1
lines changed

8 files changed

+308
-1
lines changed

src/stan_math_signatures/Generate.ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,8 @@ let distributions =
275275
; (full_lpdf, "weibull", [DVReal; DVReal; DVReal], SoA)
276276
; ([Lpdf], "wiener", [DVReal; DVReal; DVReal; DVReal; DVReal], SoA)
277277
; ([Lpdf], "wishart_cholesky", [DMatrix; DReal; DMatrix], SoA)
278-
; ([Lpdf], "wishart", [DMatrix; DReal; DMatrix], SoA) ]
278+
; ([Lpdf], "wishart", [DMatrix; DReal; DMatrix], SoA)
279+
; (full_lpmf, "yule_simon", [DVInt; DVReal], SoA) ]
279280

280281
let basic_vectorized = UnaryVectorized IntsToReals
281282

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
data {
2+
int d_int;
3+
real d_real;
4+
vector[d_int] d_vector;
5+
row_vector[d_int] d_row_vector;
6+
array[d_int] int d_int_array_1d;
7+
array[d_int] real d_real_array_1d;
8+
9+
10+
}
11+
12+
transformed data {
13+
real td_real;
14+
15+
td_real = yule_simon_cdf(d_int| d_real);
16+
td_real = yule_simon_cdf(d_int| d_real_array_1d);
17+
td_real = yule_simon_cdf(d_int| d_row_vector);
18+
td_real = yule_simon_cdf(d_int| d_vector);
19+
td_real = yule_simon_cdf(d_int_array_1d| d_real);
20+
td_real = yule_simon_cdf(d_int_array_1d| d_real_array_1d);
21+
td_real = yule_simon_cdf(d_int_array_1d| d_row_vector);
22+
td_real = yule_simon_cdf(d_int_array_1d| d_vector);
23+
}
24+
25+
parameters {
26+
real p_real;
27+
vector[d_int] p_vector;
28+
row_vector[d_int] p_row_vector;
29+
array[d_int] real p_real_array_1d;
30+
31+
32+
}
33+
34+
transformed parameters {
35+
real transformed_param_real;
36+
37+
transformed_param_real = yule_simon_cdf(d_int| d_real);
38+
transformed_param_real = yule_simon_cdf(d_int| d_real_array_1d);
39+
transformed_param_real = yule_simon_cdf(d_int| d_row_vector);
40+
transformed_param_real = yule_simon_cdf(d_int| d_vector);
41+
transformed_param_real = yule_simon_cdf(d_int| p_real);
42+
transformed_param_real = yule_simon_cdf(d_int| p_real_array_1d);
43+
transformed_param_real = yule_simon_cdf(d_int| p_row_vector);
44+
transformed_param_real = yule_simon_cdf(d_int| p_vector);
45+
transformed_param_real = yule_simon_cdf(d_int_array_1d| d_real);
46+
transformed_param_real = yule_simon_cdf(d_int_array_1d| d_real_array_1d);
47+
transformed_param_real = yule_simon_cdf(d_int_array_1d| d_row_vector);
48+
transformed_param_real = yule_simon_cdf(d_int_array_1d| d_vector);
49+
transformed_param_real = yule_simon_cdf(d_int_array_1d| p_real);
50+
transformed_param_real = yule_simon_cdf(d_int_array_1d| p_real_array_1d);
51+
transformed_param_real = yule_simon_cdf(d_int_array_1d| p_row_vector);
52+
transformed_param_real = yule_simon_cdf(d_int_array_1d| p_vector);
53+
}
54+
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
data {
2+
int d_int;
3+
real d_real;
4+
vector[d_int] d_vector;
5+
row_vector[d_int] d_row_vector;
6+
array[d_int] int d_int_array_1d;
7+
array[d_int] real d_real_array_1d;
8+
9+
10+
}
11+
12+
transformed data {
13+
real td_real;
14+
15+
16+
td_real = yule_simon_lccdf(d_int| d_real);
17+
td_real = yule_simon_lccdf(d_int| d_real_array_1d);
18+
td_real = yule_simon_lccdf(d_int| d_row_vector);
19+
td_real = yule_simon_lccdf(d_int| d_vector);
20+
td_real = yule_simon_lccdf(d_int_array_1d| d_real);
21+
td_real = yule_simon_lccdf(d_int_array_1d| d_real_array_1d);
22+
td_real = yule_simon_lccdf(d_int_array_1d| d_row_vector);
23+
td_real = yule_simon_lccdf(d_int_array_1d| d_vector);
24+
}
25+
26+
parameters {
27+
real p_real;
28+
vector[d_int] p_vector;
29+
row_vector[d_int] p_row_vector;
30+
array[d_int] real p_real_array_1d;
31+
32+
33+
}
34+
35+
transformed parameters {
36+
real transformed_param_real;
37+
38+
transformed_param_real = yule_simon_lccdf(d_int| d_real);
39+
transformed_param_real = yule_simon_lccdf(d_int| d_real_array_1d);
40+
transformed_param_real = yule_simon_lccdf(d_int| d_row_vector);
41+
transformed_param_real = yule_simon_lccdf(d_int| d_vector);
42+
transformed_param_real = yule_simon_lccdf(d_int| p_real);
43+
transformed_param_real = yule_simon_lccdf(d_int| p_real_array_1d);
44+
transformed_param_real = yule_simon_lccdf(d_int| p_row_vector);
45+
transformed_param_real = yule_simon_lccdf(d_int| p_vector);
46+
transformed_param_real = yule_simon_lccdf(d_int_array_1d| d_real);
47+
transformed_param_real = yule_simon_lccdf(d_int_array_1d| d_real_array_1d);
48+
transformed_param_real = yule_simon_lccdf(d_int_array_1d| d_row_vector);
49+
transformed_param_real = yule_simon_lccdf(d_int_array_1d| d_vector);
50+
transformed_param_real = yule_simon_lccdf(d_int_array_1d| p_real);
51+
transformed_param_real = yule_simon_lccdf(d_int_array_1d| p_real_array_1d);
52+
transformed_param_real = yule_simon_lccdf(d_int_array_1d| p_row_vector);
53+
transformed_param_real = yule_simon_lccdf(d_int_array_1d| p_vector);
54+
}
55+
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
data {
2+
int d_int;
3+
real d_real;
4+
vector[d_int] d_vector;
5+
row_vector[d_int] d_row_vector;
6+
array[d_int] int d_int_array_1d;
7+
array[d_int] real d_real_array_1d;
8+
9+
10+
}
11+
12+
transformed data {
13+
real td_real;
14+
15+
16+
td_real = yule_simon_lcdf(d_int| d_real);
17+
td_real = yule_simon_lcdf(d_int| d_real_array_1d);
18+
td_real = yule_simon_lcdf(d_int| d_row_vector);
19+
td_real = yule_simon_lcdf(d_int| d_vector);
20+
td_real = yule_simon_lcdf(d_int_array_1d| d_real);
21+
td_real = yule_simon_lcdf(d_int_array_1d| d_real_array_1d);
22+
td_real = yule_simon_lcdf(d_int_array_1d| d_row_vector);
23+
td_real = yule_simon_lcdf(d_int_array_1d| d_vector);
24+
}
25+
26+
parameters {
27+
real p_real;
28+
vector[d_int] p_vector;
29+
row_vector[d_int] p_row_vector;
30+
array[d_int] real p_real_array_1d;
31+
32+
33+
}
34+
35+
transformed parameters {
36+
real transformed_param_real;
37+
38+
transformed_param_real = yule_simon_lcdf(d_int| d_real);
39+
transformed_param_real = yule_simon_lcdf(d_int| d_real_array_1d);
40+
transformed_param_real = yule_simon_lcdf(d_int| d_row_vector);
41+
transformed_param_real = yule_simon_lcdf(d_int| d_vector);
42+
transformed_param_real = yule_simon_lcdf(d_int| p_real);
43+
transformed_param_real = yule_simon_lcdf(d_int| p_real_array_1d);
44+
transformed_param_real = yule_simon_lcdf(d_int| p_row_vector);
45+
transformed_param_real = yule_simon_lcdf(d_int| p_vector);
46+
transformed_param_real = yule_simon_lcdf(d_int_array_1d| d_real);
47+
transformed_param_real = yule_simon_lcdf(d_int_array_1d| d_real_array_1d);
48+
transformed_param_real = yule_simon_lcdf(d_int_array_1d| d_row_vector);
49+
transformed_param_real = yule_simon_lcdf(d_int_array_1d| d_vector);
50+
transformed_param_real = yule_simon_lcdf(d_int_array_1d| p_real);
51+
transformed_param_real = yule_simon_lcdf(d_int_array_1d| p_real_array_1d);
52+
transformed_param_real = yule_simon_lcdf(d_int_array_1d| p_row_vector);
53+
transformed_param_real = yule_simon_lcdf(d_int_array_1d| p_vector);
54+
}
55+
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
data {
2+
int d_int;
3+
real d_real;
4+
vector[d_int] d_vector;
5+
row_vector[d_int] d_row_vector;
6+
array[d_int] int d_int_array_1d;
7+
array[d_int] real d_real_array_1d;
8+
9+
10+
}
11+
12+
transformed data {
13+
real td_real;
14+
15+
16+
td_real = yule_simon_lpmf(d_int| d_real);
17+
td_real = yule_simon_lpmf(d_int| d_real_array_1d);
18+
td_real = yule_simon_lpmf(d_int| d_row_vector);
19+
td_real = yule_simon_lpmf(d_int| d_vector);
20+
td_real = yule_simon_lpmf(d_int_array_1d| d_real);
21+
td_real = yule_simon_lpmf(d_int_array_1d| d_real_array_1d);
22+
td_real = yule_simon_lpmf(d_int_array_1d| d_row_vector);
23+
td_real = yule_simon_lpmf(d_int_array_1d| d_vector);
24+
}
25+
26+
parameters {
27+
real p_real;
28+
vector[d_int] p_vector;
29+
row_vector[d_int] p_row_vector;
30+
array[d_int] real p_real_array_1d;
31+
32+
33+
}
34+
35+
transformed parameters {
36+
real transformed_param_real;
37+
38+
transformed_param_real = yule_simon_lpmf(d_int| d_real);
39+
transformed_param_real = yule_simon_lpmf(d_int| d_real_array_1d);
40+
transformed_param_real = yule_simon_lpmf(d_int| d_row_vector);
41+
transformed_param_real = yule_simon_lpmf(d_int| d_vector);
42+
transformed_param_real = yule_simon_lpmf(d_int| p_real);
43+
transformed_param_real = yule_simon_lpmf(d_int| p_real_array_1d);
44+
transformed_param_real = yule_simon_lpmf(d_int| p_row_vector);
45+
transformed_param_real = yule_simon_lpmf(d_int| p_vector);
46+
transformed_param_real = yule_simon_lpmf(d_int_array_1d| d_real);
47+
transformed_param_real = yule_simon_lpmf(d_int_array_1d| d_real_array_1d);
48+
transformed_param_real = yule_simon_lpmf(d_int_array_1d| d_row_vector);
49+
transformed_param_real = yule_simon_lpmf(d_int_array_1d| d_vector);
50+
transformed_param_real = yule_simon_lpmf(d_int_array_1d| p_real);
51+
transformed_param_real = yule_simon_lpmf(d_int_array_1d| p_real_array_1d);
52+
transformed_param_real = yule_simon_lpmf(d_int_array_1d| p_row_vector);
53+
transformed_param_real = yule_simon_lpmf(d_int_array_1d| p_vector);
54+
}
55+
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
data {
2+
int d_int;
3+
real d_real;
4+
vector[d_int] d_vector;
5+
row_vector[d_int] d_row_vector;
6+
array[d_int] int d_int_array_1d;
7+
array[d_int] real d_real_array_1d;
8+
9+
10+
}
11+
12+
transformed data {
13+
int td_int;
14+
array[d_int] int td_int_array_1d;
15+
16+
td_int = yule_simon_rng(d_int);
17+
td_int = yule_simon_rng(d_real);
18+
td_int_array_1d = yule_simon_rng(d_int_array_1d);
19+
td_int_array_1d = yule_simon_rng(d_real_array_1d);
20+
td_int_array_1d = yule_simon_rng(d_row_vector);
21+
td_int_array_1d = yule_simon_rng(d_vector);
22+
}
23+
24+
parameters {
25+
real p_real;
26+
vector[d_int] p_vector;
27+
row_vector[d_int] p_row_vector;
28+
array[d_int] real p_real_array_1d;
29+
30+
31+
}
32+
33+
generated quantities {
34+
int gq_int;
35+
array[d_int] int gq_int_array_1d;
36+
37+
gq_int = yule_simon_rng(d_int);
38+
gq_int = yule_simon_rng(d_real);
39+
gq_int = yule_simon_rng(p_real);
40+
gq_int_array_1d = yule_simon_rng(d_int_array_1d);
41+
gq_int_array_1d = yule_simon_rng(d_real_array_1d);
42+
gq_int_array_1d = yule_simon_rng(d_row_vector);
43+
gq_int_array_1d = yule_simon_rng(d_vector);
44+
gq_int_array_1d = yule_simon_rng(p_real_array_1d);
45+
gq_int_array_1d = yule_simon_rng(p_row_vector);
46+
gq_int_array_1d = yule_simon_rng(p_vector);
47+
}
48+

test/integration/signatures/stan_math_distributions.t

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,4 @@ Display all Stan math distributions exposed in the language
7272
wiener: lpdf
7373
wishart: lpdf
7474
wishart_cholesky: lpdf
75+
yule_simon: lpmf, rng, ccdf, cdf

test/integration/signatures/stan_math_signatures.t

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23941,6 +23941,44 @@ Display all Stan math signatures exposed in the language
2394123941
wishart_cholesky_rng(real, matrix) => matrix
2394223942
wishart_lpdf(matrix, real, matrix) => real
2394323943
wishart_rng(real, matrix) => matrix
23944+
yule_simon_cdf(int, real) => real
23945+
yule_simon_cdf(int, vector) => real
23946+
yule_simon_cdf(int, row_vector) => real
23947+
yule_simon_cdf(int, array[] real) => real
23948+
yule_simon_cdf(array[] int, real) => real
23949+
yule_simon_cdf(array[] int, vector) => real
23950+
yule_simon_cdf(array[] int, row_vector) => real
23951+
yule_simon_cdf(array[] int, array[] real) => real
23952+
yule_simon_lccdf(int, real) => real
23953+
yule_simon_lccdf(int, vector) => real
23954+
yule_simon_lccdf(int, row_vector) => real
23955+
yule_simon_lccdf(int, array[] real) => real
23956+
yule_simon_lccdf(array[] int, real) => real
23957+
yule_simon_lccdf(array[] int, vector) => real
23958+
yule_simon_lccdf(array[] int, row_vector) => real
23959+
yule_simon_lccdf(array[] int, array[] real) => real
23960+
yule_simon_lcdf(int, real) => real
23961+
yule_simon_lcdf(int, vector) => real
23962+
yule_simon_lcdf(int, row_vector) => real
23963+
yule_simon_lcdf(int, array[] real) => real
23964+
yule_simon_lcdf(array[] int, real) => real
23965+
yule_simon_lcdf(array[] int, vector) => real
23966+
yule_simon_lcdf(array[] int, row_vector) => real
23967+
yule_simon_lcdf(array[] int, array[] real) => real
23968+
yule_simon_lpmf(int, real) => real
23969+
yule_simon_lpmf(int, vector) => real
23970+
yule_simon_lpmf(int, row_vector) => real
23971+
yule_simon_lpmf(int, array[] real) => real
23972+
yule_simon_lpmf(array[] int, real) => real
23973+
yule_simon_lpmf(array[] int, vector) => real
23974+
yule_simon_lpmf(array[] int, row_vector) => real
23975+
yule_simon_lpmf(array[] int, array[] real) => real
23976+
yule_simon_rng(int) => int
23977+
yule_simon_rng(real) => int
23978+
yule_simon_rng(vector) => array[] int
23979+
yule_simon_rng(row_vector) => array[] int
23980+
yule_simon_rng(array[] int) => array[] int
23981+
yule_simon_rng(array[] real) => array[] int
2394423982
zeros_array(int) => array[] real
2394523983
zeros_int_array(int) => array[] int
2394623984
zeros_row_vector(int) => row_vector

0 commit comments

Comments
 (0)