pomp
Inference for partially observed Markov processes
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
gompertz.c File Reference
#include <Rmath.h>
#include "pomp.h"
Include dependency graph for gompertz.c:

Go to the source code of this file.

Macros

#define R   (p[parindex[0]])
 
#define K   (p[parindex[1]])
 
#define SIGMA   (p[parindex[2]])
 
#define TAU   (p[parindex[3]])
 
#define Y   (y[obsindex[0]])
 
#define X   (x[stateindex[0]])
 
#define XPRIME   (f[stateindex[0]])
 
#define EY   (f[obsindex[0]])
 
#define VY   (f[vmatindex[0]])
 
#define r   (__p[__parindex[0]])
 
#define K   (__p[__parindex[1]])
 
#define sigma   (__p[__parindex[2]])
 
#define tau   (__p[__parindex[3]])
 
#define X_0   (__p[__parindex[4]])
 
#define T_r   (__pt[__parindex[0]])
 
#define T_K   (__pt[__parindex[1]])
 
#define T_sigma   (__pt[__parindex[2]])
 
#define T_tau   (__pt[__parindex[3]])
 
#define T_X_0   (__pt[__parindex[4]])
 

Functions

void _gompertz_normal_dmeasure (double *lik, double *y, double *x, double *p, int give_log, int *obsindex, int *stateindex, int *parindex, int *covindex, double *covars, double t)
 
void _gompertz_normal_rmeasure (double *y, double *x, double *p, int *obsindex, int *stateindex, int *parindex, int *covindex, double *covars, double t)
 
void _gompertz_normal_emeasure (double *f, double *x, double *p, int *obsindex, int *stateindex, int *parindex, int *covindex, double *covars, double t)
 
void _gompertz_normal_vmeasure (double *f, double *x, double *p, int *vmatindex, int *stateindex, int *parindex, int *covindex, double *covars, double t)
 
void _gompertz_step (double *x, const double *p, const int *stateindex, const int *parindex, const int *covindex, const double *covar, double t, double deltat)
 
void _gompertz_skeleton (double *f, double *x, const double *p, const int *stateindex, const int *parindex, const int *covindex, const double *covar, double t)
 
void _gompertz_to_trans (double *__pt, const double *__p, const int *__parindex)
 
void _gompertz_from_trans (double *__p, const double *__pt, const int *__parindex)
 

Macro Definition Documentation

◆ EY

#define EY   (f[obsindex[0]])

Definition at line 16 of file gompertz.c.

◆ K [1/2]

#define K   (p[parindex[1]])

Definition at line 9 of file gompertz.c.

◆ K [2/2]

#define K   (__p[__parindex[1]])

Definition at line 9 of file gompertz.c.

◆ R

#define R   (p[parindex[0]])

Definition at line 8 of file gompertz.c.

◆ r

#define r   (__p[__parindex[0]])

Definition at line 91 of file gompertz.c.

◆ SIGMA

#define SIGMA   (p[parindex[2]])

Definition at line 10 of file gompertz.c.

◆ sigma

#define sigma   (__p[__parindex[2]])

Definition at line 93 of file gompertz.c.

◆ T_K

#define T_K   (__pt[__parindex[1]])

Definition at line 97 of file gompertz.c.

◆ T_r

#define T_r   (__pt[__parindex[0]])

Definition at line 96 of file gompertz.c.

◆ T_sigma

#define T_sigma   (__pt[__parindex[2]])

Definition at line 98 of file gompertz.c.

◆ T_tau

#define T_tau   (__pt[__parindex[3]])

Definition at line 99 of file gompertz.c.

◆ T_X_0

#define T_X_0   (__pt[__parindex[4]])

Definition at line 100 of file gompertz.c.

◆ TAU

#define TAU   (p[parindex[3]])

Definition at line 11 of file gompertz.c.

◆ tau

#define tau   (__p[__parindex[3]])

Definition at line 94 of file gompertz.c.

◆ VY

#define VY   (f[vmatindex[0]])

Definition at line 17 of file gompertz.c.

◆ X

#define X   (x[stateindex[0]])

Definition at line 14 of file gompertz.c.

◆ X_0

#define X_0   (__p[__parindex[4]])

Definition at line 95 of file gompertz.c.

◆ XPRIME

#define XPRIME   (f[stateindex[0]])

