stanc(file, model_code = '', model_name = "anon_model", verbose = FALSE, obfuscate_model_name = TRUE) stanc_builder(file, isystem = dirname(file), verbose = FALSE, obfuscate_model_name = FALSE)
file
is not specified,
so it defaults to the empty string."anon_model"
. However, the model name will be derived
from file
or model_code
(if model_code
is the name of a
character string object) if model_name
is not specified.FALSE
. If TRUE
more intermediate information is printed during the translation procedure.TRUE
,
indicating whether to use a randomly-generated character string for the
name of the C++ class. This prevents name clashes when compiling multiple
models in the same R session.file
that are to be included within the Stan program
named by file
. See the Details section below.model_name
Character string for the model name.
model_code
Character string for the model's Stan specification.
cppcode
Character string for the model's C++ code.
status
Logical indicating success/failure (TRUE/FALSE
) of
translating the Stan code.
stanc_builder
function supports the standard C++ convention of
specifying something like #include "my_includes.txt"
on an entire line
within the file named by the file
argument. In other words,
stanc_builder
would look for "my_includes.txt"
in (or under) the
directory named by the isystem
argument and insert its contents verbatim
at that position before calling stanc
on the resulting model_code
.
This mechanism reduces the need to copy common chunks of code across Stan
programs.
Note that line numbers referred to in parser warnings or errors refer to the
postprocessed Stan program rather than file
. In the case of a parser
error, the postprocessed Stan program will be printed after the error message.
Line numbers referred to in messages while Stan is executing also refer to
the postprocessed Stan program which can be obtained by calling
get_stancode
.
The Stan Development Team CmdStan Interface User's Guide. http://mc-stan.org.
stan_model
and stan
stanmodelcode <- "
data {
int<lower=0> N;
real y[N];
}
parameters {
real mu;
}
model {
mu ~ normal(0, 10);
y ~ normal(mu, 1);
}
"
r <- stanc(model_code = stanmodelcode, model_name = "normal1")
str(r)
Run the code above in your browser using DataLab