Example #1
0
void CODECHECK_partnerships(Population &P)
{
	
	// --- Formation: age
	
	vector<double> age = vector_seq(9.0, 80.0, 200);
	vector<double> fage(age.size());
	
	for (int i=0; i<age.size(); i++) {
		fage[i] = P.form_age(age[i]);
	}
	
	dcMatrix Mfage(age);
	Mfage.addColVector(fage);
	Mfage.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_prtnr_form_age.out");
	
	
	// --- Formation: age gap
	
	vector<double> gap = vector_seq(-30, 50, 200);
	vector<double> fagegap(gap.size());
	
	for (int i=0; i<gap.size(); i++) {
		fagegap[i] = P.form_ageGap(gap[i]);
	}
	
	dcMatrix Mgap(gap);
	Mgap.addColVector(fagegap);
	Mgap.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_prtnr_form_agegap.out");

	
	// --- Formation: risk group
	
	int rmx = P.get_maxRiskGroup();
	vector<double> r1;
	vector<double> r2;
	vector<double> frisk;
	
	for (int i=0; i<=rmx; i++)
	{
		for (int j=0; j<=rmx; j++)
		{
			r1.push_back(i);
			r2.push_back(j);
			frisk.push_back(P.form_riskGroup(i, j));
		}
	}
	dcMatrix Mfrisk(r1);
	Mfrisk.addColVector(r2);
	Mfrisk.addColVector(frisk);
	Mfrisk.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_prtnr_form_risk.out");

	
	// --- Formation: deficit
	
	vector<double> x1 = vector_seq(0.0, 1.0, 10);
	vector<double> x2 = vector_seq(0.0, 1.0, 10);
	
	vector<double> fdeficit;
	vector<double> xx1;
	vector<double> xx2;
	
	
	for (int i=0; i<x1.size(); i++)
	{
		for (int j=0; j<x2.size(); j++)
		{
			xx1.push_back(x1[i]);
			xx2.push_back(x2[j]);
			fdeficit.push_back(P.form_deficit(x1[i], x2[j]));
		}
	}
	dcMatrix Mfdeficit(xx1);
	Mfdeficit.addColVector(xx2);
	Mfdeficit.addColVector(fdeficit);
	Mfdeficit.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_prtnr_form_deficit.out");
	
	
	
	// --- Spousal progress: age and age gap
	
	vector<double> agef = vector_seq(10.0, 80.0, 50);
	vector<double> agegap = vector_seq(-30, 50, 50);
	
	vector<double> sp_age;
	vector<double> agef_;
	vector<double> agegap_;
	
	
	for (int i=0; i<agef.size(); i++)
	{
		for (int j=0; j<agegap.size(); j++)
		{
			agef_.push_back(agef[i]);
			agegap_.push_back(agegap[j]);
			
			double s = expGauss(agef[i],P.get_spousalProgress_meanAge_f(), P.get_spousalProgress_varAge_f())
			*expGauss(agegap_[j],P.get_spousalProgress_meanGap(), P.get_spousalProgress_varGap());
			
			sp_age.push_back(s);
		}
	}
	dcMatrix Msp_age(agef_);
	Msp_age.addColVector(agegap_);
	Msp_age.addColVector(sp_age);
	Msp_age.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_prtnr_sp_age.out");
	
	
	// --- Dissolution: age
	
	vector<double> dage;
	vector<double> age_1;
	vector<double> age_2;
	
	for (int i=0; i<age.size(); i++) {
		for (int j=0; j<age.size(); j++)
		{
			age_1.push_back(age[i]);
			age_2.push_back(age[j]);
			dage.push_back(P.dissolve_age_fct(age[i],age[j]));
		}
		
	}
	
	dcMatrix Dage(age_1);
	Dage.addColVector(age_2);
	Dage.addColVector(dage);
	Dage.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_prtnr_dissol_age.out");
	
	
	// --- Dissolution: risk group
	
	r1.clear();
	r2.clear();
	vector<double> drisk;
	
	for (int i=0; i<=rmx; i++)
	{
		for (int j=0; j<=rmx; j++)
		{
			r1.push_back(i);
			r2.push_back(j);
			drisk.push_back(P.dissolve_riskGroup_fct(i, j));
		}
	}
	dcMatrix Dfrisk(r1);
	Dfrisk.addColVector(r2);
	Dfrisk.addColVector(drisk);
	Dfrisk.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_prtnr_dissol_risk.out");
	
	
	// --- Dissolution: partnership duration
	
	vector<double> pdur = vector_seq(0.0,70.0, 200);
	vector<double> ddur(age.size());
	
	for (int i=0; i<pdur.size(); i++) {
		ddur[i] = P.dissolve_duration_fct(pdur[i]);
	}
	
	dcMatrix Dpdur(pdur);
	Dpdur.addColVector(ddur);
	Dpdur.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_prtnr_dissol_pduration.out");
	
	
	// --- Dissolution: deficit
	
	
	vector<double> ddeficit;
	xx1.clear();
	xx2.clear();
	
	
	for (int i=0; i<x1.size(); i++)
	{
		for (int j=0; j<x2.size(); j++)
		{
			xx1.push_back(x1[i]);
			xx2.push_back(x2[j]);
			ddeficit.push_back(P.dissolve_partnerDeficit_fct(x1[i], x2[j]));
		}
	}
	dcMatrix Ddeficit(xx1);
	Ddeficit.addColVector(xx2);
	Ddeficit.addColVector(ddeficit);
	Ddeficit.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_prtnr_dissol_deficit.out");
	
}