Definition at line 15 of file gompertz.c.

◆ Y

#define Y   (y[obsindex[0]])

Definition at line 13 of file gompertz.c.

Function Documentation

◆ _gompertz_from_trans()

void _gompertz_from_trans ( double *  __p,
const double *  __pt,
const int *  __parindex 
)

Definition at line 113 of file gompertz.c.

116 {
117 r = exp(T_r);
118 K = exp(T_K);
119 sigma = exp(T_sigma);
120 tau = exp(T_tau);
121 X_0 = exp(T_X_0);
122}
#define X_0
Definition gompertz.c:95
#define r
Definition gompertz.c:91
#define sigma
Definition gompertz.c:93
#define T_sigma
Definition gompertz.c:98
#define T_tau
Definition gompertz.c:99
#define K
Definition gompertz.c:9
#define tau
Definition gompertz.c:94
#define T_K
Definition gompertz.c:97
#define T_r
Definition gompertz.c:96
#define T_X_0
Definition gompertz.c:100

◆ _gompertz_normal_dmeasure()

void _gompertz_normal_dmeasure ( double *  lik,
double *  y,
double *  x,
double *  p,
int  give_log,
int *  obsindex,
int *  stateindex,
int *  parindex,
int *  covindex,
double *  covars,
double  t 
)

Definition at line 20 of file gompertz.c.

25 {
26 *lik = dlnorm(Y,log(X),TAU,give_log);
27}
#define X
Definition gompertz.c:14
#define TAU
Definition gompertz.c:11
#define Y
Definition gompertz.c:13

◆ _gompertz_normal_emeasure()

void _gompertz_normal_emeasure ( double *  f,
double *  x,
double *  p,
int *  obsindex,
int *  stateindex,
int *  parindex,
int *  covindex,
double *  covars,
double  t 
)

Definition at line 40 of file gompertz.c.

45 {
46 EY = X*exp(TAU*TAU/2);
47}
#define EY
Definition gompertz.c:16

◆ _gompertz_normal_rmeasure()

void _gompertz_normal_rmeasure ( double *  y,
double *  x,
double *  p,
int *  obsindex,
int *  stateindex,
int *  parindex,
int *  covindex,
double *  covars,
double  t 
)

Definition at line 30 of file gompertz.c.

35 {
36 Y = rlnorm(log(X),TAU);
37}

◆ _gompertz_normal_vmeasure()

void _gompertz_normal_vmeasure ( double *  f,
double *  x,
double *  p,
int *  vmatindex,
int *  stateindex,
int *  parindex,
int *  covindex,
double *  covars,
double  t 
)

Definition at line 50 of file gompertz.c.

52 {
53 double et = exp(TAU*TAU);
54 VY = X*X*et*(et-1);
55}
#define VY
Definition gompertz.c:17

◆ _gompertz_skeleton()

void _gompertz_skeleton ( double *  f,
double *  x,
const double *  p,
const int *  stateindex,
const int *  parindex,
const int *  covindex,
const double *  covar,
double  t 
)

Definition at line 70 of file gompertz.c.

75 {
76 double deltat = 1.0;
77 double S = exp(-R*deltat);
78 XPRIME = R_pow(K,1-S)*R_pow(X,S); // X is not over-written in the skeleton function
79}
#define XPRIME
Definition gompertz.c:15
#define R
Definition gompertz.c:8

◆ _gompertz_step()

void _gompertz_step ( double *  x,
const double *  p,
const int *  stateindex,
const int *  parindex,
const int *  covindex,
const double *  covar,
double  t,
double  deltat 
)

Definition at line 58 of file gompertz.c.

63 {
64 double S = exp(-R*deltat);
65 double eps = (SIGMA > 0.0) ? exp(rnorm(0,SIGMA)) : 1.0;
66 X = R_pow(K,1-S)*R_pow(X,S)*eps; // note X is over-written by this line
67}
#define SIGMA
Definition gompertz.c:10

◆ _gompertz_to_trans()

void _gompertz_to_trans ( double *  __pt,
const double *  __p,
const int *  __parindex 
)

Definition at line 102 of file gompertz.c.

105 {
106 T_r = log(r);
107 T_K = log(K);
108 T_sigma = log(sigma);
109 T_tau = log(tau);
110 T_X_0 = log(X_0);
111}