## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup--------------------------------------------------------------------
library(branchingprocess)

## -----------------------------------------------------------------------------
pNextGenSize(x=2, y=5, R=0.8, k=0.1)

## -----------------------------------------------------------------------------
pNextGenSize(x=2, y=c(0,1,5,10), R=0.8, k=10)*100
pNextGenSize(x=2, y=c(0,1,5,10), R=0.8, k=0.1)*100

## -----------------------------------------------------------------------------
pFinalSize(n=2, j=12, R=0.8, k=0.1)

## -----------------------------------------------------------------------------
pClusterSizes <- function(R,k) pFinalSize(n=1, j=c(1,2,20,50), R=R, k=k)

## -----------------------------------------------------------------------------
pClusterSizes(R = 1.5, k = 1) * 100

## -----------------------------------------------------------------------------
logLikData <- function(R,k) sum(c(25,3,1,1)*log(pClusterSizes(R,k)))

## -----------------------------------------------------------------------------
exp(logLikData(1.5,1))

## -----------------------------------------------------------------------------
optim(f = function(x) ifelse(all(x>0), -logLikData(x[1],x[2]), Inf), par = c(R=1,k=1))$par

## -----------------------------------------------------------------------------
pClusterSizesSwitch1 <- function(R0,k0) Vectorize(pFinalSizeSwitch1)(n=1, j=c(1,2,20,50), R0=R0, k0=k0, Rc=R0/2, kc=k0)
logLikDataSwitch1 <- function(R0,k0) sum(c(25,3,1,1)*log(pClusterSizesSwitch1(R0,k0)))
optim(f = function(x) ifelse(all(x>0), -logLikDataSwitch1(x[1],x[2]), Inf), par = c(R0=1,k0=1))$par

## -----------------------------------------------------------------------------
finalSize10 <- Vectorize(pFinalSizeAndGen,'g')(g=1:9,n=1,j=10,R=0.8,k=0.07)
finalSize10
c(sum(finalSize10), pFinalSize(n=1,j=10,R=0.8,k=0.07))

## -----------------------------------------------------------------------------
pClusterSizeAndGen <- function(R,k) Vectorize(pFinalSizeAndGen)(g=c(0,1,3,4),n=1, j=c(1,2,20,50), R=R, k=k)
logLikDataGen <- function(R,k) sum(c(25,3,1,1)*log(pClusterSizeAndGen(R,k)))
optim(f = function(x) ifelse(all(x>0), -logLikDataGen(x[1],x[2]), Inf), par = c(R=1,k=1))$par

## -----------------------------------------------------------------------------
pClusterSizeAndGenControl <- function(R0,Rc,k) Vectorize(pFinalSizeAndGenSwitch1)(g=c(0,1,3,4),n=1, j=c(1,2,20,50), R0=R0, k0=k, Rc=Rc, kc=k)
logLikDataGenControl <- function(R0,Rc,k) sum(c(25,3,1,1)*log(pClusterSizeAndGenControl(R0,Rc,k)))
optim(f = function(x) ifelse(all(x>0), -logLikDataGenControl(x[1],x[2],x[3]), Inf), par = c(R0=1,Rc=1,k=1))$par

## -----------------------------------------------------------------------------
1-sum(pFinalSize(1,1:99,0.7,0.08))

## -----------------------------------------------------------------------------
1-sum(Vectorize(pFinalSizeSwitch1)(1,1:99,R0=1.08,k0=0.06,Rc=0.54,kc=0.06))

## -----------------------------------------------------------------------------
1-sum(pFinalSize(1,1:99,R=1.08,k=0.06))

## -----------------------------------------------------------------------------
1-pExtinct(R=1.08,k=0.06)

## -----------------------------------------------------------------------------
pGen(gMax=10,R=0.7,k=0.08)

## -----------------------------------------------------------------------------
pGenSwitch1(gMax=10,R0=1.08,k0=0.06,Rc=0.54,kc=0.06)

## -----------------------------------------------------------------------------
pSizeAtGen(g=2,n=1,j=10,R=0.7,k=0.08)
pSizeAtGenSwitch1(g=2,n=1,j=10,R0=1.08,k0=0.06,Rc=0.54,kc=0.06)