ComplexCascadeCalib <- function(t, y, parms, inc) {
# (as.integer(ceiling(t)) >= parms[["t_1"]])
# print(inc[as.integer(ceiling(t+1))])
# ifelse(as.integer(ceiling(t+1)) <= which.max(inc), inc[as.integer(ceiling(t+1))], inc[which.max(inc)])
dUnDx_500 <- (parms[["prop_preART_500"]] * inc[as.integer(ceiling(t+1))]) - (parms[["Nu_1"]] + parms[["Rho"]] + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_1"]] + parms[["Mu"]]) * y[["UnDx_500"]]
dUnDx_350500 <- (parms[["prop_preART_350500"]] * inc[as.integer(ceiling(t+1))]) + parms[["Nu_1"]] * y[["UnDx_500"]] - (parms[["Nu_2"]] + parms[["Rho"]] + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_2"]] + parms[["Mu"]]) * y[["UnDx_350500"]]
dUnDx_250350 <- (parms[["prop_preART_250350"]] * inc[as.integer(ceiling(t+1))]) + parms[["Nu_2"]] * y[["UnDx_350500"]] - (parms[["Nu_3"]] + parms[["Rho"]] + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_3"]] + parms[["Mu"]]) * y[["UnDx_250350"]]
dUnDx_200250 <- (parms[["prop_preART_200250"]] * inc[as.integer(ceiling(t+1))]) + parms[["Nu_3"]] * y[["UnDx_250350"]] - (parms[["Nu_4"]] + parms[["Rho"]] + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_4"]] + parms[["Mu"]]) * y[["UnDx_200250"]]
dUnDx_100200 <- (parms[["prop_preART_100200"]] * inc[as.integer(ceiling(t+1))]) + parms[["Nu_4"]] * y[["UnDx_200250"]] - (parms[["Nu_5"]] + parms[["Rho"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_5"]] + parms[["Mu"]]) * y[["UnDx_100200"]]
dUnDx_50100 <- (parms[["prop_preART_50100"]] * inc[as.integer(ceiling(t+1))]) + parms[["Nu_5"]] * y[["UnDx_100200"]] - (parms[["Nu_6"]] + parms[["Rho"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_6"]] + parms[["Mu"]]) * y[["UnDx_50100"]]
dUnDx_50 <- (parms[["prop_preART_50"]] * inc[as.integer(ceiling(t+1))]) + parms[["Nu_6"]] * y[["UnDx_50100"]] - (parms[["Rho"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_7"]] + parms[["Mu"]]) * y[["UnDx_50"]]
dDx_500 <- parms[["Rho"]] * y[["UnDx_500"]] - (parms[["Nu_1"]] + parms[["Epsilon"]] + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_1"]] + parms[["Mu"]]) * y[["Dx_500"]]
dDx_350500 <- parms[["Rho"]] * y[["UnDx_350500"]] + parms[["Nu_1"]] * y[["Dx_500"]] - (parms[["Nu_2"]] + parms[["Epsilon"]] + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_2"]] + parms[["Mu"]]) * y[["Dx_350500"]]
dDx_250350 <- parms[["Rho"]] * y[["UnDx_250350"]] + parms[["Nu_2"]] * y[["Dx_350500"]] - (parms[["Nu_3"]] + parms[["Epsilon"]] + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_3"]] + parms[["Mu"]]) * y[["Dx_250350"]]
dDx_200250 <- parms[["Rho"]] * y[["UnDx_200250"]] + parms[["Nu_3"]] * y[["Dx_250350"]] - (parms[["Nu_4"]] + parms[["Epsilon"]] + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_4"]] + parms[["Mu"]]) * y[["Dx_200250"]]
dDx_100200 <- parms[["Rho"]] * y[["UnDx_100200"]] + parms[["Nu_4"]] * y[["Dx_200250"]] - (parms[["Nu_5"]] + parms[["Epsilon"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_5"]] + parms[["Mu"]]) * y[["Dx_100200"]]
dDx_50100 <- parms[["Rho"]] * y[["UnDx_50100"]] + parms[["Nu_5"]] * y[["Dx_100200"]] - (parms[["Nu_6"]] + parms[["Epsilon"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_6"]] + parms[["Mu"]]) * y[["Dx_50100"]]
dDx_50 <- parms[["Rho"]] * y[["UnDx_50"]] + parms[["Nu_6"]] * y[["Dx_50100"]] - (parms[["Epsilon"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_7"]] + parms[["Mu"]]) * y[["Dx_50"]]
dCare_500 <- (parms[["q"]] * parms[["Epsilon"]]) * y[["Dx_500"]] - (parms[["Nu_1"]] + parms[["Kappa"]] + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_1"]] + parms[["Mu"]]) * y[["Care_500"]]
dCare_350500 <- (parms[["q"]] * parms[["Epsilon"]]) * y[["Dx_350500"]] + parms[["Nu_1"]] * y[["Care_500"]] - (parms[["Nu_2"]] + parms[["Kappa"]] + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_2"]] + parms[["Mu"]]) * y[["Care_350500"]]
dCare_250350 <- (parms[["q"]] * parms[["Epsilon"]]) * y[["Dx_250350"]] + parms[["Nu_2"]] * y[["Care_350500"]] - (parms[["Nu_3"]] + parms[["Kappa"]] + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_3"]] + parms[["Mu"]]) * y[["Care_250350"]]
dCare_200250 <- (parms[["q"]] * parms[["Epsilon"]]) * y[["Dx_200250"]] + parms[["Nu_3"]] * y[["Care_250350"]] - (parms[["Nu_4"]] + parms[["Kappa"]] + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_4"]] + parms[["Mu"]]) * y[["Care_200250"]]
dCare_100200 <- (parms[["q"]] * parms[["Epsilon"]]) * y[["Dx_100200"]] + parms[["Nu_4"]] * y[["Care_200250"]] - (parms[["Nu_5"]] + parms[["Kappa"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_5"]] + parms[["Mu"]]) * y[["Care_100200"]]
dCare_50100 <- (parms[["q"]] * parms[["Epsilon"]]) * y[["Dx_50100"]] + parms[["Nu_5"]] * y[["Care_100200"]] - (parms[["Nu_6"]] + parms[["Kappa"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_6"]] + parms[["Mu"]]) * y[["Care_50100"]]
dCare_50 <- (parms[["q"]] * parms[["Epsilon"]]) * y[["Dx_50"]] + parms[["Nu_6"]] * y[["Care_50100"]] - (parms[["Kappa"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_7"]] + parms[["Mu"]]) * y[["Care_50"]]
dPreLtfu_500 <- parms[["Kappa"]] * y[["Care_500"]] + ((1-parms[["q"]]) * parms[["Epsilon"]]) * y[["Dx_500"]] - (parms[["Nu_1"]] + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_1"]] + parms[["Mu"]]) * y[["PreLtfu_500"]]
dPreLtfu_350500 <- parms[["Kappa"]] * y[["Care_350500"]] + parms[["Nu_1"]] * y[["PreLtfu_500"]] + ((1-parms[["q"]]) * parms[["Epsilon"]]) * y[["Dx_350500"]] - (parms[["Nu_2"]] + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_2"]] + parms[["Mu"]]) * y[["PreLtfu_350500"]]
dPreLtfu_250350 <- parms[["Kappa"]] * y[["Care_250350"]] + parms[["Nu_2"]] * y[["PreLtfu_350500"]] + ((1-parms[["q"]]) * parms[["Epsilon"]]) * y[["Dx_250350"]] - (parms[["Nu_3"]] + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_3"]] + parms[["Mu"]]) * y[["PreLtfu_250350"]]
dPreLtfu_200250 <- parms[["Kappa"]] * y[["Care_200250"]] + parms[["Nu_3"]] * y[["PreLtfu_250350"]] + ((1-parms[["q"]]) * parms[["Epsilon"]]) * y[["Dx_200250"]] - (parms[["Nu_4"]] + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_4"]] + parms[["Mu"]]) * y[["PreLtfu_200250"]]
dPreLtfu_100200 <- parms[["Kappa"]] * y[["Care_100200"]] + parms[["Nu_4"]] * y[["PreLtfu_200250"]] + ((1-parms[["q"]]) * parms[["Epsilon"]]) * y[["Dx_100200"]] - (parms[["Nu_5"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_5"]] + parms[["Mu"]]) * y[["PreLtfu_100200"]]
dPreLtfu_50100 <- parms[["Kappa"]] * y[["Care_50100"]] + parms[["Nu_5"]] * y[["PreLtfu_100200"]] + ((1-parms[["q"]]) * parms[["Epsilon"]]) * y[["Dx_50100"]] - (parms[["Nu_6"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_6"]] + parms[["Mu"]]) * y[["PreLtfu_50100"]]
dPreLtfu_50 <- parms[["Kappa"]] * y[["Care_50"]] + parms[["Nu_6"]] * y[["PreLtfu_50100"]] + ((1-parms[["q"]]) * parms[["Epsilon"]]) * y[["Dx_50"]] - ( ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * parms[["p"]] * parms[["Theta"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * (1-parms[["p"]]) * parms[["Theta"]]) + parms[["Alpha_7"]] + parms[["Mu"]]) * y[["PreLtfu_50"]]
dTx_Na_500 <- ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["PreLtfu_500"]] + (((as.integer(ceiling(t)) >= parms[["t_1"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * (1-parms[["p"]]) * parms[["Theta"]])) * y[["Care_500"]] + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["Dx_500"]] + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["UnDx_500"]] - (parms[["Nu_1"]] + parms[["Omega"]] + parms[["Sigma"]] + parms[["Alpha_1"]] + parms[["Mu"]]) * y[["Tx_Na_500"]]
dTx_Na_350500 <- ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["PreLtfu_350500"]] + (((as.integer(ceiling(t)) >= parms[["t_2"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * (1-parms[["p"]]) * parms[["Theta"]])) * y[["Care_350500"]] + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["Dx_350500"]] + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["UnDx_350500"]] + parms[["Nu_1"]] * y[["Tx_Na_500"]] - (parms[["Nu_2"]] + parms[["Omega"]] + parms[["Sigma"]] + parms[["Alpha_2"]] + parms[["Mu"]]) * y[["Tx_Na_350500"]]
dTx_Na_250350 <- ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["PreLtfu_250350"]] + (((as.integer(ceiling(t)) >= parms[["t_3"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * (1-parms[["p"]]) * parms[["Theta"]])) * y[["Care_250350"]] + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["Dx_250350"]] + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["UnDx_250350"]] + parms[["Nu_2"]] * y[["Tx_Na_350500"]] - (parms[["Nu_3"]] + parms[["Omega"]] + parms[["Sigma"]] + parms[["Alpha_3"]] + parms[["Mu"]]) * y[["Tx_Na_250350"]]
dTx_Na_200250 <- ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["PreLtfu_200250"]] + (((as.integer(ceiling(t)) >= parms[["t_4"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * (1-parms[["p"]]) * parms[["Theta"]])) * y[["Care_200250"]] + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["Dx_200250"]] + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["UnDx_200250"]] + parms[["Nu_3"]] * y[["Tx_Na_250350"]] - (parms[["Nu_4"]] + parms[["Omega"]] + parms[["Sigma"]] + parms[["Alpha_4"]] + parms[["Mu"]]) * y[["Tx_Na_200250"]]
dTx_Na_100200 <- ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["PreLtfu_100200"]] + (((as.integer(ceiling(t)) >= parms[["t_5"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * (1-parms[["p"]]) * parms[["Theta"]])) * y[["Care_100200"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["Dx_100200"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["UnDx_100200"]] + parms[["Nu_4"]] * y[["Tx_Na_200250"]] - (parms[["Nu_5"]] + parms[["Omega"]] + parms[["Sigma"]] + parms[["Alpha_5"]] + parms[["Mu"]]) * y[["Tx_Na_100200"]]
dTx_Na_50100 <- ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["PreLtfu_50100"]] + (((as.integer(ceiling(t)) >= parms[["t_5"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * (1-parms[["p"]]) * parms[["Theta"]])) * y[["Care_50100"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["Dx_50100"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["UnDx_50100"]] + parms[["Nu_5"]] * y[["Tx_Na_100200"]] - (parms[["Nu_6"]] + parms[["Omega"]] + parms[["Sigma"]] + parms[["Alpha_6"]] + parms[["Mu"]]) * y[["Tx_Na_50100"]]
dTx_Na_50 <- ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["PreLtfu_50"]] + (((as.integer(ceiling(t)) >= parms[["t_5"]]) * (1-parms[["p"]]) * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * (1-parms[["p"]]) * parms[["Theta"]])) * y[["Care_50"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["Dx_50"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * (1-parms[["p"]]) * parms[["Theta"]]) * y[["UnDx_50"]] + parms[["Nu_6"]] * y[["Tx_Na_50100"]] - (parms[["Omega"]] + parms[["Sigma"]] + parms[["Alpha_7"]] + parms[["Mu"]]) * y[["Tx_Na_50"]]
dTx_A_500 <- parms[["Sigma"]] * y[["Tx_Na_500"]] + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * parms[["p"]] * parms[["Theta"]]) * y[["PreLtfu_500"]] + (((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * parms[["p"]] * parms[["Theta"]])) * y[["Care_500"]] + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * parms[["p"]] * parms[["Theta"]]) * y[["Dx_500"]] + ((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * parms[["p"]] * parms[["Theta"]]) * y[["UnDx_500"]] - (parms[["Omega"]] + parms[["Tau_1"]] + parms[["Mu"]]) * y[["Tx_A_500"]]
dTx_A_350500 <- parms[["Sigma"]] * y[["Tx_Na_350500"]] + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * parms[["p"]] * parms[["Theta"]]) * y[["PreLtfu_350500"]] + (((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * parms[["p"]] * parms[["Theta"]])) * y[["Care_350500"]] + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * parms[["p"]] * parms[["Theta"]]) * y[["Dx_350500"]] + ((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * parms[["p"]] * parms[["Theta"]]) * y[["UnDx_350500"]] + parms[["Delta_1"]] * y[["Tx_A_250350"]] - (parms[["Omega"]] + parms[["Tau_2"]] + parms[["Mu"]]) * y[["Tx_A_350500"]]
dTx_A_250350 <- parms[["Sigma"]] * y[["Tx_Na_250350"]] + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * parms[["p"]] * parms[["Theta"]]) * y[["PreLtfu_250350"]] + (((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * parms[["p"]] * parms[["Theta"]])) * y[["Care_250350"]] + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * parms[["p"]] * parms[["Theta"]]) * y[["Dx_250350"]] + ((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * parms[["p"]] * parms[["Theta"]]) * y[["UnDx_250350"]] + parms[["Delta_2"]] * y[["Tx_A_200250"]] - (parms[["Delta_1"]] + parms[["Omega"]] + parms[["Tau_3"]] + parms[["Mu"]]) * y[["Tx_A_250350"]]
dTx_A_200250 <- parms[["Sigma"]] * y[["Tx_Na_200250"]] + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * parms[["p"]] * parms[["Theta"]]) * y[["PreLtfu_200250"]] + (((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * parms[["p"]] * parms[["Theta"]])) * y[["Care_200250"]] + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * parms[["p"]] * parms[["Theta"]]) * y[["Dx_200250"]] + ((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * parms[["p"]] * parms[["Theta"]]) * y[["UnDx_200250"]] + parms[["Delta_3"]] * y[["Tx_A_100200"]] - (parms[["Delta_2"]] + parms[["Omega"]] + parms[["Tau_4"]] + parms[["Mu"]]) * y[["Tx_A_200250"]]
dTx_A_100200 <- parms[["Sigma"]] * y[["Tx_Na_100200"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * parms[["p"]] * parms[["Theta"]]) * y[["PreLtfu_100200"]] + (((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * parms[["p"]] * parms[["Theta"]])) * y[["Care_100200"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * parms[["p"]] * parms[["Theta"]]) * y[["Dx_100200"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * parms[["p"]] * parms[["Theta"]]) * y[["UnDx_100200"]] + parms[["Delta_4"]] * y[["Tx_A_50100"]] - (parms[["Delta_3"]] + parms[["Omega"]] + parms[["Tau_5"]] + parms[["Mu"]]) * y[["Tx_A_100200"]]
dTx_A_50100 <- parms[["Sigma"]] * y[["Tx_Na_50100"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * parms[["p"]] * parms[["Theta"]]) * y[["PreLtfu_50100"]] + (((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * parms[["p"]] * parms[["Theta"]])) * y[["Care_50100"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * parms[["p"]] * parms[["Theta"]]) * y[["Dx_50100"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * parms[["p"]] * parms[["Theta"]]) * y[["UnDx_50100"]] + parms[["Delta_5"]] * y[["Tx_A_50"]] - (parms[["Delta_4"]] + parms[["Omega"]] + parms[["Tau_6"]] + parms[["Mu"]]) * y[["Tx_A_50100"]]
dTx_A_50 <- parms[["Sigma"]] * y[["Tx_Na_50"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * parms[["p"]] * parms[["Theta"]]) * y[["PreLtfu_50"]] + (((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["p"]] * parms[["Gamma"]]) + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * parms[["p"]] * parms[["Theta"]])) * y[["Care_50"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * parms[["p"]] * parms[["Theta"]]) * y[["Dx_50"]] + ((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * parms[["p"]] * parms[["Theta"]]) * y[["UnDx_50"]] - (parms[["Delta_5"]] + parms[["Omega"]] + parms[["Tau_7"]] + parms[["Mu"]]) * y[["Tx_A_50"]]
dLtfu_500 <- parms[["Omega"]] * (y[["Tx_Na_500"]] + y[["Tx_A_500"]]) - (parms[["Nu_1"]] + parms[["Alpha_1"]] + parms[["Mu"]]) * y[["Ltfu_500"]]
dLtfu_350500 <- parms[["Omega"]] * (y[["Tx_Na_350500"]] + y[["Tx_A_350500"]]) + parms[["Nu_1"]] * y[["Ltfu_500"]] - (parms[["Nu_2"]] + parms[["Alpha_2"]] + parms[["Mu"]]) * y[["Ltfu_350500"]]
dLtfu_250350 <- parms[["Omega"]] * (y[["Tx_Na_250350"]] + y[["Tx_A_250350"]]) + parms[["Nu_2"]] * y[["Ltfu_350500"]] - (parms[["Nu_3"]] + parms[["Alpha_3"]] + parms[["Mu"]]) * y[["Ltfu_250350"]]
dLtfu_200250 <- parms[["Omega"]] * (y[["Tx_Na_200250"]] + y[["Tx_A_200250"]]) + parms[["Nu_3"]] * y[["Ltfu_250350"]] - (parms[["Nu_4"]] + parms[["Alpha_4"]] + parms[["Mu"]]) * y[["Ltfu_200250"]]
dLtfu_100200 <- parms[["Omega"]] * (y[["Tx_Na_100200"]] + y[["Tx_A_100200"]]) + parms[["Nu_4"]] * y[["Ltfu_200250"]] - (parms[["Nu_5"]] + parms[["Alpha_5"]] + parms[["Mu"]]) * y[["Ltfu_100200"]]
dLtfu_50100 <- parms[["Omega"]] * (y[["Tx_Na_50100"]] + y[["Tx_A_50100"]]) + parms[["Nu_5"]] * y[["Ltfu_100200"]] - (parms[["Nu_6"]] + parms[["Alpha_6"]] + parms[["Mu"]]) * y[["Ltfu_50100"]]
dLtfu_50 <- parms[["Omega"]] * (y[["Tx_Na_50"]] + y[["Tx_A_50"]]) + parms[["Nu_6"]] * y[["Ltfu_50100"]] - (parms[["Alpha_7"]] + parms[["Mu"]]) * y[["Ltfu_50"]]
# Aggregate Trackers
dNewInf <- parms[["prop_preART_500"]] * inc[as.integer(ceiling(t+1))] + parms[["prop_preART_350500"]] * inc[as.integer(ceiling(t+1))] + parms[["prop_preART_250350"]] * inc[as.integer(ceiling(t+1))] + parms[["prop_preART_200250"]] * inc[as.integer(ceiling(t+1))] + parms[["prop_preART_100200"]] * inc[as.integer(ceiling(t+1))] + parms[["prop_preART_50100"]] * inc[as.integer(ceiling(t+1))] + parms[["prop_preART_50"]] * inc[as.integer(ceiling(t+1))]
dHivMortality <- parms[["Alpha_1"]] * (y[["UnDx_500"]] + y[["Dx_500"]] + y[["Care_500"]] + y[["PreLtfu_500"]] + y[["Tx_Na_500"]]) + parms[["Alpha_2"]] * (y[["UnDx_350500"]] + y[["Dx_350500"]] + y[["Care_350500"]] + y[["PreLtfu_350500"]] + y[["Tx_Na_350500"]]) + parms[["Alpha_3"]] * (y[["UnDx_250350"]] + y[["Dx_250350"]] + y[["Care_250350"]] + y[["PreLtfu_250350"]] + y[["Tx_Na_250350"]]) + parms[["Alpha_4"]] * (y[["UnDx_200250"]] + y[["Dx_200250"]] + y[["Care_200250"]] + y[["PreLtfu_200250"]] + y[["Tx_Na_200250"]]) + parms[["Alpha_5"]] * (y[["UnDx_100200"]] + y[["Dx_100200"]] + y[["Care_100200"]] + y[["PreLtfu_100200"]] + y[["Tx_Na_100200"]]) + parms[["Alpha_6"]] * (y[["UnDx_50100"]] + y[["Dx_50100"]] + y[["Care_50100"]] + y[["PreLtfu_50100"]] + y[["Tx_Na_50100"]]) + parms[["Alpha_7"]] * (y[["UnDx_50"]] + y[["Dx_50"]] + y[["Care_50"]] + y[["PreLtfu_50"]] + y[["Tx_Na_50"]]) + parms[["Tau_1"]] * y[["Tx_A_500"]] + parms[["Tau_2"]] * y[["Tx_A_350500"]] + parms[["Tau_3"]] * y[["Tx_A_250350"]] + parms[["Tau_4"]] * y[["Tx_A_200250"]] + parms[["Tau_5"]] * y[["Tx_A_100200"]] + parms[["Tau_6"]] * y[["Tx_A_50100"]] + parms[["Tau_7"]] * y[["Tx_A_50"]]
dNaturalMortality <- parms[["Mu"]] * (y[["UnDx_500"]] + y[["UnDx_350500"]] + y[["UnDx_250350"]] + y[["UnDx_200250"]] + y[["UnDx_100200"]] + y[["UnDx_50100"]] + y[["UnDx_50"]] + y[["Dx_500"]] + y[["Dx_350500"]] + y[["Dx_250350"]] + y[["Dx_200250"]] + y[["Dx_100200"]] + y[["Dx_50100"]] + y[["Dx_50"]] + y[["Care_500"]] + y[["Care_350500"]] + y[["Care_250350"]] + y[["Care_200250"]] + y[["Care_100200"]] + y[["Care_50100"]] + y[["Care_50"]] + y[["PreLtfu_500"]] + y[["PreLtfu_350500"]] + y[["PreLtfu_250350"]] + y[["PreLtfu_200250"]] + y[["PreLtfu_100200"]] + y[["PreLtfu_50100"]] + y[["PreLtfu_50"]] + y[["Tx_Na_500"]] + y[["Tx_Na_350500"]] + y[["Tx_Na_250350"]] + y[["Tx_Na_200250"]] + y[["Tx_Na_100200"]] + y[["Tx_Na_50100"]] + y[["Tx_Na_50"]] + y[["Tx_A_500"]] + y[["Tx_A_350500"]] + y[["Tx_A_250350"]] + y[["Tx_A_200250"]] + y[["Tx_A_100200"]] + y[["Tx_A_50100"]] + y[["Tx_A_50"]] + y[["Ltfu_500"]] + y[["Ltfu_350500"]] + y[["Ltfu_250350"]] + y[["Ltfu_200250"]] + y[["Ltfu_100200"]] + y[["Ltfu_50100"]] + y[["Ltfu_50"]])
# Cumulative Stuff
# CumDiag now includes those initiating ART from UnDx (as they obviously get diagnosed too)
dCumDiag <-
(( # UnDx * THETA
((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * y[["UnDx_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * y[["UnDx_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * y[["UnDx_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * y[["UnDx_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * y[["UnDx_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * y[["UnDx_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * y[["UnDx_50"]])
) * parms[["Theta"]]) +
((y[["UnDx_500"]] +
y[["UnDx_350500"]] +
y[["UnDx_250350"]] +
y[["UnDx_200250"]] +
y[["UnDx_100200"]] +
y[["UnDx_50100"]] +
y[["UnDx_50"]]) * parms[["Rho"]])
# CumLink now includes those initiating ART from UnDx and Dx (as they obviously link too)
dCumLink <-
(( # UnDx * THETA
((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * y[["UnDx_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * y[["UnDx_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * y[["UnDx_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * y[["UnDx_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * y[["UnDx_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * y[["UnDx_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * y[["UnDx_50"]])
) * parms[["Theta"]]) +
(( # Dx * THETA
((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * y[["Dx_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * y[["Dx_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * y[["Dx_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * y[["Dx_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * y[["Dx_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * y[["Dx_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * y[["Dx_50"]])
) * parms[["Theta"]]) +
((y[["Dx_500"]] +
y[["Dx_350500"]] +
y[["Dx_250350"]] +
y[["Dx_200250"]] +
y[["Dx_100200"]] +
y[["Dx_50100"]] +
y[["Dx_50"]]) * (parms[["Epsilon"]] * parms[["q"]]))
# CumPreL now includes those that don't successfully link to care
dCumPreL <-
((y[["Dx_500"]] +
y[["Dx_350500"]] +
y[["Dx_250350"]] +
y[["Dx_200250"]] +
y[["Dx_100200"]] +
y[["Dx_50100"]] +
y[["Dx_50"]]) * (parms[["Epsilon"]] * (1-parms[["q"]]))) +
((y[["Care_500"]] +
y[["Care_350500"]] +
y[["Care_250350"]] +
y[["Care_200250"]] +
y[["Care_100200"]] +
y[["Care_50100"]] +
y[["Care_50"]]) * parms[["Kappa"]])
# Expanded CumInit to include those initiating ART through the side-door
dCumInit <-
(( # UnDx * THETA
((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * y[["UnDx_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * y[["UnDx_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * y[["UnDx_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * y[["UnDx_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * y[["UnDx_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * y[["UnDx_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * y[["UnDx_50"]])
) * parms[["Theta"]]) +
(( # Dx * THETA
((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * y[["Dx_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * y[["Dx_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * y[["Dx_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * y[["Dx_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * y[["Dx_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * y[["Dx_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * y[["Dx_50"]])
) * parms[["Theta"]]) +
(( # PreLtfu * THETA
((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * y[["PreLtfu_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * y[["PreLtfu_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * y[["PreLtfu_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * y[["PreLtfu_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * y[["PreLtfu_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * y[["PreLtfu_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * y[["PreLtfu_50"]])
) * parms[["Theta"]]) +
(( # Care * THETA
((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * y[["Care_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * y[["Care_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * y[["Care_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * y[["Care_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * y[["Care_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * y[["Care_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * y[["Care_50"]])
) * parms[["Theta"]]) +
(( # Care * GAMMA
((as.integer(ceiling(t)) >= parms[["t_1"]]) * y[["Care_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * y[["Care_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * y[["Care_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * y[["Care_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * y[["Care_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * y[["Care_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * y[["Care_50"]])
) * parms[["Gamma"]])
# Expanded to track all persons who initiate ART normally and become virally suppressed
dCumAdhr <-
# Sigma
((y[["Tx_Na_500"]] +
y[["Tx_Na_350500"]] +
y[["Tx_Na_250350"]] +
y[["Tx_Na_200250"]] +
y[["Tx_Na_100200"]] +
y[["Tx_Na_50100"]] +
y[["Tx_Na_50"]]) * parms[["Sigma"]]) +
(( # Gamma * p * CARE
((as.integer(ceiling(t)) >= parms[["t_1"]]) * y[["Care_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * y[["Care_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * y[["Care_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * y[["Care_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * y[["Care_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * y[["Care_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * y[["Care_50"]])
) * parms[["Gamma"]] * parms[["p"]]) +
(( # Theta * p * UnDx
((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * y[["UnDx_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * y[["UnDx_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * y[["UnDx_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * y[["UnDx_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * y[["UnDx_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * y[["UnDx_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * y[["UnDx_50"]])
) * parms[["Theta"]] * parms[["p"]]) +
(( # Theta * p * Dx
((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * y[["Dx_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * y[["Dx_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * y[["Dx_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * y[["Dx_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * y[["Dx_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * y[["Dx_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * y[["Dx_50"]])
) * parms[["Theta"]] * parms[["p"]]) +
(( # Theta * p * PreLtfu
((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * y[["PreLtfu_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * y[["PreLtfu_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * y[["PreLtfu_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * y[["PreLtfu_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * y[["PreLtfu_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * y[["PreLtfu_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * y[["PreLtfu_50"]])
) * parms[["Theta"]] * parms[["p"]]) +
(( # Theta * p * Care
((as.integer(ceiling(t)) >= parms[["t_1"]]) * parms[["s_1"]] * y[["Care_500"]]) +
((as.integer(ceiling(t)) >= parms[["t_2"]]) * parms[["s_2"]] * y[["Care_350500"]]) +
((as.integer(ceiling(t)) >= parms[["t_3"]]) * parms[["s_3"]] * y[["Care_250350"]]) +
((as.integer(ceiling(t)) >= parms[["t_4"]]) * parms[["s_4"]] * y[["Care_200250"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_5"]] * y[["Care_100200"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_6"]] * y[["Care_50100"]]) +
((as.integer(ceiling(t)) >= parms[["t_5"]]) * parms[["s_7"]] * y[["Care_50"]])
) * parms[["Theta"]] * parms[["p"]])
dCumLoss <-
(y[["Tx_Na_500"]] +
y[["Tx_Na_350500"]] +
y[["Tx_Na_250350"]] +
y[["Tx_Na_200250"]] +
y[["Tx_Na_100200"]] +
y[["Tx_Na_50100"]] +
y[["Tx_Na_50"]] +
y[["Tx_A_500"]] +
y[["Tx_A_350500"]] +
y[["Tx_A_250350"]] +
y[["Tx_A_200250"]] +
y[["Tx_A_100200"]] +
y[["Tx_A_50100"]] +
y[["Tx_A_50"]]) * parms[["Omega"]]
# Costs
dDx_Cost <- (parms[["Rho"]] * (y[["UnDx_500"]] + y[["UnDx_350500"]] + y[["UnDx_250350"]] + y[["UnDx_200250"]] + y[["UnDx_100200"]] + y[["UnDx_50100"]] + y[["UnDx_50"]])) * parms[["Dx_unitCost"]]
dLinkage_Cost <- ((parms[["q"]] * parms[["Epsilon"]]) * (y[["Dx_500"]] + y[["Dx_350500"]] + y[["Dx_250350"]] + y[["Dx_200250"]] + y[["Dx_100200"]] + y[["Dx_50100"]] + y[["Dx_50"]])) * parms[["Linkage_unitCost"]]
dAnnual_Care_Cost <- (y[["Care_500"]] + y[["Care_350500"]] + y[["Care_250350"]] + y[["Care_200250"]] + y[["Care_100200"]] + y[["Care_50100"]] + y[["Care_50"]]) * parms[["Annual_Care_unitCost"]]
dAnnual_ART_Cost <- (y[["Tx_Na_500"]] + y[["Tx_Na_350500"]] + y[["Tx_Na_250350"]] + y[["Tx_Na_200250"]] + y[["Tx_Na_100200"]] + y[["Tx_Na_50100"]] + y[["Tx_Na_50"]] + y[["Tx_A_500"]] + y[["Tx_A_350500"]] + y[["Tx_A_250350"]] + y[["Tx_A_200250"]] + y[["Tx_A_100200"]] + y[["Tx_A_50100"]] + y[["Tx_A_50"]]) * parms[["Annual_ART_unitCost"]]
list(c(
dUnDx_500,
dUnDx_350500,
dUnDx_250350,
dUnDx_200250,
dUnDx_100200,
dUnDx_50100,
dUnDx_50,
dDx_500,
dDx_350500,
dDx_250350,
dDx_200250,
dDx_100200,
dDx_50100,
dDx_50,
dCare_500,
dCare_350500,
dCare_250350,
dCare_200250,
dCare_100200,
dCare_50100,
dCare_50,
dPreLtfu_500,
dPreLtfu_350500,
dPreLtfu_250350,
dPreLtfu_200250,
dPreLtfu_100200,
dPreLtfu_50100,
dPreLtfu_50,
dTx_Na_500,
dTx_Na_350500,
dTx_Na_250350,
dTx_Na_200250,
dTx_Na_100200,
dTx_Na_50100,
dTx_Na_50,
dTx_A_500,
dTx_A_350500,
dTx_A_250350,
dTx_A_200250,
dTx_A_100200,
dTx_A_50100,
dTx_A_50,
dLtfu_500,
dLtfu_350500,
dLtfu_250350,
dLtfu_200250,
dLtfu_100200,
dLtfu_50100,
dLtfu_50,
dNewInf,
dHivMortality,
dNaturalMortality,
dCumDiag,
dCumLink,
dCumPreL,
dCumInit,
dCumAdhr,
dCumLoss,
dDx_Cost,
dLinkage_Cost,
dAnnual_Care_Cost,
dAnnual_ART_Cost))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.