R Under development (unstable) (2024-09-28 r87201 ucrt) -- "Unsuffered Consequences" Copyright (C) 2024 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > #__________________________________________________ > #test file > > require(lifecontingencies) Loading required package: lifecontingencies Package: lifecontingencies Authors: Giorgio Alfredo Spedicato [aut, cre] (), Christophe Dutang [ctb] (), Reinhold Kainhofer [ctb] (), Kevin J Owens [ctb], Ernesto Schirmacher [ctb], Gian Paolo Clemente [ctb] (), Ivan Williams [ctb] Version: 1.3.12 Date: BugReport: https://github.com/spedygiorgio/lifecontingencies/issues > > #__________________________________________________ > > > tol <- (.Machine$double.eps)^(1/3) > > > #see file R/testfunc-financial.R > > getrentest <- lifecontingencies:::getrentest > > getcapitalst <- lifecontingencies:::getcapitalst > > getrentestthly <- lifecontingencies:::getrentestthly > > getcapitalstthly <- lifecontingencies:::getcapitalstthly > > > #US life table 1979-1981 p 60 Actuarial mathematics > x <- 0:109 > lx <- c(100000, + 98000+ c(740, 648, 584, 535, 495, 459, 426, 396, 370, 347, 328, 309, 285, 248, 196, 129, 047), + 97000+ c(953, 851, 741, 623, 499, 370, 240, 110), + 96000+ c(982, 856, 730, 604, 477, 350, 220, 88), + 95000+ c(951, 808, 655, 492, 317, 129), + 94000+ c(926, 706, 465, 201), + 93000+ c(913, 599, 256), + 92000+ c(882, 472, 21), 91526, 90986, 90402, 89771, 89087, 88348, 87551, 86695, 85776, 84789, + 83726, 82726, 81348, 80024, 78609, 77107, 75520, 73846, 72082, 70218, 68248, 66165, 63972, 61673, + 59279, 56799, 54239, 51599, 48878, 46071, 43180, 40208, 37172, 34095, 31012, 27960, 24961, 22038, + 19235, 16598, 14154, 11908, 9863, 8032, 6424, 5043, 3884, 2939, 2185, 1598, 1150, 815, 570, 393, + 267, 179, 119, 78, 51, 33) > > usLT7981 <- data.frame(x=x, lx=lx) > USLT7981 <- new("lifetable", x=x, lx=lx) > > > > #__________________________________________________ > #death capital life insurance > > i <- 3/100 > x <- 10 > m <- 0 > n <- 10 > > #defered of m period, temporary of n period at age x > stopifnot( + sum( + sapply(c(0, 5, 10, 15, 20, 25, 30), function(x) + sapply(1:10, function(m) + sum(abs( + sapply(1:10, function(n) + getcapitalst(usLT7981$lx, x=x, K=1, nu=1/(1+i), s=m, t=n) - Axn(USLT7981, x=x, n=n, m=m, k=1, i=i) + ))) + )) + )< tol + ) > > #__________________________________________________ > #death capital life insurance (monthly) > > > i <- 3/100 > x <- 0 > m <- 0 > n <- 1 > > sum( + sapply(c(0, 5, 10, 15, 20, 25, 30), function(x) + abs( + getcapitalstthly(usLT7981$lx, x=x, K=1, nu=1/(1+i), s=m, t=n, k=12, frac="linear") - Axn(USLT7981, x=x, n=n, m=m, k=12, i=i) + ) + ) + )< tol [1] FALSE > > #__________________________________________________ > #annuity life insurance (monthly) > > > i <- 3/100 > x <- 20 > m <- 0 > n <- 2 > > #anticipated > sum( + sapply(1:10, function(m) + sapply(1:10, function(n) + abs(getrentestthly(usLT7981$lx, x=x, R=1, nu=1/(1+i), s=m, t=n, k=12, frac="linear", anticipated=TRUE) - axn(USLT7981, x=x, n=n, m=m, k=12, i=i, pay="due") ) + ) + ) + )< tol [1] TRUE > > > #delayed > sum(abs( + sapply(1:10, function(m) + sapply(1:10, function(n) + getrentestthly(usLT7981$lx, x=x, R=1, nu=1/(1+i), s=m, t=n, k=12, frac="linear", anticipated=FALSE) - axn(USLT7981, x=x, n=n, m=m, k=12, i=i, pay="immediate") + ) + ) + )) < tol [1] FALSE > > > > proc.time() user system elapsed 2.37 0.23 2.59