3 template<
class Distribution>
4 class Variable :
public Distribution,
public Structure<Variable<Distribution>> {
7 using Structure<Variable<Distribution>>::derived;
8 using Structure<Variable<Distribution>>::derived_nullptr;
12 bool is_na(
void)
const {
13 return std::isnan(value);
16 operator double(
void)
const {
20 #define OP_(op) void operator op(const double& other){ value op other; } 28 double loglike(
void)
const {
29 if(not is_na() and Distribution::valid()){
30 return Distribution::loglike(value);
35 template<
class Mirror>
36 void reflect(Mirror& mirror) {
39 Distribution::reflect(mirror);
Definition: variable.hpp:4