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"); }