https://github.com/PublicHealthDynamicsLab/FRED
Revision a45e04ad99c865724a3c2b1a2d3fd979b3c6be88 authored by John Grefenstette on 07 January 2016, 16:32:02 UTC, committed by John Grefenstette on 07 January 2016, 16:32:02 UTC
1 parent 9bc2dce
Tip revision: a45e04ad99c865724a3c2b1a2d3fd979b3c6be88 authored by John Grefenstette on 07 January 2016, 16:32:02 UTC
working markov epidemic model
working markov epidemic model
Tip revision: a45e04a
Vaccine_Dose.cc
/*
This file is part of the FRED system.
Copyright (c) 2010-2015, University of Pittsburgh, John Grefenstette,
Shawn Brown, Roni Rosenfield, Alona Fyshe, David Galloway, Nathan
Stone, Jay DePasse, Anuroop Sriram, and Donald Burke.
Licensed under the BSD 3-Clause license. See the file "LICENSE" for
more information.
*/
//
//
// File: VaccineDose.cc
//
#include <stdio.h>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
#include "Vaccine_Dose.h"
#include "Random.h"
Vaccine_Dose::Vaccine_Dose(Age_Map* _efficacy, Age_Map* _efficacy_delay,
Age_Map* _efficacy_duration, int _days_between_doses){
efficacy = _efficacy;
efficacy_delay = _efficacy_delay;
efficacy_duration = _efficacy_duration;
days_between_doses = _days_between_doses;
}
Vaccine_Dose::~Vaccine_Dose(){
if (efficacy) delete efficacy;
if (efficacy_delay) delete efficacy_delay;
}
void Vaccine_Dose::print() const {
cout << "Time Between Doses:\t " << days_between_doses << "\n";
efficacy->print();
efficacy_delay->print();
efficacy_duration->print();
}
bool Vaccine_Dose::is_within_age(double real_age) const {
double eff = efficacy->find_value(real_age);
// printf("age = %.1f eff = %f\n", real_age, eff);
if(eff != 0.0){
return true;
}
return false;
}
double Vaccine_Dose::get_duration_of_immunity(double real_age) {
double expected_duration = efficacy_duration->find_value(real_age);
// select a value from an exponential distribution with mean expected_duration
double actual_duration = 0.0;
if (expected_duration > 0.0) {
actual_duration = Random::draw_exponential(1.0 / expected_duration);
}
return actual_duration;
}
Computing file changes ...