forked from stan-dev/math
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Description
As requested by @rok-cesnovar I prepared a list of all functions in Stan Math and proposed how to implement them in OpenCL. Most are probably possible using kernel generator.
Legend:
kg | Possible with kernel generator. Might require adding new operations. |
no | OpenCL implementation makes no sense. |
? | I am not sure after quickly looking trough code. |
List
Phi | kg |
Phi_approx | kg |
abs | kg |
algebra_solver | ? |
append_array | kg |
append_col | kg |
append_row | kg |
atan2 | kg |
bernoulli_ccdf_log | kg? |
bernoulli_cdf | kg? |
bernoulli_cdf_log | kg? |
bernoulli_lccdf | kg? |
bernoulli_lcdf | kg? |
bernoulli_log | kg |
bernoulli_logit_glm_lpmf | kg |
bernoulli_logit_log | kg |
bernoulli_logit_lpmf | kg |
bernoulli_logit_rng | kg+some work? |
bernoulli_lpmf | kg |
bernoulli_rng | kg+some work? |
bessel_first_kind | kg? |
bessel_second_kind | kg? |
beta_binomial_ccdf_log | ? |
beta_binomial_cdf | ? |
beta_binomial_cdf_log | ? |
beta_binomial_lccdf | ? |
beta_binomial_lcdf | ? |
beta_binomial_log | ? |
beta_binomial_lpmf | ? |
beta_binomial_rng | kg+some work? |
beta_ccdf_log | ? |
beta_cdf | ? |
beta_cdf_log | ? |
beta_lccdf | ? |
beta_lcdf | ? |
beta_log | ? |
beta_lpdf | kg? |
beta_proportion_ccdf_log | ? |
beta_proportion_cdf_log | kg |
beta_proportion_lccdf | ? |
beta_proportion_lcdf | kg |
beta_proportion_log | kg? |
beta_proportion_lpdf | kg? |
beta_proportion_rng | kg+some work? |
beta_rng | kg+some work? |
binary_log_loss | kg |
binomial_ccdf_log | kg? |
binomial_cdf | kg? |
binomial_cdf_log | kg? |
binomial_coefficient_log | kg |
binomial_lccdf | kg? |
binomial_lcdf | kg? |
binomial_log | kg? |
binomial_logit_log | kg? |
binomial_logit_lpmf | kg? |
binomial_lpmf | kg? |
binomial_rng | kg+some work? |
block | kg |
categorical_log | kg |
categorical_logit_glm_lpmf | kg |
categorical_logit_log | kg |
categorical_logit_lpmf | kg |
categorical_logit_rng | kg+some work? |
categorical_lpmf | kg |
categorical_rng | kg+some work? |
cauchy_ccdf_log | kg? |
cauchy_cdf | kg? |
cauchy_cdf_log | kg? |
cauchy_lccdf | kg? |
cauchy_lcdf | kg? |
cauchy_log | kg? |
cauchy_lpdf | kg? |
cauchy_rng | kg+some work? |
chi_square_ccdf_log | kg? |
chi_square_cdf | kg? |
chi_square_cdf_log | kg? |
chi_square_lccdf | kg? |
chi_square_lcdf | kg? |
chi_square_log | kg? |
chi_square_lpdf | kg? |
chi_square_rng | kg+some work? |
choose | kg? |
col | kg |
cols | no |
columns_dot_product | kg |
columns_dot_self | kg |
cov_exp_quad | kg |
crossprod | can |
csr_extract_u | ? |
csr_extract_v | ? |
csr_extract_w | ? |
csr_matrix_times_vector | ? |
csr_to_dense_matrix | ? |
cumulative_sum | separate kernel |
determinant | separate kernel |
diag_matrix | kg |
diag_post_multiply | kg |
diag_pre_multiply | kg |
diagonal | kg |
digamma | kg |
dims | no |
dirichlet_log | kg |
dirichlet_lpdf | kg |
dirichlet_rng | kg+some work? |
distance | kg |
divide | kg |
dot_product | kg |
dot_self | kg |
double_exponential_ccdf_log | kg? |
double_exponential_cdf | kg? |
double_exponential_cdf_log | kg? |
double_exponential_lccdf | kg? |
double_exponential_lcdf | kg? |
double_exponential_log | kg? |
double_exponential_lpdf | kg? |
double_exponential_rng | kg+some work? |
e | can't find |
eigenvalues_sym | separate kernel |
eigenvectors_sym | separate kernel |
exp_mod_normal_ccdf_log | kg? |
exp_mod_normal_cdf | kg? |
exp_mod_normal_cdf_log | kg? |
exp_mod_normal_lccdf | kg? |
exp_mod_normal_lcdf | kg? |
exp_mod_normal_log | kg? |
exp_mod_normal_lpdf | kg? |
exp_mod_normal_rng | kg+some work? |
exponential_ccdf_log | kg? |
exponential_cdf | kg? |
exponential_cdf_log | kg? |
exponential_lccdf | kg? |
exponential_lcdf | kg? |
exponential_log | kg? |
exponential_lpdf | kg? |
exponential_rng | kg+some work? |
fabs | kg |
falling_factorial | kg? |
fdim | kg |
fma | kg |
fmax | kg |
fmin | kg |
fmod | kg? |
frechet_ccdf_log | kg? |
frechet_cdf | kg? |
frechet_cdf_log | kg? |
frechet_lccdf | kg? |
frechet_lcdf | kg? |
frechet_log | kg? |
frechet_lpdf | kg? |
frechet_rng | kg+some work? |
gamma_ccdf_log | kg? |
gamma_cdf | kg? |
gamma_cdf_log | kg? |
gamma_lccdf | kg? |
gamma_lcdf | kg? |
gamma_log | kg? |
gamma_lpdf | kg? |
gamma_p | kg |
gamma_q | kg |
gamma_rng | kg+some work? |
gaussian_dlm_obs_log | separate kernel? |
gaussian_dlm_obs_lpdf | separate kernel? |
gumbel_ccdf_log | kg? |
gumbel_cdf | kg? |
gumbel_cdf_log | kg? |
gumbel_lccdf | kg? |
gumbel_lcdf | kg? |
gumbel_log | kg? |
gumbel_lpdf | kg? |
gumbel_rng | kg+some work? |
head | kg |
hypergeometric_log | kg? |
hypergeometric_lpmf | kg? |
hypergeometric_rng | kg+some work? |
hypot | kg |
if_else | kg |
inc_beta | kg |
int_step | kg |
integrate_1d | separate kernel? |
integrate_ode | separate kernel? |
integrate_ode_adams | separate kernel? |
integrate_ode_bdf | separate kernel? |
integrate_ode_rk45 | separate kernel? |
inv | kg |
inv_Phi | kg |
inv_chi_square_ccdf_log | kg? |
inv_chi_square_cdf | kg? |
inv_chi_square_cdf_log | kg? |
inv_chi_square_lccdf | kg? |
inv_chi_square_lcdf | kg? |
inv_chi_square_log | kg? |
inv_chi_square_lpdf | kg? |
inv_chi_square_rng | kg+some work? |
inv_cloglog | kg |
inv_gamma_ccdf_log | kg? |
inv_gamma_cdf | kg? |
inv_gamma_cdf_log | kg? |
inv_gamma_lccdf | kg? |
inv_gamma_lcdf | kg? |
inv_gamma_log | kg? |
inv_gamma_lpdf | kg? |
inv_gamma_rng | kg+some work? |
inv_logit | kg |
inv_sqrt | kg |
inv_square | kg |
inv_wishart_log | kg? |
inv_wishart_lpdf | kg? |
inv_wishart_rng | kg+some work? |
inverse | separate kernel |
inverse_spd | separate kernel |
is_inf | kg |
is_nan | kg |
lbeta | kg |
lchoose | can't find |
lkj_corr_cholesky_log | kg? |
lkj_corr_cholesky_lpdf | kg? |
lkj_corr_cholesky_rng | kg+some work? |
lkj_corr_log | kg? |
lkj_corr_lpdf | kg? |
lkj_corr_rng | kg+some work? |
lkj_cov_log | kg? |
lmgamma | kg |
lmultiply | can't find |
log1m | kg |
log1m_exp | kg |
log1m_inv_logit | kg |
log1p_exp | kg |
log_determinant | separate kernel? |
log_diff_exp | kg |
log_falling_factorial | kg |
log_inv_logit | kg |
log_mix | kg |
log_rising_factorial | kg |
log_softmax | kg? |
log_sum_exp | kg |
logical_and | kg |
logical_eq | kg |
logical_gt | kg |
logical_gte | kg |
logical_lt | kg |
logical_lte | kg |
logical_negation | kg |
logical_neq | kg |
logical_or | kg |
logistic_ccdf_log | kg? |
logistic_cdf | kg? |
logistic_cdf_log | kg? |
logistic_lccdf | kg? |
logistic_lcdf | kg? |
logistic_log | kg? |
logistic_lpdf | kg? |
logistic_rng | kg+some work? |
logit | kg |
lognormal_ccdf_log | kg? |
lognormal_cdf | kg? |
lognormal_cdf_log | kg? |
lognormal_lccdf | kg? |
lognormal_lcdf | kg? |
lognormal_log | kg? |
lognormal_lpdf | kg? |
lognormal_rng | kg+some work? |
machine_precision | no |
map_rect | no? |
matrix_exp | separate kernel? |
matrix_exp_multiply | separate kernel? |
max | kg |
mdivide_left | separate kernel |
mdivide_left_spd | separate kernel |
mdivide_right | separate kernel |
mdivide_right_spd | separate kernel |
mean | kg |
min | kg |
minus | kg |
modified_bessel_first_kind | kg? |
modified_bessel_second_kind | kg? |
modulus | kg |
multi_gp_cholesky_log | kg? |
multi_gp_cholesky_lpdf | kg? |
multi_gp_log | ? |
multi_gp_lpdf | ? |
multi_normal_cholesky_log | kg? |
multi_normal_cholesky_lpdf | kg? |
multi_normal_cholesky_rng | kg+some work? |
multi_normal_log | kg? |
multi_normal_lpdf | kg? |
multi_normal_prec_log | kg? |
multi_normal_prec_lpdf | kg? |
multi_normal_rng | kg+some work? |
multi_student_t_log | kg? |
multi_student_t_lpdf | kg? |
multi_student_t_rng | kg+some work? |
multinomial_log | kg? |
multinomial_lpmf | kg? |
multinomial_rng | kg+some work? |
multiply_log | kg |
multiply_lower_tri_self_transpose | existing kernel? |
neg_binomial_2_ccdf_log | kg? |
neg_binomial_2_cdf | kg? |
neg_binomial_2_cdf_log | kg? |
neg_binomial_2_lccdf | kg? |
neg_binomial_2_lcdf | kg? |
neg_binomial_2_log | kg |
neg_binomial_2_log_glm_lpmf | |
neg_binomial_2_log_log | kg |
neg_binomial_2_log_lpmf | kg |
neg_binomial_2_log_rng | kg+some work? |
neg_binomial_2_lpmf | kg |
neg_binomial_2_rng | kg+some work? |
neg_binomial_ccdf_log | kg? |
neg_binomial_cdf | kg? |
neg_binomial_cdf_log | kg? |
neg_binomial_lccdf | kg? |
neg_binomial_lcdf | kg? |
neg_binomial_log | kg |
neg_binomial_lpmf | kg |
neg_binomial_rng | kg+some work? |
negative_infinity | no |
normal_ccdf_log | kg? |
normal_cdf | kg? |
normal_cdf_log | kg? |
normal_id_glm_lpdf | kg |
normal_lccdf | kg? |
normal_lcdf | kg? |
normal_log | kg |
normal_lpdf | kg |
normal_rng | kg+some work? |
not_a_number | no |
num_elements | no |
ordered_logistic_glm_lpmf | kg |
ordered_logistic_log | kg |
ordered_logistic_lpmf | kg |
ordered_logistic_rng | kg+some work? |
ordered_probit_log | kg? |
ordered_probit_lpmf | kg? |
ordered_probit_rng | kg+some work? |
owens_t | kg? |
pareto_ccdf_log | kg? |
pareto_cdf | kg? |
pareto_cdf_log | kg? |
pareto_lccdf | kg? |
pareto_lcdf | kg? |
pareto_log | kg? |
pareto_lpdf | kg? |
pareto_rng | kg+some work? |
pareto_type_2_ccdf_log | kg? |
pareto_type_2_cdf | kg? |
pareto_type_2_cdf_log | kg? |
pareto_type_2_lccdf | kg? |
pareto_type_2_lcdf | kg? |
pareto_type_2_log | kg? |
pareto_type_2_lpdf | kg? |
pareto_type_2_rng | kg+some work? |
pi | no |
plus | can't find |
poisson_ccdf_log | kg? |
poisson_cdf | kg? |
poisson_cdf_log | kg? |
poisson_lccdf | kg? |
poisson_lcdf | kg? |
poisson_log | kg |
poisson_log_glm_lpmf | kg |
poisson_log_log | kg |
poisson_log_lpmf | kg |
poisson_log_rng | kg+some work? |
poisson_lpmf | kg |
poisson_rng | kg+some work? |
positive_infinity | no |
pow | kg |
prod | kg |
qr_Q | separate kernel |
qr_R | separate kernel |
qr_thin_Q | separate kernel |
qr_thin_R | separate kernel |
quad_form | existing separate kernel |
quad_form_diag | separate kernel? |
quad_form_sym | existing separate kernel |
rank | kg |
rayleigh_ccdf_log | kg? |
rayleigh_cdf | kg? |
rayleigh_cdf_log | kg? |
rayleigh_lccdf | kg? |
rayleigh_lcdf | kg? |
rayleigh_log | kg? |
rayleigh_lpdf | kg? |
rayleigh_rng | kg+some work? |
rep_array | kg |
rep_matrix | kg |
rep_row_vector | kg |
rep_vector | kg |
rising_factorial | ? |
row | kg |
rows | no |
rows_dot_product | kg |
rows_dot_self | kg |
scale_matrix_exp_multiply | ? |
scaled_inv_chi_square_ccdf_log | kg? |
scaled_inv_chi_square_cdf | kg? |
scaled_inv_chi_square_cdf_log | kg? |
scaled_inv_chi_square_lccdf | kg? |
scaled_inv_chi_square_lcdf | kg? |
scaled_inv_chi_square_log | kg? |
scaled_inv_chi_square_lpdf | kg? |
scaled_inv_chi_square_rng | kg+some work? |
sd | kg |
segment | kg |
singular_values | separate kernel |
size | no |
skew_normal_ccdf_log | kg? |
skew_normal_cdf | kg? |
skew_normal_cdf_log | kg? |
skew_normal_lccdf | kg? |
skew_normal_lcdf | kg? |
skew_normal_log | kg? |
skew_normal_lpdf | kg? |
skew_normal_rng | kg+some work? |
softmax | kg |
sort_asc | separate kernel |
sort_desc | separate kernel |
sort_indices_asc | separate kernel |
sort_indices_desc | separate kernel |
sqrt2 | kg |
square | kg |
squared_distance | kg |
std_normal_log | kg |
std_normal_lpdf | kg |
step | kg |
student_t_ccdf_log | kg? |
student_t_cdf | kg? |
student_t_cdf_log | kg? |
student_t_lccdf | kg? |
student_t_lcdf | kg? |
student_t_log | kg? |
student_t_lpdf | kg? |
student_t_rng | kg+some work? |
sub_col | kg |
sub_row | kg |
sum | kg |
tail | kg |
tcrossprod | separate kernel? |
to_array_1d | no |
to_array_2d | no |
to_matrix | no |
to_row_vector | no |
to_vector | no |
trace | kg |
trace_gen_quad_form | existing separate kernel |
trace_quad_form | existing separate kernel |
transpose | kg |
trigamma | kg |
trunc | kg |
uniform_ccdf_log | kg? |
uniform_cdf | kg? |
uniform_cdf_log | kg? |
uniform_lccdf | kg? |
uniform_lcdf | kg? |
uniform_log | kg? |
uniform_lpdf | kg? |
uniform_rng | kg+some work? |
variance | kg |
von_mises_log | kg? |
von_mises_lpdf | kg? |
von_mises_rng | kg+some work? |
weibull_ccdf_log | kg? |
weibull_cdf | kg? |
weibull_cdf_log | kg? |
weibull_lccdf | kg? |
weibull_lcdf | kg? |
weibull_log | kg? |
weibull_lpdf | kg? |
weibull_rng | kg+some work? |
wiener_log | kg? |
wiener_lpdf | kg? |
wishart_log | kg? |
wishart_lpdf | kg? |
wishart_rng | kg+some work? |
Metadata
Metadata
Assignees
Labels
No labels