// vim: sw=4 ts=2 sta et #include #include #include #include /* life insurance calculation */ #define MAXAGE 100 static double mortality_male[MAXAGE + 1] = { 0.00744, 0.00046, 0.00031, 0.00022, 0.00019, 0.00020, 0.00020, 0.00018, 0.00017, 0.00017 , 0.00017, 0.00018, 0.00019, 0.00023, 0.00029, 0.00036, 0.00046, 0.00059, 0.00075, 0.00090 , 0.00103, 0.00111, 0.00114, 0.00113, 0.00112, 0.00115, 0.00120, 0.00126, 0.00132, 0.00139 , 0.00147, 0.00158, 0.00171, 0.00187, 0.00205, 0.00224, 0.00244, 0.00264, 0.00287, 0.00313 , 0.00344, 0.00381, 0.00427, 0.00478, 0.00535, 0.00596, 0.00659, 0.00725, 0.00793, 0.00867 , 0.00946, 0.01030, 0.01119, 0.01211, 0.01306, 0.01402, 0.01503, 0.01613, 0.01733, 0.01865 , 0.02008, 0.02162, 0.02326, 0.02500, 0.02687, 0.02889, 0.03105, 0.03340, 0.03592, 0.03864 , 0.04159, 0.04479, 0.04824, 0.05197, 0.05597, 0.06034, 0.06513, 0.07049, 0.07668, 0.08373 , 0.09149, 0.09993, 0.10823, 0.11645, 0.12476, 0.13228, 0.14256, 0.15356, 0.16530, 0.17781 , 0.19112, 0.20526, 0.22024, 0.23608, 0.25279, 0.27037, 0.28883, 0.30816, 0.32834, 0.34935 , 0.37116 }; static double mortality_female[MAXAGE + 1] = { 0.00615, 0.00033, 0.00024, 0.00018, 0.00016, 0.00014, 0.00012, 0.00011, 0.00011, 0.00012 , 0.00012, 0.00012, 0.00013, 0.00015, 0.00018, 0.00023, 0.00027, 0.00028, 0.00027, 0.00028 , 0.00029, 0.00029, 0.00027, 0.00026, 0.00026, 0.00028, 0.00030, 0.00032, 0.00035, 0.00037 , 0.00040, 0.00043, 0.00046, 0.00050, 0.00055, 0.00060, 0.00067, 0.00075, 0.00085, 0.00097 , 0.00112, 0.00129, 0.00148, 0.00169, 0.00191, 0.00214, 0.00237, 0.00263, 0.00290, 0.00319 , 0.00351, 0.00384, 0.00418, 0.00453, 0.00489, 0.00527, 0.00568, 0.00611, 0.00657, 0.00706 , 0.00758, 0.00815, 0.00880, 0.00953, 0.01036, 0.01131, 0.01238, 0.01360, 0.01501, 0.01666 , 0.01856, 0.02076, 0.02323, 0.02603, 0.02921, 0.03282, 0.03695, 0.04171, 0.04724, 0.05357 , 0.06060, 0.06840, 0.07650, 0.08499, 0.09402, 0.10310, 0.11440, 0.12669, 0.14002, 0.15444 , 0.16997, 0.18666, 0.20452, 0.22357, 0.24383, 0.26527, 0.28789, 0.31166, 0.33653, 0.36245 , 0.38934 }; #define GENDER_MALE 0 #define GENDER_FEMALE 1 static double *mortality[] ={ mortality_male, mortality_female }; static double vn_precomputed[MAXAGE]; typedef struct { double abw; double ebw; double rbw; } struct_barwert_result; typedef struct { double irate; /* indizes: gender (0/1), age (0..130), duration (0..50) */ struct_barwert_result results[2][131][51]; } struct_barwert_addrisk0_cache; static struct_barwert_addrisk0_cache barwert_caches[2]; static int isBarwertPrecomputed=0; static void precompute_vn_irate(double irate, int n) { int i; for (i=0; i<=n; i++) { vn_precomputed[i] = 1 / pow(1 + irate, (double) i); } } static double vn(int n) { return vn_precomputed[n]; } static double qx(int x, int gender, double addrisk) { double q = x>100 ? 1 : (mortality[gender][x] + addrisk); return q > 1 ? 1 : q; } static double qx_addrisk0(int x, int gender) { return mortality[gender][x]; } static void barwert_n0(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { *abw=0; *rbw=0; *ebw=1; } static void barwert_n1(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n2(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n3(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n4(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n5(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n6(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n7(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n8(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n9(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n10(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n11(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n12(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n13(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n14(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n15(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n16(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n17(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n18(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n19(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n20(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n21(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n22(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n23(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n24(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n25(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n26(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n27(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n28(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n29(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n30(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n31(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n32(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n33(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n34(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n35(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n36(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n37(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n38(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n39(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==38 */ vn1 = vn(39); q = qx(x+38, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n40(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==38 */ vn1 = vn(39); q = qx(x+38, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==39 */ vn0 = vn(40); q = qx(x+39, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n41(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==38 */ vn1 = vn(39); q = qx(x+38, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==39 */ vn0 = vn(40); q = qx(x+39, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==40 */ vn1 = vn(41); q = qx(x+40, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n42(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==38 */ vn1 = vn(39); q = qx(x+38, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==39 */ vn0 = vn(40); q = qx(x+39, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==40 */ vn1 = vn(41); q = qx(x+40, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==41 */ vn0 = vn(42); q = qx(x+41, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n43(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==38 */ vn1 = vn(39); q = qx(x+38, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==39 */ vn0 = vn(40); q = qx(x+39, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==40 */ vn1 = vn(41); q = qx(x+40, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==41 */ vn0 = vn(42); q = qx(x+41, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==42 */ vn1 = vn(43); q = qx(x+42, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n44(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==38 */ vn1 = vn(39); q = qx(x+38, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==39 */ vn0 = vn(40); q = qx(x+39, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==40 */ vn1 = vn(41); q = qx(x+40, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==41 */ vn0 = vn(42); q = qx(x+41, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==42 */ vn1 = vn(43); q = qx(x+42, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==43 */ vn0 = vn(44); q = qx(x+43, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n45(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==38 */ vn1 = vn(39); q = qx(x+38, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==39 */ vn0 = vn(40); q = qx(x+39, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==40 */ vn1 = vn(41); q = qx(x+40, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==41 */ vn0 = vn(42); q = qx(x+41, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==42 */ vn1 = vn(43); q = qx(x+42, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==43 */ vn0 = vn(44); q = qx(x+43, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==44 */ vn1 = vn(45); q = qx(x+44, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n46(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==38 */ vn1 = vn(39); q = qx(x+38, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==39 */ vn0 = vn(40); q = qx(x+39, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==40 */ vn1 = vn(41); q = qx(x+40, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==41 */ vn0 = vn(42); q = qx(x+41, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==42 */ vn1 = vn(43); q = qx(x+42, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==43 */ vn0 = vn(44); q = qx(x+43, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==44 */ vn1 = vn(45); q = qx(x+44, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==45 */ vn0 = vn(46); q = qx(x+45, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n47(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==38 */ vn1 = vn(39); q = qx(x+38, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==39 */ vn0 = vn(40); q = qx(x+39, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==40 */ vn1 = vn(41); q = qx(x+40, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==41 */ vn0 = vn(42); q = qx(x+41, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==42 */ vn1 = vn(43); q = qx(x+42, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==43 */ vn0 = vn(44); q = qx(x+43, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==44 */ vn1 = vn(45); q = qx(x+44, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==45 */ vn0 = vn(46); q = qx(x+45, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==46 */ vn1 = vn(47); q = qx(x+46, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n48(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==38 */ vn1 = vn(39); q = qx(x+38, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==39 */ vn0 = vn(40); q = qx(x+39, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==40 */ vn1 = vn(41); q = qx(x+40, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==41 */ vn0 = vn(42); q = qx(x+41, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==42 */ vn1 = vn(43); q = qx(x+42, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==43 */ vn0 = vn(44); q = qx(x+43, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==44 */ vn1 = vn(45); q = qx(x+44, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==45 */ vn0 = vn(46); q = qx(x+45, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==46 */ vn1 = vn(47); q = qx(x+46, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==47 */ vn0 = vn(48); q = qx(x+47, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert_n49(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==38 */ vn1 = vn(39); q = qx(x+38, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==39 */ vn0 = vn(40); q = qx(x+39, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==40 */ vn1 = vn(41); q = qx(x+40, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==41 */ vn0 = vn(42); q = qx(x+41, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==42 */ vn1 = vn(43); q = qx(x+42, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==43 */ vn0 = vn(44); q = qx(x+43, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==44 */ vn1 = vn(45); q = qx(x+44, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==45 */ vn0 = vn(46); q = qx(x+45, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==46 */ vn1 = vn(47); q = qx(x+46, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==47 */ vn0 = vn(48); q = qx(x+47, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==48 */ vn1 = vn(49); q = qx(x+48, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* ebw */ *ebw = p * vn1; } static void barwert_n50(int x, int gender, double irate, double addrisk, double *abw, double *ebw, double *rbw) { double p, q, vn0, vn1; /* i==0 */ vn1 = vn(1); q = qx(x, gender, addrisk); *abw = q * vn1; *rbw = 1; p = (1-q); /* i==1 */ vn0 = vn(2); q = qx(x+1, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==2 */ vn1 = vn(3); q = qx(x+2, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==3 */ vn0 = vn(4); q = qx(x+3, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==4 */ vn1 = vn(5); q = qx(x+4, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==5 */ vn0 = vn(6); q = qx(x+5, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==6 */ vn1 = vn(7); q = qx(x+6, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==7 */ vn0 = vn(8); q = qx(x+7, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==8 */ vn1 = vn(9); q = qx(x+8, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==9 */ vn0 = vn(10); q = qx(x+9, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==10 */ vn1 = vn(11); q = qx(x+10, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==11 */ vn0 = vn(12); q = qx(x+11, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==12 */ vn1 = vn(13); q = qx(x+12, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==13 */ vn0 = vn(14); q = qx(x+13, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==14 */ vn1 = vn(15); q = qx(x+14, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==15 */ vn0 = vn(16); q = qx(x+15, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==16 */ vn1 = vn(17); q = qx(x+16, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==17 */ vn0 = vn(18); q = qx(x+17, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==18 */ vn1 = vn(19); q = qx(x+18, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==19 */ vn0 = vn(20); q = qx(x+19, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==20 */ vn1 = vn(21); q = qx(x+20, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==21 */ vn0 = vn(22); q = qx(x+21, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==22 */ vn1 = vn(23); q = qx(x+22, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==23 */ vn0 = vn(24); q = qx(x+23, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==24 */ vn1 = vn(25); q = qx(x+24, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==25 */ vn0 = vn(26); q = qx(x+25, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==26 */ vn1 = vn(27); q = qx(x+26, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==27 */ vn0 = vn(28); q = qx(x+27, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==28 */ vn1 = vn(29); q = qx(x+28, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==29 */ vn0 = vn(30); q = qx(x+29, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==30 */ vn1 = vn(31); q = qx(x+30, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==31 */ vn0 = vn(32); q = qx(x+31, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==32 */ vn1 = vn(33); q = qx(x+32, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==33 */ vn0 = vn(34); q = qx(x+33, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==34 */ vn1 = vn(35); q = qx(x+34, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==35 */ vn0 = vn(36); q = qx(x+35, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==36 */ vn1 = vn(37); q = qx(x+36, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==37 */ vn0 = vn(38); q = qx(x+37, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==38 */ vn1 = vn(39); q = qx(x+38, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==39 */ vn0 = vn(40); q = qx(x+39, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==40 */ vn1 = vn(41); q = qx(x+40, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==41 */ vn0 = vn(42); q = qx(x+41, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==42 */ vn1 = vn(43); q = qx(x+42, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==43 */ vn0 = vn(44); q = qx(x+43, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==44 */ vn1 = vn(45); q = qx(x+44, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==45 */ vn0 = vn(46); q = qx(x+45, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==46 */ vn1 = vn(47); q = qx(x+46, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==47 */ vn0 = vn(48); q = qx(x+47, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* i==48 */ vn1 = vn(49); q = qx(x+48, gender, addrisk); *abw += p * q * vn1; *rbw += p * vn0; p *= (1-q); /* i==49 */ vn0 = vn(50); q = qx(x+49, gender, addrisk); *abw += p * q * vn0; *rbw += p * vn1; p *= (1-q); /* ebw */ *ebw = p * vn0; } static void barwert(int x, int gender, double irate, double addrisk, int n, double *abw, double *ebw, double *rbw) { switch(n) { case 0: barwert_n0 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 1: barwert_n1 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 2: barwert_n2 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 3: barwert_n3 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 4: barwert_n4 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 5: barwert_n5 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 6: barwert_n6 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 7: barwert_n7 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 8: barwert_n8 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 9: barwert_n9 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 10: barwert_n10 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 11: barwert_n11 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 12: barwert_n12 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 13: barwert_n13 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 14: barwert_n14 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 15: barwert_n15 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 16: barwert_n16 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 17: barwert_n17 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 18: barwert_n18 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 19: barwert_n19 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 20: barwert_n20 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 21: barwert_n21 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 22: barwert_n22 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 23: barwert_n23 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 24: barwert_n24 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 25: barwert_n25 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 26: barwert_n26 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 27: barwert_n27 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 28: barwert_n28 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 29: barwert_n29 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 30: barwert_n30 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 31: barwert_n31 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 32: barwert_n32 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 33: barwert_n33 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 34: barwert_n34 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 35: barwert_n35 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 36: barwert_n36 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 37: barwert_n37 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 38: barwert_n38 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 39: barwert_n39 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 40: barwert_n40 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 41: barwert_n41 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 42: barwert_n42 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 43: barwert_n43 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 44: barwert_n44 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 45: barwert_n45 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 46: barwert_n46 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 47: barwert_n47 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 48: barwert_n48 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 49: barwert_n49 (x, gender, irate, addrisk, abw, ebw, rbw); return; case 50: barwert_n50 (x, gender, irate, addrisk, abw, ebw, rbw); return; } } static void barwert_addrisk0(int x, int gender, double irate, int n, double *abw, double *ebw, double *rbw) { int i; double p=1; double q; *abw = 0; *rbw = 0; int over100 = (MAXAGE + 1) - x; int top = over100 < n ? over100 : n; /* nAx, aexn */ for (i=0; i < top; i++) { q = qx_addrisk0(x+i, gender); *abw += p * q * vn(i+1); *rbw += p * vn(i); p *= (1-q); } // skip loop until `n', because in the next steps `p' would be zero anyways if (i < n) { *abw += p * vn(i+1); *rbw += p * vn(i); p = 0; } /* nEx */ *ebw = p * vn(n); } static void barwert_addrisk0_fromCache(int x, int gender, double irate, int n, double *abw, double *ebw, double *rbw) { int ind_cache; struct_barwert_addrisk0_cache *pcache; struct_barwert_result *presult; for (ind_cache=0; ind_cache<2; ind_cache++) { pcache = &barwert_caches[ind_cache]; if (pcache->irate==irate) { presult = &(pcache->results[gender][x][n]); *abw = presult->abw; *ebw = presult->ebw; *rbw = presult->rbw; return; } } precompute_vn_irate(irate, n); barwert_addrisk0(x, gender, irate, n, abw, ebw, rbw); } static void precompute_barwert_addrisk0() { int ind_cache; double irate_arr[2] = { 0.025, 0.035 }; double irate; struct_barwert_addrisk0_cache *pcache; struct_barwert_result *presults; int gender, age, n; for (ind_cache=0; ind_cache<2; ind_cache++) { pcache = &(barwert_caches[ind_cache]); irate = irate_arr[ind_cache]; pcache->irate = irate; precompute_vn_irate(irate, MAXAGE-1); for (gender=0; gender<=1; gender++) { for (age=0; age<=130; age++) { for (n=0; n<=50; n++) { presults = &(pcache->results[gender][age][n]); barwert_addrisk0(age, gender, irate, n, &(presults->abw), &(presults->ebw), &(presults->rbw)); } } } } } static double doit_common(int gender, int age, int n, double irate, double addrisk, double vsum, double* res_out) { int t; double gamma = 0.004; double alpha = 0.02; double res; double abw, ebw, rbw; double premnorm; double prem; double totalsum; precompute_vn_irate(irate, n); barwert(age, gender, irate, addrisk, n, &abw, &ebw, &rbw); /* compute premium */ premnorm = (abw + ebw + gamma*rbw) / (rbw - alpha); prem = vsum * premnorm; totalsum = prem; /* compute reserve values over time */ for (t=0; t<=n; t++) { barwert(age+t, gender, irate, addrisk, n-t, &abw, &ebw, &rbw); res = abw + ebw; if (t1e9) { fprintf(stdout, "reset, i=%d, totalsum=%.15Lf\n", i, totalsum); totalsum=0; } totalsum += ret; } totalsum += doit(0, 50, 50, 0.04, 0.70, 100000, res); totalsum += doit(1, 60, 50, 0.02, 0.69, 100000, res); totalsum += doit(1, 0, 40, 0.03, 0.0, 100000, res); clockEnd = clock(); fprintf(stdout, "totalsum = %.15Lf\n", totalsum); fprintf(stderr, "totalsum = %.15Lf\n", totalsum); fprintf(stderr, "took %ld ms\n", (clockEnd - clockStart) / (CLOCKS_PER_SEC / 1000)); return 0; }