FIMS  v0.8.0
Loading...
Searching...
No Matches
DistributionsInterfaceBase Class Referenceabstract

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>

Inheritance diagram for DistributionsInterfaceBase:
FIMSRcppInterfaceBase DlnormDistributionsInterface DmultinomDistributionsInterface DnormDistributionsInterface

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.
 
void get_se_values (std::string name, std::map< std::string, std::vector< double > > &se_values, fims::Vector< double > &values)
 Method to extract standard error values from the se_values working map.
 
virtual void set_uncertainty (std::map< std::string, std::vector< double > > &se_values)
 Set uncertainty values for the interface object.
 
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.
 

Detailed Description

Rcpp interface that serves as the parent class for Rcpp distribution interfaces. This type should be inherited and not called from R directly.

Constructor & Destructor Documentation

◆ DistributionsInterfaceBase()

DistributionsInterfaceBase::DistributionsInterfaceBase ( const DistributionsInterfaceBase other)
inline

Construct a new Distributions Interface Base object.

Parameters
other

Member Function Documentation

◆ evaluate()

virtual double DistributionsInterfaceBase::evaluate ( )
pure virtual

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_id()

virtual uint32_t DistributionsInterfaceBase::get_id ( )
pure virtual

Get the ID for the child distribution interface objects to inherit.

Implemented in DnormDistributionsInterface, DlnormDistributionsInterface, and DmultinomDistributionsInterface.

◆ set_distribution_links()

virtual bool DistributionsInterfaceBase::set_distribution_links ( std::string  input_type,
Rcpp::IntegerVector  ids 
)
inlinevirtual

Sets pointers for data observations, random effects, or priors.

Parameters
input_typeString that sets whether the distribution type is for priors, random effects, or data.
idsVector of unique ids for each linked parameter(s), derived value(s), or observed data vector.

Reimplemented in DnormDistributionsInterface, DlnormDistributionsInterface, and DmultinomDistributionsInterface.

◆ set_distribution_mean()

virtual bool DistributionsInterfaceBase::set_distribution_mean ( double  input_value)
inlinevirtual

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.

Parameters
input_valueThe 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.
Returns
bool Returns true if the mean was successfully set, false otherwise. The base class implementation always returns false to indicate the operation is not supported by default.
See also
DnormDistributionsInterface::set_distribution_mean for an example implementation that sets the mean as a fixed effect parameter.

Reimplemented in DnormDistributionsInterface.

◆ set_observed_data()

virtual bool DistributionsInterfaceBase::set_observed_data ( int  observed_data_id)
inlinevirtual

Set the unique ID for the observed data object.

Parameters
observed_data_idUnique ID for the Observed Age Comp Data object

Reimplemented in DnormDistributionsInterface, DlnormDistributionsInterface, and DmultinomDistributionsInterface.

Member Data Documentation

◆ use_mean_m

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.

See also
set_distribution_mean() for the method that sets this flag to "yes".
DensityComponentBase::get_expected() in density_components_base.hpp for the implementation that checks this flag.

The documentation for this class was generated from the following file: