![]() |
FIMS
v0.8.1
|
Rcpp interface that serves as the parent class for Rcpp distribution interfaces. This type should be inherited and not called from R directly. More...
#include <rcpp_distribution.hpp>
Public Member Functions | |
| DistributionsInterfaceBase () | |
| The constructor. | |
| DistributionsInterfaceBase (const DistributionsInterfaceBase &other) | |
| Construct a new Distributions Interface Base object. | |
| virtual | ~DistributionsInterfaceBase () |
| The destructor. | |
| virtual uint32_t | get_id ()=0 |
| Get the ID for the child distribution interface objects to inherit. | |
| virtual bool | set_distribution_links (std::string input_type, Rcpp::IntegerVector ids) |
| Sets pointers for data observations, random effects, or priors. | |
| virtual bool | set_distribution_mean (double input_value) |
| Set the expected mean value for the distribution. | |
| virtual bool | set_observed_data (int observed_data_id) |
| Set the unique ID for the observed data object. | |
| virtual double | evaluate ()=0 |
| A method for each child distribution interface object to inherit so each distribution can have an evaluate() function. | |
Public Member Functions inherited from FIMSRcppInterfaceBase | |
| virtual bool | add_to_fims_tmb () |
| A virtual method to inherit to add objects to the TMB model. | |
| virtual void | finalize () |
| Extracts derived quantities back to the Rcpp interface object from the Information object. | |
| virtual std::string | to_json () |
| Convert the data to json representation for the output. | |
| std::string | value_to_string (double value) |
| Report the parameter value as a string. | |
| std::string | make_dimensions (uint32_t start, uint32_t end, uint32_t rep=1) |
| Make a string of dimensions for the model. | |
Public Attributes | |
| uint32_t | id_m |
| The local ID of the DistributionsInterfaceBase object. | |
| std::shared_ptr< std::vector< uint32_t > > | key_m |
| The unique ID for the variable map that points to a fims::Vector. | |
| SharedString | input_type_m |
| The type of density input. The options are prior, re, or data. | |
| SharedString | use_mean_m = fims::to_string("no") |
| Control flag indicating whether to use the expected mean in the distribution calculations. | |
| SharedInt | interface_observed_data_id_m = -999 |
| The ID of the observed data object, which is set to -999. | |
| double | lpdf_value = 0 |
| The log probability density function value. | |
Public Attributes inherited from FIMSRcppInterfaceBase | |
| bool | finalized = false |
| Is the object already finalized? The default is false. | |
Static Public Attributes | |
| static uint32_t | id_g = 1 |
| The static ID of the DistributionsInterfaceBase object. | |
| static std::map< uint32_t, std::shared_ptr< DistributionsInterfaceBase > > | live_objects |
| The map associating the ID of the DistributionsInterfaceBase to the DistributionsInterfaceBase objects. This is a live object, which is an object that has been created and lives in memory. | |
Static Public Attributes inherited from FIMSRcppInterfaceBase | |
| static std::vector< std::shared_ptr< FIMSRcppInterfaceBase > > | fims_interface_objects |
| FIMS interface object vectors. | |
Rcpp interface that serves as the parent class for Rcpp distribution interfaces. This type should be inherited and not called from R directly.
|
inline |
Construct a new Distributions Interface Base object.
| other |
A method for each child distribution interface object to inherit so each distribution can have an evaluate() function.
Implemented in DnormDistributionsInterface, DlnormDistributionsInterface, and DmultinomDistributionsInterface.
Get the ID for the child distribution interface objects to inherit.
Implemented in DnormDistributionsInterface, DlnormDistributionsInterface, and DmultinomDistributionsInterface.
|
inlinevirtual |
Sets pointers for data observations, random effects, or priors.
| input_type | String that sets whether the distribution type is for priors, random effects, or data. |
| ids | Vector of unique ids for each linked parameter(s), derived value(s), or observed data vector. |
Reimplemented in DnormDistributionsInterface, DlnormDistributionsInterface, and DmultinomDistributionsInterface.
Set the expected mean value for the distribution.
This virtual function provides an interface for setting a fixed mean value for distribution objects. When overridden in derived classes, this method typically stores the provided mean value as a fixed effect parameter and marks the distribution to use the mean in its calculations.
The base class implementation returns false to indicate the operation is not supported. Derived classes that support mean specification should override this method to implement the actual functionality.
| input_value | The numeric value to set as the distribution's expected mean. This value will be treated as a fixed effect parameter (not estimated) in derived class implementations. |
Reimplemented in DnormDistributionsInterface.
Set the unique ID for the observed data object.
| observed_data_id | Unique ID for the Observed Age Comp Data object |
Reimplemented in DnormDistributionsInterface, DlnormDistributionsInterface, and DmultinomDistributionsInterface.
| SharedString DistributionsInterfaceBase::use_mean_m = fims::to_string("no") |
Control flag indicating whether to use the expected mean in the distribution calculations.
This shared string member serves as a boolean flag (i.e., "yes" or "no") that determines whether the distribution should use the expected_mean vector or other expected values (e.g., from data or random effects) when computing the expected value in the likelihood calculations.
When set to "no" (default), the distribution uses expected values based on the input_type setting (data expected values for "data", random effects expected values for "random_effects", or standard expected values otherwise).
When set to "yes" (typically by calling set_distribution_mean()), the distribution overrides the default expected value source and uses the expected_mean vector instead. This is useful for setting a fixed mean value for the distribution that doesn't depend on other model components.