diff --git a/src/middle/Stan_math_signatures.ml b/src/middle/Stan_math_signatures.ml index 290a005712..e8cba5d7cf 100644 --- a/src/middle/Stan_math_signatures.ml +++ b/src/middle/Stan_math_signatures.ml @@ -1706,6 +1706,7 @@ let () = add_unqualified ("sum", ReturnType UReal, [UMatrix]) ; add_unqualified ("svd_U", ReturnType UMatrix, [UMatrix]) ; add_unqualified ("svd_V", ReturnType UMatrix, [UMatrix]) ; + add_unqualified ("symmetrize_from_lower_tri", ReturnType UMatrix, [UMatrix]) ; add_unqualified ("tail", ReturnType URowVector, [URowVector; UInt]) ; add_unqualified ("tail", ReturnType UVector, [UVector; UInt]) ; List.iter diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 33d68199b1..a08fd4dd12 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -20209,7 +20209,8 @@ using stan::model::nil_index_list; using namespace stan::math; using stan::math::pow; -static int current_statement__ = 0; +stan::math::profile_map profiles__; +static int current_statement__= 0; static const std::vector locations_array__ = {" (found before start of program)", " (in 'param-constraint.stan', line 7, column 2 to column 38)", " (in 'param-constraint.stan', line 8, column 2 to column 38)", @@ -20713,6 +20714,10 @@ stan::model::model_base& new_model( return *m; } +stan::math::profile_map& get_stan_profile_data() { + return param_constraint_model_namespace::profiles__; +} + #endif diff --git a/test/integration/good/function-signatures/math/matrix/pretty.expected b/test/integration/good/function-signatures/math/matrix/pretty.expected index 70527f47fc..7b9ebf06a2 100644 --- a/test/integration/good/function-signatures/math/matrix/pretty.expected +++ b/test/integration/good/function-signatures/math/matrix/pretty.expected @@ -19465,6 +19465,28 @@ transformed parameters { transformed_param_matrix = svd_V(d_matrix); transformed_param_matrix = svd_V(p_matrix); } +model { + y_p ~ normal(0, 1); +} + + $ ../../../../../../../install/default/bin/stanc --auto-format symmetrize_from_lower_tri.stan +data { + int d_int; + matrix[d_int, d_int] d_matrix; +} +transformed data { + matrix[d_int, d_int] transformed_data_matrix; + transformed_data_matrix = symmetrize_from_lower_tri(d_matrix); +} +parameters { + real y_p; + matrix[d_int, d_int] p_matrix; +} +transformed parameters { + matrix[d_int, d_int] transformed_param_matrix; + transformed_param_matrix = symmetrize_from_lower_tri(d_matrix); + transformed_param_matrix = symmetrize_from_lower_tri(p_matrix); +} model { y_p ~ normal(0, 1); } diff --git a/test/integration/good/function-signatures/math/matrix/symmetrize_from_lower_tri.stan b/test/integration/good/function-signatures/math/matrix/symmetrize_from_lower_tri.stan new file mode 100644 index 0000000000..c222b6888b --- /dev/null +++ b/test/integration/good/function-signatures/math/matrix/symmetrize_from_lower_tri.stan @@ -0,0 +1,23 @@ +data { + int d_int; + matrix[d_int,d_int] d_matrix; +} + +transformed data { + matrix[d_int,d_int] transformed_data_matrix; + + transformed_data_matrix = symmetrize_from_lower_tri(d_matrix); +} +parameters { + real y_p; + matrix[d_int,d_int] p_matrix; +} +transformed parameters { + matrix[d_int,d_int] transformed_param_matrix; + + transformed_param_matrix = symmetrize_from_lower_tri(d_matrix); + transformed_param_matrix = symmetrize_from_lower_tri(p_matrix); +} +model { + y_p ~ normal(0,1); +} diff --git a/test/integration/signatures/stan_math_sigs.expected b/test/integration/signatures/stan_math_sigs.expected index ee8c2e23ad..ed1e605edc 100644 --- a/test/integration/signatures/stan_math_sigs.expected +++ b/test/integration/signatures/stan_math_sigs.expected @@ -23503,6 +23503,7 @@ real sum(matrix) real sum(real[]) matrix svd_U(matrix) matrix svd_V(matrix) +matrix symmetrize_from_lower_tri(matrix) vector tail(vector, int) row_vector tail(row_vector, int) int[] tail(int[], int)