13 vector_types.push_back(expr_type(
DOUBLE_T,1U));
18 int_vector_types.push_back(
INT_T);
19 int_vector_types.push_back(expr_type(
INT_T,1U));
22 primitive_types.push_back(
INT_T);
43 for (
size_t i = 0; i < int_vector_types.size(); ++i)
44 for (
size_t j = 0; j < vector_types.size(); ++j)
45 add(
"bernoulli_log",
DOUBLE_T,int_vector_types[i],vector_types[j]);
46 for (
size_t i = 0; i < int_vector_types.size(); ++i)
47 for (
size_t j = 0; j < vector_types.size(); ++j)
48 add(
"bernoulli_cdf",
DOUBLE_T,int_vector_types[i],vector_types[j]);
50 for (
size_t i = 0; i < int_vector_types.size(); ++i)
51 for (
size_t j = 0; j < vector_types.size(); ++j)
52 add(
"bernoulli_logit_log",
DOUBLE_T,int_vector_types[i],vector_types[j]);
53 for (
size_t i = 0; i < int_vector_types.size(); i++)
54 for (
size_t j = 0; j < int_vector_types.size(); j++)
55 for (
size_t k = 0; k < vector_types.size(); k++)
56 for (
size_t l = 0; l < vector_types.size(); l++)
58 int_vector_types[i],int_vector_types[j],vector_types[k],vector_types[l]);
60 for (
size_t i = 0; i < int_vector_types.size(); i++)
61 for (
size_t j = 0; j < int_vector_types.size(); j++)
62 for (
size_t k = 0; k < vector_types.size(); k++)
63 for (
size_t l = 0; l < vector_types.size(); l++)
65 int_vector_types[i],int_vector_types[j],vector_types[k],vector_types[l]);
66 for (
size_t i = 0; i < vector_types.size(); ++i)
67 for (
size_t j = 0; j < vector_types.size(); ++j)
68 for (
size_t k = 0; k < vector_types.size(); ++k)
71 vector_types[i], vector_types[j], vector_types[k]);
72 for (
size_t i = 0; i < vector_types.size(); ++i)
73 for (
size_t j = 0; j < vector_types.size(); ++j)
74 for (
size_t k = 0; k < vector_types.size(); ++k)
77 vector_types[i], vector_types[j], vector_types[k]);
81 for (
size_t i = 0; i < int_vector_types.size(); ++i)
82 for (
size_t j = 0; j < int_vector_types.size(); ++j)
83 for (
size_t k = 0; k < vector_types.size(); ++k)
84 add(
"binomial_log",
DOUBLE_T,int_vector_types[i],int_vector_types[j],vector_types[k]);
86 for (
size_t i = 0; i < int_vector_types.size(); ++i)
87 for (
size_t j = 0; j < int_vector_types.size(); ++j)
88 for (
size_t k = 0; k < vector_types.size(); ++k)
89 add(
"binomial_cdf",
DOUBLE_T,int_vector_types[i],int_vector_types[j],vector_types[k]);
90 for (
size_t i = 0; i < int_vector_types.size(); ++i)
91 for (
size_t j = 0; j < int_vector_types.size(); ++j)
92 for (
size_t k = 0; k < vector_types.size(); ++k)
93 add(
"binomial_logit_log",
DOUBLE_T,int_vector_types[i],int_vector_types[j],vector_types[k]);
96 for (
size_t i = 0; i < vector_types.size(); ++i)
97 for (
size_t j = 0; j < vector_types.size(); ++j)
98 for (
size_t k = 0; k < vector_types.size(); ++k)
101 vector_types[i], vector_types[j], vector_types[k]);
103 for (
size_t i = 0; i < vector_types.size(); ++i)
104 for (
size_t j = 0; j < vector_types.size(); ++j)
105 for (
size_t k = 0; k < vector_types.size(); ++k)
108 vector_types[i], vector_types[j], vector_types[k]);
112 for (
size_t i = 0; i < vector_types.size(); ++i)
113 for (
size_t j = 0; j < vector_types.size(); ++j)
114 add(
"chi_square_log",
116 vector_types[i], vector_types[j]);
154 for (
size_t i = 0; i < vector_types.size(); ++i)
155 for (
size_t j = 0; j < vector_types.size(); ++j)
156 for (
size_t k = 0; k < vector_types.size(); ++k)
157 add(
"double_exponential_log",
159 vector_types[i], vector_types[j], vector_types[k]);
176 add_nullary(
"epsilon");
185 for (
size_t i = 0; i < vector_types.size(); ++i)
186 for (
size_t j = 0; j < vector_types.size(); ++j)
187 add(
"exponential_log",
189 vector_types[i], vector_types[j]);
192 for (
size_t i = 0; i < vector_types.size(); ++i) {
193 for (
size_t j = 0; j < vector_types.size(); ++j) {
194 for (
size_t k = 0; k < vector_types.size(); ++k) {
195 for (
size_t l = 0; l < vector_types.size(); ++l) {
196 add(
"exp_mod_normal_log",
198 vector_types[i], vector_types[j], vector_types[k], vector_types[l]);
199 add(
"exp_mod_normal_cdf",
201 vector_types[i], vector_types[j], vector_types[k], vector_types[l]);
206 add_ternary(
"exp_mod_normal_rng");
214 for (
size_t i = 0; i < vector_types.size(); ++i)
215 for (
size_t j = 0; j < vector_types.size(); ++j)
216 for (
size_t k = 0; k < vector_types.size(); ++k)
219 vector_types[i], vector_types[j], vector_types[k]);
222 for (
size_t i = 0; i < vector_types.size(); ++i) {
223 for (
size_t j = 0; j < vector_types.size(); ++j) {
224 for (
size_t k = 0; k < vector_types.size(); ++k) {
227 vector_types[i], vector_types[j], vector_types[k]);
230 vector_types[i], vector_types[j], vector_types[k]);
241 for (
size_t i = 0; i < vector_types.size(); ++i)
242 for (
size_t j = 0; j < vector_types.size(); ++j)
243 add(
"inv_chi_square_log",
245 vector_types[i], vector_types[j]);
246 for (
size_t i = 0; i < vector_types.size(); ++i)
247 for (
size_t j = 0; j < vector_types.size(); ++j)
248 add(
"inv_chi_square_cdf",
250 vector_types[i], vector_types[j]);
253 for (
size_t i = 0; i < vector_types.size(); ++i)
254 for (
size_t j = 0; j < vector_types.size(); ++j)
255 for (
size_t k = 0; k < vector_types.size(); ++k)
258 vector_types[i], vector_types[j], vector_types[k]);
259 for (
size_t i = 0; i < vector_types.size(); ++i)
260 for (
size_t j = 0; j < vector_types.size(); ++j)
261 for (
size_t k = 0; k < vector_types.size(); ++k)
264 vector_types[i], vector_types[j], vector_types[k]);
278 for (
size_t i = 0; i < primitive_types.size(); ++i) {
279 add(
"logical_negation",
INT_T,primitive_types[i]);
280 for (
size_t j = 0; j < primitive_types.size(); ++j) {
281 add(
"logical_or",
INT_T,primitive_types[i], primitive_types[j]);
282 add(
"logical_and",
INT_T,primitive_types[i], primitive_types[j]);
283 add(
"logical_eq",
INT_T,primitive_types[i], primitive_types[j]);
284 add(
"logical_neq",
INT_T,primitive_types[i], primitive_types[j]);
285 add(
"logical_lt",
INT_T,primitive_types[i], primitive_types[j]);
286 add(
"logical_lte",
INT_T,primitive_types[i], primitive_types[j]);
287 add(
"logical_gt",
INT_T,primitive_types[i], primitive_types[j]);
288 add(
"logical_gte",
INT_T,primitive_types[i], primitive_types[j]);
298 add_nullary(
"log10");
307 for (
size_t i = 0; i < vector_types.size(); ++i)
308 for (
size_t j = 0; j < vector_types.size(); ++j)
309 for (
size_t k = 0; k < vector_types.size(); ++k)
312 vector_types[i], vector_types[j], vector_types[k]);
313 for (
size_t i = 0; i < vector_types.size(); ++i)
314 for (
size_t j = 0; j < vector_types.size(); ++j)
315 for (
size_t k = 0; k < vector_types.size(); ++k)
318 vector_types[i], vector_types[j], vector_types[k]);
321 add_ternary(
"lognormal_cdf");
322 for (
size_t i = 0; i < vector_types.size(); ++i)
323 for (
size_t j = 0; j < vector_types.size(); ++j)
324 for (
size_t k = 0; k < vector_types.size(); ++k)
327 vector_types[i], vector_types[j], vector_types[k]);
382 for (
size_t i = 0; i < int_vector_types.size(); ++i)
383 for (
size_t j = 0; j < vector_types.size(); ++j)
384 for (
size_t k = 0; k < vector_types.size(); ++k)
385 add(
"neg_binomial_log",
DOUBLE_T,int_vector_types[i],vector_types[j],vector_types[k]);
387 for (
size_t i = 0; i < int_vector_types.size(); ++i)
388 for (
size_t j = 0; j < vector_types.size(); ++j)
389 for (
size_t k = 0; k < vector_types.size(); ++k)
390 add(
"neg_binomial_cdf",
DOUBLE_T,int_vector_types[i],vector_types[j],vector_types[k]);
391 add_nullary(
"negative_epsilon");
392 add_nullary(
"negative_infinity");
394 add_ternary(
"normal_cdf");
395 for (
size_t i = 0; i < vector_types.size(); ++i)
396 for (
size_t j = 0; j < vector_types.size(); ++j)
397 for (
size_t k = 0; k < vector_types.size(); ++k)
400 vector_types[i], vector_types[j], vector_types[k]);
401 add_nullary(
"not_a_number");
405 for (
size_t i = 0; i < vector_types.size(); ++i)
406 for (
size_t j = 0; j < vector_types.size(); ++j)
407 for (
size_t k = 0; k < vector_types.size(); ++k)
410 vector_types[i], vector_types[j], vector_types[k]);
411 for (
size_t i = 0; i < vector_types.size(); ++i)
412 for (
size_t j = 0; j < vector_types.size(); ++j)
413 for (
size_t k = 0; k < vector_types.size(); ++k)
416 vector_types[i], vector_types[j], vector_types[k]);
421 for (
size_t i = 0; i < int_vector_types.size(); ++i)
422 for (
size_t j = 0; j < vector_types.size(); ++j)
423 add(
"poisson_log",
DOUBLE_T, int_vector_types[i],vector_types[j]);
425 for (
size_t i = 0; i < int_vector_types.size(); ++i)
426 for (
size_t j = 0; j < vector_types.size(); ++j)
427 add(
"poisson_cdf",
DOUBLE_T, int_vector_types[i],vector_types[j]);
428 for (
size_t i = 0; i < int_vector_types.size(); ++i)
429 for (
size_t j = 0; j < vector_types.size(); ++j)
430 add(
"poisson_log_log",
DOUBLE_T, int_vector_types[i],vector_types[j]);
431 add_nullary(
"positive_infinity");
438 for (
size_t i = 0; i <
base_types.size(); ++i) {
442 for (
size_t j = 1; j <= 3; ++j) {
458 for (
size_t i = 0; i < vector_types.size(); ++i)
459 for (
size_t j = 0; j < vector_types.size(); ++j)
460 for (
size_t k = 0; k < vector_types.size(); ++k)
461 add(
"scaled_inv_chi_square_log",
463 vector_types[i], vector_types[j], vector_types[k]);
464 for (
size_t i = 0; i < vector_types.size(); ++i)
465 for (
size_t j = 0; j < vector_types.size(); ++j)
466 for (
size_t k = 0; k < vector_types.size(); ++k)
467 add(
"scaled_inv_chi_square_cdf",
469 vector_types[i], vector_types[j], vector_types[k]);
478 for (
size_t i = 0; i < vector_types.size(); ++i) {
479 for (
size_t j = 0; j < vector_types.size(); ++j) {
480 for (
size_t k = 0; k < vector_types.size(); ++k) {
481 for (
size_t l = 0; l < vector_types.size(); ++l) {
482 add(
"skew_normal_log",
484 vector_types[i], vector_types[j], vector_types[k], vector_types[l]);
485 add(
"skew_normal_cdf",
487 vector_types[i], vector_types[j], vector_types[k], vector_types[l]);
492 add_ternary(
"skew_normal_rng");
495 add_nullary(
"sqrt2");
498 for (
size_t i = 0; i < vector_types.size(); ++i) {
499 for (
size_t j = 0; j < vector_types.size(); ++j) {
500 for (
size_t k = 0; k < vector_types.size(); ++k) {
501 for (
size_t l = 0; l < vector_types.size(); ++l) {
504 vector_types[i], vector_types[j], vector_types[k], vector_types[l]);
507 vector_types[i], vector_types[j], vector_types[k], vector_types[l]);
512 add_ternary(
"student_t_rng");
535 for (
size_t i = 0; i < vector_types.size(); ++i)
536 for (
size_t j = 0; j < vector_types.size(); ++j)
537 for (
size_t k = 0; k < vector_types.size(); ++k)
540 vector_types[i], vector_types[j], vector_types[k]);
546 for (
size_t i = 0; i < vector_types.size(); ++i)
547 for (
size_t j = 0; j < vector_types.size(); ++j)
548 for (
size_t k = 0; k < vector_types.size(); ++k)
551 vector_types[i], vector_types[j], vector_types[k]);
552 add_ternary(
"weibull_cdf");
558 for (
size_t i = 0; i < 8; ++i) {
566 for (
size_t i = 1; i < 8; ++i) {