9#ifndef FIMS_INTERFACE_RCPP_RCPP_OBJECTS_RCPP_DISTRIBUTION_HPP
10#define FIMS_INTERFACE_RCPP_RCPP_OBJECTS_RCPP_DISTRIBUTION_HPP
12#include "../../../distributions/distributions.hpp"
13#include "../../interface.hpp"
33 std::shared_ptr<std::vector<uint32_t>>
key_m;
67 static std::map<uint32_t, std::shared_ptr<DistributionsInterfaceBase>>
82 this->key_m = std::make_shared<std::vector<uint32_t>>();
120 Rcpp::IntegerVector
ids) {
167std::map<uint32_t, std::shared_ptr<DistributionsInterfaceBase>>
206 std::make_shared<DnormDistributionsInterface>(*
this);
248 this->expected_mean[0].initial_value_m =
input_value;
249 this->expected_mean[0].estimation_type_m.
set(
"fixed_effects");
258 Rcpp::IntegerVector
ids) {
260 this->
key_m->resize(ids.size());
276 dnorm.expected_values.resize(this->expected_values.
size());
277 dnorm.log_sd.resize(this->log_sd.
size());
278 dnorm.expected_mean.resize(this->expected_mean.
size());
279 for (
size_t i = 0;
i < this->observed_values.
size();
i++) {
280 dnorm.observed_values[
i] = this->observed_values[
i].initial_value_m;
282 for (
size_t i = 0;
i < this->expected_values.
size();
i++) {
283 dnorm.expected_values[
i] = this->expected_values[
i].initial_value_m;
285 for (
size_t i = 0;
i < this->log_sd.
size();
i++) {
286 dnorm.log_sd[
i] = this->log_sd[
i].initial_value_m;
288 for (
size_t i = 0;
i < this->expected_mean.
size();
i++) {
289 dnorm.expected_mean[
i] = this->expected_mean[
i].initial_value_m;
303 " has been finalized already.");
308 std::shared_ptr<fims_info::Information<double>>
info =
314 it =
info->density_components.find(this->
id_m);
318 " not found in Information.");
321 std::shared_ptr<fims_distributions::NormalLPDF<double>>
dnorm =
322 std::dynamic_pointer_cast<fims_distributions::NormalLPDF<double>>(
331 if (this->log_sd.
size() !=
n_x) {
333 if (this->log_sd.
size() == 1) {
334 auto tmp = this->log_sd[0];
336 for (
size_t i = 0;
i <
n_x; ++
i) {
337 this->log_sd[
i] =
tmp;
342 "log_sd size does not match number of observations and is not "
346 for (
size_t i = 0;
i <
n_x;
i++) {
347 if (this->log_sd[
i].estimation_type_m.
get() ==
"constant") {
348 this->log_sd[
i].final_value_m = this->log_sd[
i].initial_value_m;
350 this->log_sd[
i].final_value_m =
dnorm->log_sd.get_force_scalar(
i);
354 for (
size_t i = 0;
i < this->expected_mean.
size();
i++) {
355 if (this->expected_mean[
i].estimation_type_m.
get() ==
"constant") {
356 this->expected_mean[
i].final_value_m =
357 this->expected_mean[
i].initial_value_m;
359 this->expected_mean[
i].final_value_m =
dnorm->expected_mean[
i];
364 if (this->expected_values.
size() == 1) {
367 if (this->observed_values.
size() == 1) {
371 for (
size_t i = 0;
i < this->lpdf_vec.
size();
i++) {
372 this->lpdf_vec[
i] =
dnorm->lpdf_vec[
i];
373 this->expected_values[
i].final_value_m =
dnorm->get_expected(
i);
374 this->observed_values[
i].final_value_m =
dnorm->get_observed(
i);
387 std::stringstream
ss;
390 ss <<
" \"module_name\": \"density\",\n";
391 ss <<
" \"module_id\": " << this->
id_m <<
",\n";
392 ss <<
" \"module_type\": \"normal\",\n";
395 ss <<
" \"input_type\" : \"" << this->
input_type_m <<
"\",\n";
396 ss <<
" \"density_component\": {\n";
398 ss <<
" \"value\":[";
399 if (this->lpdf_vec.
size() == 0) {
402 for (
size_t i = 0;
i < this->lpdf_vec.
size() - 1;
i++) {
410 ss <<
" \"expected_values\":[";
411 if (this->expected_values.
size() == 0) {
414 for (
size_t i = 0;
i < this->expected_values.
size() - 1;
i++) {
419 this->expected_values[this->expected_values.
size() - 1]
423 ss <<
" \"log_sd_values\":[";
424 if (this->log_sd.
size() == 0) {
432 this->log_sd[this->log_sd.
size() - 1].final_value_m)
435 ss <<
" \"observed_values\":[";
436 if (this->observed_values.
size() == 0) {
439 for (
size_t i = 0;
i < this->observed_values.
size() - 1;
i++) {
440 ss << this->observed_values[
i].final_value_m <<
", ";
442 ss << this->observed_values[this->observed_values.
size() - 1]
452 template <
typename Type>
454 std::shared_ptr<fims_info::Information<Type>>
info =
457 std::shared_ptr<fims_distributions::NormalLPDF<Type>>
distribution =
458 std::make_shared<fims_distributions::NormalLPDF<Type>>();
463 std::stringstream
ss;
465 distribution->key.resize(this->
key_m->size());
466 for (
size_t i = 0;
i < this->
key_m->size();
i++) {
467 distribution->key[
i] = this->
key_m->at(
i);
469 distribution->id = this->
id_m;
470 distribution->observed_values.resize(this->observed_values.
size());
471 for (
size_t i = 0;
i < this->observed_values.
size();
i++) {
473 this->observed_values[
i].initial_value_m;
477 for (
size_t i = 0;
i < this->expected_values.
size();
i++) {
479 this->expected_values[
i].initial_value_m;
482 for (
size_t i = 0;
i < this->log_sd.
size();
i++) {
484 if (this->log_sd[
i].estimation_type_m.
get() ==
"fixed_effects") {
486 ss <<
"dnorm." << this->
id_m <<
".log_sd." << this->log_sd[
i].
id_m;
487 info->RegisterParameterName(
ss.str());
490 if (this->log_sd[
i].estimation_type_m.
get() ==
"random_effects") {
491 FIMS_ERROR_LOG(
"standard deviations cannot be set to random effects");
497 distribution->expected_mean.resize(this->expected_mean.
size());
498 for (
size_t i = 0;
i < this->expected_mean.
size();
i++) {
499 distribution->expected_mean[
i] = this->expected_mean[
i].initial_value_m;
500 if (this->expected_mean[
i].estimation_type_m.
get() ==
"fixed_effects") {
502 ss <<
"dnorm." << this->
id_m <<
".expected_mean."
503 << this->expected_mean[
i].
id_m;
504 info->RegisterParameterName(
ss.str());
507 if (this->expected_mean[
i].estimation_type_m.
get() ==
"random_effects") {
511 info->variable_map[this->expected_mean.
id_m] =
567 std::make_shared<DlnormDistributionsInterface>(*
this);
613 Rcpp::IntegerVector
ids) {
615 this->
key_m->resize(ids.size());
631 dlnorm.expected_values.resize(this->expected_values.
size());
634 for (
size_t i = 0;
i < this->observed_values.
size();
i++) {
635 dlnorm.observed_values[
i] = this->observed_values[
i].initial_value_m;
637 for (
size_t i = 0;
i < this->expected_values.
size();
i++) {
638 dlnorm.expected_values[
i] = this->expected_values[
i].initial_value_m;
640 for (
size_t i = 0;
i < this->log_sd.
size();
i++) {
641 dlnorm.log_sd[
i] = this->log_sd[
i].initial_value_m;
654 " has been finalized already.");
659 std::shared_ptr<fims_info::Information<double>>
info =
665 it =
info->density_components.find(this->
id_m);
669 " not found in Information.");
672 std::shared_ptr<fims_distributions::LogNormalLPDF<double>>
dlnorm =
673 std::dynamic_pointer_cast<fims_distributions::LogNormalLPDF<double>>(
680 if (this->log_sd.
size() !=
n_x) {
682 if (this->log_sd.
size() == 1) {
683 auto tmp = this->log_sd[0];
685 for (
size_t i = 0;
i <
n_x; ++
i) {
686 this->log_sd[
i] =
tmp;
691 "log_sd size does not match number of observations and is not "
696 for (
size_t i = 0;
i <
n_x;
i++) {
697 if (this->log_sd[
i].estimation_type_m.
get() ==
"constant") {
698 this->log_sd[
i].final_value_m = this->log_sd[
i].initial_value_m;
700 this->log_sd[
i].final_value_m =
dlnorm->log_sd.get_force_scalar(
i);
705 if (this->expected_values.
size() == 1) {
708 if (this->observed_values.
size() == 1) {
711 for (
size_t i = 0;
i < this->lpdf_vec.
size();
i++) {
712 this->lpdf_vec[
i] =
dlnorm->lpdf_vec[
i];
713 this->expected_values[
i].final_value_m =
dlnorm->get_expected(
i);
714 this->observed_values[
i].final_value_m =
dlnorm->get_observed(
i);
727 std::stringstream
ss;
730 ss <<
" \"module_name\": \"density\",\n";
731 ss <<
" \"module_id\": " << this->
id_m <<
",\n";
732 ss <<
" \"module_type\": \"log_normal\",\n";
735 ss <<
" \"input_type\" : \"" << this->
input_type_m <<
"\",\n";
736 ss <<
" \"density_component\": {\n";
738 ss <<
" \"value\":[";
739 if (this->lpdf_vec.
size() == 0) {
742 for (
size_t i = 0;
i < this->lpdf_vec.
size() - 1;
i++) {
749 ss <<
" \"expected_values\":[";
750 if (this->expected_values.
size() == 0) {
753 for (
size_t i = 0;
i < this->expected_values.
size() - 1;
i++) {
758 this->expected_values[this->expected_values.
size() - 1]
763 ss <<
" \"log_sd_values\":[";
764 if (this->log_sd.
size() == 0) {
772 this->log_sd[this->log_sd.
size() - 1].final_value_m)
775 ss <<
" \"observed_values\":[";
776 if (this->observed_values.
size() == 0) {
779 for (
size_t i = 0;
i < this->observed_values.
size() - 1;
i++) {
780 ss << this->observed_values[
i].final_value_m <<
", ";
782 ss << this->observed_values[this->observed_values.
size() - 1]
792 template <
typename Type>
794 std::shared_ptr<fims_info::Information<Type>>
info =
797 std::shared_ptr<fims_distributions::LogNormalLPDF<Type>>
distribution =
798 std::make_shared<fims_distributions::LogNormalLPDF<Type>>();
802 std::stringstream
ss;
805 distribution->key.resize(this->
key_m->size());
806 for (
size_t i = 0;
i < this->
key_m->size();
i++) {
807 distribution->key[
i] = this->
key_m->at(
i);
809 distribution->observed_values.resize(this->observed_values.
size());
810 for (
size_t i = 0;
i < this->observed_values.
size();
i++) {
812 this->observed_values[
i].initial_value_m;
816 for (
size_t i = 0;
i < this->expected_values.
size();
i++) {
818 this->expected_values[
i].initial_value_m;
821 for (
size_t i = 0;
i < this->log_sd.
size();
i++) {
823 if (this->log_sd[
i].estimation_type_m.
get() ==
"fixed_effects") {
825 ss <<
"dlnorm." << this->
id_m <<
".log_sd." << this->log_sd[
i].
id_m;
826 info->RegisterParameterName(
ss.str());
829 if (this->log_sd[
i].estimation_type_m.
get() ==
"random_effects") {
830 FIMS_ERROR_LOG(
"standard deviations cannot be set to random effects");
892 std::make_shared<DmultinomDistributionsInterface>(*
this);
938 Rcpp::IntegerVector
ids) {
940 this->
key_m->resize(ids.size());
963 dmultinom.expected_values.resize(this->expected_values.
size());
965 dmultinom.observed_values[
i] = this->observed_values[
i].initial_value_m;
968 dmultinom.expected_values[
i] = this->expected_values[
i].initial_value_m;
980 fims::to_string(this->
id_m) +
981 " has been finalized already.");
986 std::shared_ptr<fims_info::Information<double>>
info =
992 it =
info->density_components.find(this->
id_m);
996 " not found in Information.");
999 std::shared_ptr<fims_distributions::MultinomialLPMF<double>>
dmultinom =
1000 std::dynamic_pointer_cast<
1006 this->lpdf_vec = Rcpp::NumericVector(
n_x);
1007 if (this->expected_values.
size() !=
n_x) {
1010 if (this->observed_values.
size() !=
n_x) {
1013 for (
size_t i = 0;
i < this->lpdf_vec.
size();
i++) {
1015 this->expected_values[
i].final_value_m =
dmultinom->get_expected(
i);
1017 this->observed_values[
i].final_value_m =
dmultinom->get_observed(
i);
1024 for (
size_t i = 0;
i <
dims[0];
i++) {
1025 for (
size_t j = 0;
j <
dims[1];
j++) {
1027 this->observed_values[
idx].final_value_m =
dmultinom->get_observed(
1028 static_cast<size_t>(
i),
static_cast<size_t>(
j));
1043 std::stringstream
ss;
1046 ss <<
" \"module_name\": \"density\",\n";
1047 ss <<
" \"module_id\": " << this->
id_m <<
",\n";
1048 ss <<
" \"module_type\": \"multinomial\",\n";
1051 ss <<
" \"input_type\" : \"" << this->
input_type_m <<
"\",\n";
1052 ss <<
" \"density_component\": {\n";
1053 ss <<
" \"lpdf_value\": " << this->
lpdf_value <<
",\n";
1054 ss <<
" \"value\":[";
1055 if (this->lpdf_vec.
size() == 0) {
1058 for (
size_t i = 0;
i < this->lpdf_vec.
size() - 1;
i++) {
1066 ss <<
" \"expected_values\":[";
1067 if (this->expected_values.
size() == 0) {
1070 for (
size_t i = 0;
i < this->expected_values.
size() - 1;
i++) {
1075 this->expected_values[this->expected_values.
size() - 1]
1081 ss <<
" \"observed_values\":[";
1082 if (this->observed_values.
size() == 0) {
1085 for (
size_t i = 0;
i < this->observed_values.
size() - 1;
i++) {
1086 ss << this->observed_values[
i].final_value_m <<
", ";
1088 ss << this->observed_values[this->observed_values.
size() - 1]
1098 template <
typename Type>
1101 std::shared_ptr<fims_info::Information<Type>>
info =
1104 std::shared_ptr<fims_distributions::MultinomialLPMF<Type>>
distribution =
1105 std::make_shared<fims_distributions::MultinomialLPMF<Type>>();
1110 distribution->key.resize(this->
key_m->size());
1111 for (
size_t i = 0;
i < this->
key_m->size();
i++) {
1112 distribution->key[
i] = this->
key_m->at(
i);
1114 distribution->observed_values.resize(this->observed_values.
size());
1115 for (
size_t i = 0;
i < this->observed_values.
size();
i++) {
1117 this->observed_values[
i].initial_value_m;
1121 for (
size_t i = 0;
i < this->expected_values.
size();
i++) {
1123 this->expected_values[
i].initial_value_m;
Rcpp interface that serves as the parent class for Rcpp distribution interfaces. This type should be ...
Definition rcpp_distribution.hpp:20
virtual bool set_observed_data(int observed_data_id)
Set the unique ID for the observed data object.
Definition rcpp_distribution.hpp:155
double lpdf_value
The log probability density function value.
Definition rcpp_distribution.hpp:77
virtual ~DistributionsInterfaceBase()
The destructor.
Definition rcpp_distribution.hpp:104
virtual double evaluate()=0
A method for each child distribution interface object to inherit so each distribution can have an eva...
std::shared_ptr< std::vector< uint32_t > > key_m
The unique ID for the variable map that points to a fims::Vector.
Definition rcpp_distribution.hpp:33
DistributionsInterfaceBase(const DistributionsInterfaceBase &other)
Construct a new Distributions Interface Base object.
Definition rcpp_distribution.hpp:94
uint32_t id_m
The local ID of the DistributionsInterfaceBase object.
Definition rcpp_distribution.hpp:29
virtual uint32_t get_id()=0
Get the ID for the child distribution interface objects to inherit.
SharedString use_mean_m
Control flag indicating whether to use the expected mean in the distribution calculations.
Definition rcpp_distribution.hpp:61
SharedInt interface_observed_data_id_m
The ID of the observed data object, which is set to -999.
Definition rcpp_distribution.hpp:72
virtual bool set_distribution_mean(double input_value)
Set the expected mean value for the distribution.
Definition rcpp_distribution.hpp:147
virtual bool set_distribution_links(std::string input_type, Rcpp::IntegerVector ids)
Sets pointers for data observations, random effects, or priors.
Definition rcpp_distribution.hpp:119
static uint32_t id_g
The static ID of the DistributionsInterfaceBase object.
Definition rcpp_distribution.hpp:25
static std::map< uint32_t, std::shared_ptr< DistributionsInterfaceBase > > live_objects
The map associating the ID of the DistributionsInterfaceBase to the DistributionsInterfaceBase object...
Definition rcpp_distribution.hpp:68
SharedString input_type_m
The type of density input. The options are prior, re, or data.
Definition rcpp_distribution.hpp:37
DistributionsInterfaceBase()
The constructor.
Definition rcpp_distribution.hpp:81
The Rcpp interface for Dlnorm to instantiate from R: dlnorm_ <- methods::new(DlnormDistribution).
Definition rcpp_distribution.hpp:537
virtual bool set_distribution_links(std::string input_type, Rcpp::IntegerVector ids)
Sets pointers for data observations, random effects, or priors.
Definition rcpp_distribution.hpp:612
DlnormDistributionsInterface(const DlnormDistributionsInterface &other)
Construct a new Dlnorm Distributions Interface object.
Definition rcpp_distribution.hpp:577
DlnormDistributionsInterface()
The constructor.
Definition rcpp_distribution.hpp:565
ParameterVector expected_values
The expected values, which would be the mean of log(x) for this distribution.
Definition rcpp_distribution.hpp:547
virtual std::string to_json()
Converts the data to json representation for the output.
Definition rcpp_distribution.hpp:726
virtual uint32_t get_id()
Gets the ID of the interface base object.
Definition rcpp_distribution.hpp:593
virtual double evaluate()
Evaluate lognormal probability density function (pdf). The natural log of the pdf is returned.
Definition rcpp_distribution.hpp:628
ParameterVector observed_values
Observed data.
Definition rcpp_distribution.hpp:542
ParameterVector log_sd
The uncertainty, which would be the natural logarithm of the standard deviation (sd) of log(x) for th...
Definition rcpp_distribution.hpp:555
virtual bool set_observed_data(int observed_data_id)
Set the unique ID for the observed data object.
Definition rcpp_distribution.hpp:599
virtual void finalize()
Extracts the derived quantities from Information to the Rcpp object.
Definition rcpp_distribution.hpp:650
virtual ~DlnormDistributionsInterface()
The destructor.
Definition rcpp_distribution.hpp:587
RealVector lpdf_vec
Vector that records the individual log probability function for each observation.
Definition rcpp_distribution.hpp:560
The Rcpp interface for Dmultinom to instantiate from R: dmultinom_ <- methods::new(DmultinomDistribut...
Definition rcpp_distribution.hpp:858
virtual bool set_distribution_links(std::string input_type, Rcpp::IntegerVector ids)
Sets pointers for data observations, random effects, or priors.
Definition rcpp_distribution.hpp:937
SharedString notes
TODO: document this.
Definition rcpp_distribution.hpp:885
virtual uint32_t get_id()
Gets the ID of the interface base object.
Definition rcpp_distribution.hpp:918
ParameterVector expected_values
The expected values, which should be a vector of length K where each value specifies the probability ...
Definition rcpp_distribution.hpp:869
void finalize()
Extracts derived quantities back to the Rcpp interface object from the Information object.
Definition rcpp_distribution.hpp:976
virtual double evaluate()
Definition rcpp_distribution.hpp:959
ParameterVector observed_values
Observed data, which should be a vector of length K of integers.
Definition rcpp_distribution.hpp:863
void set_note(std::string note)
Set the note object.
Definition rcpp_distribution.hpp:952
virtual bool set_observed_data(int observed_data_id)
Set the unique ID for the observed data object.
Definition rcpp_distribution.hpp:924
RealVector dims
The dimensions of the number of rows and columns of the multivariate dataset.
Definition rcpp_distribution.hpp:874
DmultinomDistributionsInterface()
The constructor.
Definition rcpp_distribution.hpp:890
virtual std::string to_json()
Converts the data to json representation for the output.
Definition rcpp_distribution.hpp:1042
RealVector lpdf_vec
Vector that records the individual log probability function for each observation.
Definition rcpp_distribution.hpp:879
DmultinomDistributionsInterface(const DmultinomDistributionsInterface &other)
Construct a new Dmultinom Distributions Interface object.
Definition rcpp_distribution.hpp:902
virtual ~DmultinomDistributionsInterface()
The destructor.
Definition rcpp_distribution.hpp:913
The Rcpp interface for Dnorm to instantiate from R: dnorm_ <- methods::new(DnormDistribution).
Definition rcpp_distribution.hpp:174
DnormDistributionsInterface(const DnormDistributionsInterface &other)
Construct a new Dnorm Distributions Interface object.
Definition rcpp_distribution.hpp:216
ParameterVector expected_mean
The expected mean, which would be the mean of x for this distribution.
Definition rcpp_distribution.hpp:189
DnormDistributionsInterface()
The constructor.
Definition rcpp_distribution.hpp:204
virtual std::string to_json()
Converts the data to json representation for the output.
Definition rcpp_distribution.hpp:386
virtual ~DnormDistributionsInterface()
The destructor.
Definition rcpp_distribution.hpp:227
RealVector lpdf_vec
Vector that records the individual log probability function for each observation.
Definition rcpp_distribution.hpp:199
virtual double evaluate()
Evaluate normal probability density function (pdf). The natural log of the pdf is returned.
Definition rcpp_distribution.hpp:273
ParameterVector expected_values
The expected values, which would be the mean of x for this distribution.
Definition rcpp_distribution.hpp:184
virtual void finalize()
Extracts the derived quantities from Information to the Rcpp object.
Definition rcpp_distribution.hpp:299
virtual bool set_observed_data(int observed_data_id)
Set the unique ID for the observed data object.
Definition rcpp_distribution.hpp:239
ParameterVector observed_values
Observed data.
Definition rcpp_distribution.hpp:179
virtual bool set_distribution_mean(double input_value)
Set the expected mean value for the distribution.
Definition rcpp_distribution.hpp:247
ParameterVector log_sd
The uncertainty, which would be the standard deviation of x for the normal distribution.
Definition rcpp_distribution.hpp:194
virtual bool set_distribution_links(std::string input_type, Rcpp::IntegerVector ids)
Sets pointers for data observations, random effects, or priors.
Definition rcpp_distribution.hpp:257
virtual uint32_t get_id()
Gets the ID of the interface base object.
Definition rcpp_distribution.hpp:233
Base class for all interface objects.
Definition rcpp_interface_base.hpp:574
bool finalized
Is the object already finalized? The default is false.
Definition rcpp_interface_base.hpp:579
std::string value_to_string(double value)
Report the parameter value as a string.
Definition rcpp_interface_base.hpp:615
static std::vector< std::shared_ptr< FIMSRcppInterfaceBase > > fims_interface_objects
FIMS interface object vectors.
Definition rcpp_interface_base.hpp:584
virtual bool add_to_fims_tmb()
A virtual method to inherit to add objects to the TMB model.
Definition rcpp_interface_base.hpp:589
An Rcpp interface class that defines the ParameterVector class.
Definition rcpp_interface_base.hpp:142
void resize(size_t size)
Resizes a ParameterVector to the desired length.
Definition rcpp_interface_base.hpp:287
size_t size()
Returns the size of a ParameterVector.
Definition rcpp_interface_base.hpp:280
uint32_t id_m
The local ID of the Parameter object.
Definition rcpp_interface_base.hpp:155
Parameter & get(size_t pos)
An internal accessor for calling a position of a ParameterVector from R.
Definition rcpp_interface_base.hpp:259
void set(size_t pos, const Parameter &p)
An internal setter for setting a position of a ParameterVector from R.
Definition rcpp_interface_base.hpp:275
An Rcpp interface class that defines the RealVector class.
Definition rcpp_interface_base.hpp:374
size_t size()
Returns the size of a RealVector.
Definition rcpp_interface_base.hpp:535
void resize(size_t size)
Resizes a RealVector to the desired length.
Definition rcpp_interface_base.hpp:542
A class that provides shared ownership of an integer value.
Definition rcpp_shared_primitive.hpp:24
void set(int val)
Change the value of the integer.
Definition rcpp_shared_primitive.hpp:129
A class that provides shared ownership of a string.
Definition rcpp_shared_primitive.hpp:1508
std::string get() const
Retrieves the string value managed by the object.
Definition rcpp_shared_primitive.hpp:1612
void set(std::string val)
Sets the string value of the object.
Definition rcpp_shared_primitive.hpp:1621
#define FIMS_WARNING_LOG(MESSAGE)
Definition def.hpp:545
#define FIMS_INFO_LOG(MESSAGE)
Definition def.hpp:537
#define FIMS_ERROR_LOG(MESSAGE)
Definition def.hpp:553
void clear_internal()
Clears the internal objects.
Definition rcpp_interface.hpp:239
The Rcpp interface to declare objects that are used ubiquitously throughout the Rcpp interface,...
fims::Vector< Type > observed_values
Input value of distribution function for priors or random effects.
Definition density_components_base.hpp:61
Type lpdf
Total log probability density contribution of the distribution.
Definition density_components_base.hpp:180
Implements the LogNormalLPDF distribution functor used by FIMS to evaluate observation-level and tota...
Definition lognormal_lpdf.hpp:35
Implements the MultinomialLPMF distribution functor used by FIMS to evaluate the observation-level an...
Definition multinomial_lpmf.hpp:37
Implements the NormalLPDF distribution functor used by FIMS to evaluate observation-level and total l...
Definition normal_lpdf.hpp:33
virtual const Type evaluate()
Evaluates the normal log probability density function.
Definition normal_lpdf.hpp:60