R Under development (unstable) (2026-05-11 r90046) -- "Unsuffered Consequences" Copyright (C) 2026 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu 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. Natural language support but running in an English locale 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. > pkgname <- "dsem" > source(file.path(R.home("share"), "R", "examples-header.R")) > options(warn = 1) > library('dsem') > > base::assign(".oldSearch", base::search(), pos = 'CheckExEnv') > base::assign(".old_wd", base::getwd(), pos = 'CheckExEnv') > cleanEx() > nameEx("dsem") > ### * dsem > > flush(stderr()); flush(stdout()) > > ### Name: dsem > ### Title: Fit dynamic structural equation model > ### Aliases: dsem > > ### ** Examples > > # Define model > sem = " + # Link, lag, param_name + cprofits -> consumption, 0, a1 + cprofits -> consumption, 1, a2 + pwage -> consumption, 0, a3 + gwage -> consumption, 0, a3 + cprofits -> invest, 0, b1 + cprofits -> invest, 1, b2 + capital -> invest, 0, b3 + gnp -> pwage, 0, c2 + gnp -> pwage, 1, c3 + time -> pwage, 0, c1 + " > > # Load data > data(KleinI, package="AER") > TS = ts(data.frame(KleinI, "time"=time(KleinI) - 1931)) > tsdata = TS[,c("time","gnp","pwage","cprofits",'consumption', + "gwage","invest","capital")] > > # Fit model > fit = dsem( sem=sem, + tsdata = tsdata, + estimate_delta0 = TRUE, + control = dsem_control(quiet=TRUE) ) /data/gannet/ripley/R/test-clang/TMB/include/convert.hpp:139:23: runtime error: nan is outside the range of representable values of type 'int' #0 0x7f6ea4f3ca56 in tmbutils::matrix asMatrix(SEXPREC*) /data/gannet/ripley/R/test-clang/TMB/include/convert.hpp:139:23 #1 0x7f6ea50492e4 in objective_function::operator()() /data/gannet/ripley/R/packages/tests-clang-UBSAN/dsem/src/dsem.cpp:92:3 #2 0x7f6ea4c9721e in getParameterOrder /data/gannet/ripley/R/test-clang/TMB/include/tmb_core.hpp:2065:7 #3 0x55592fe510c5 in R_doDotCall (/data/gannet/ripley/R/R-clang/bin/exec/R+0x8f0c5) #4 0x55592fe5327d in do_dotcall (/data/gannet/ripley/R/R-clang/bin/exec/R+0x9127d) #5 0x55592fe91b73 in bcEval_loop eval.c #6 0x55592fe8b13b in bcEval eval.c #7 0x55592fe8a8f4 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0xc88f4) #8 0x55592fea2a58 in R_execClosure eval.c #9 0x55592fea1f4a in applyClosure_core eval.c #10 0x55592fe8b816 in Rf_applyClosure (/data/gannet/ripley/R/R-clang/bin/exec/R+0xc9816) #11 0x55592fe8ad47 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0xc8d47) #12 0x55592fea7db7 in do_set (/data/gannet/ripley/R/R-clang/bin/exec/R+0xe5db7) #13 0x55592fe8ab1f in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0xc8b1f) #14 0x55592fed7f37 in Rf_ReplIteration (/data/gannet/ripley/R/R-clang/bin/exec/R+0x115f37) #15 0x55592fed9a3e in run_Rmainloop (/data/gannet/ripley/R/R-clang/bin/exec/R+0x117a3e) #16 0x55592fed9aaa in Rf_mainloop (/data/gannet/ripley/R/R-clang/bin/exec/R+0x117aaa) #17 0x55592fdc3db7 in main (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1db7) #18 0x7f6eb8911574 in __libc_start_call_main (/lib64/libc.so.6+0x3574) (BuildId: 92b5376d35bb29c098175948cf3e7cbcae3aeae1) #19 0x7f6eb8911627 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x3627) (BuildId: 92b5376d35bb29c098175948cf3e7cbcae3aeae1) #20 0x55592fdc3cd4 in _start (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1cd4) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /data/gannet/ripley/R/test-clang/TMB/include/convert.hpp:139:23 > summary( fit ) path lag name start parameter first 1 cprofits -> consumption 0 a1 NA 1 cprofits 2 cprofits -> consumption 1 a2 NA 2 cprofits 3 pwage -> consumption 0 a3 NA 3 pwage 4 gwage -> consumption 0 a3 NA 3 gwage 5 cprofits -> invest 0 b1 NA 4 cprofits 6 cprofits -> invest 1 b2 NA 5 cprofits 7 capital -> invest 0 b3 NA 6 capital 8 gnp -> pwage 0 c2 NA 7 gnp 9 gnp -> pwage 1 c3 NA 8 gnp 10 time -> pwage 0 c1 NA 9 time 11 time <-> time 0 V[time] NA 10 time 12 gnp <-> gnp 0 V[gnp] NA 11 gnp 13 pwage <-> pwage 0 V[pwage] NA 12 pwage 14 cprofits <-> cprofits 0 V[cprofits] NA 13 cprofits 15 consumption <-> consumption 0 V[consumption] NA 14 consumption 16 gwage <-> gwage 0 V[gwage] NA 15 gwage 17 invest <-> invest 0 V[invest] NA 16 invest 18 capital <-> capital 0 V[capital] NA 17 capital second direction Estimate Std_Error z_value p_value 1 consumption 1 0.19323185 0.08199229 2.356708 1.843776e-02 2 consumption 1 0.08942112 0.08136334 1.099035 2.717530e-01 3 consumption 1 0.79625663 0.03594118 22.154439 9.452934e-109 4 consumption 1 0.79625663 0.03594118 22.154439 9.452934e-109 5 invest 1 0.48138141 0.08740019 5.507785 3.633777e-08 6 invest 1 0.33084616 0.09069261 3.647995 2.642950e-04 7 invest 1 -0.11150752 0.02408258 -4.630214 3.652875e-06 8 pwage 1 0.44041577 0.02921824 15.073314 2.426312e-51 9 pwage 1 0.14476511 0.03370693 4.294817 1.748376e-05 10 pwage 1 0.13029837 0.02882711 4.519995 6.184119e-06 11 time 2 6.05530071 0.93435313 6.480741 9.127318e-11 12 gnp 2 10.32020497 1.58102475 6.527542 6.685791e-11 13 pwage 2 0.69302930 0.10701058 6.476269 9.401826e-11 14 cprofits 2 4.10929046 0.63141034 6.508114 7.610017e-11 15 consumption 2 0.92285232 0.14239896 6.480752 9.126683e-11 16 gwage 2 1.90952975 0.29464666 6.480745 9.127100e-11 17 invest 2 0.91015034 0.14046563 6.479523 9.201284e-11 18 capital 2 9.67950590 1.49358015 6.480741 9.127332e-11 > plot( fit ) > plot( fit, edge_label="value" ) > > > > > cleanEx() > nameEx("make_dsem_ram") > ### * make_dsem_ram > > flush(stderr()); flush(stdout()) > > ### Name: make_dsem_ram > ### Title: Make a RAM (Reticular Action Model) > ### Aliases: make_dsem_ram > > ### ** Examples > > # Univariate AR1 > sem = " + X -> X, 1, rho + X <-> X, 0, sigma + " > make_dsem_ram( sem=sem, variables="X", times=1:4 ) Read 2 records $model path lag name start parameter first second direction 1 X -> X 1 rho NA 1 X X 1 2 X <-> X 0 sigma NA 2 X X 2 $ram heads to from parameter start to_t to_j 1 1 2 1 1 NA NA NA 2 1 3 2 1 NA NA NA 3 1 4 3 1 NA NA NA 4 2 1 1 2 NA NA NA 5 2 2 2 2 NA NA NA 6 2 3 3 2 NA NA NA 7 2 4 4 2 NA NA NA $variables [1] "X" $times [1] 1 2 3 4 attr(,"class") [1] "dsem_ram" > > # Univariate AR2 > sem = " + X -> X, 1, rho1 + X -> X, 2, rho2 + X <-> X, 0, sigma + " > make_dsem_ram( sem=sem, variables="X", times=1:4 ) Read 3 records $model path lag name start parameter first second direction 1 X -> X 1 rho1 NA 1 X X 1 2 X -> X 2 rho2 NA 2 X X 1 3 X <-> X 0 sigma NA 3 X X 2 $ram heads to from parameter start to_t to_j 1 1 2 1 1 NA NA NA 2 1 3 1 2 NA NA NA 3 1 3 2 1 NA NA NA 4 1 4 2 2 NA NA NA 5 1 4 3 1 NA NA NA 6 2 1 1 3 NA NA NA 7 2 2 2 3 NA NA NA 8 2 3 3 3 NA NA NA 9 2 4 4 3 NA NA NA $variables [1] "X" $times [1] 1 2 3 4 attr(,"class") [1] "dsem_ram" > > # Bivariate VAR > sem = " + X -> X, 1, XtoX + X -> Y, 1, XtoY + Y -> X, 1, YtoX + Y -> Y, 1, YtoY + X <-> X, 0, sdX + Y <-> Y, 0, sdY + " > make_dsem_ram( sem=sem, variables=c("X","Y"), times=1:4 ) Read 6 records $model path lag name start parameter first second direction 1 X -> X 1 XtoX NA 1 X X 1 2 X -> Y 1 XtoY NA 2 X Y 1 3 Y -> X 1 YtoX NA 3 Y X 1 4 Y -> Y 1 YtoY NA 4 Y Y 1 5 X <-> X 0 sdX NA 5 X X 2 6 Y <-> Y 0 sdY NA 6 Y Y 2 $ram heads to from parameter start to_t to_j 1 1 2 1 1 NA NA NA 2 1 6 1 2 NA NA NA 3 1 3 2 1 NA NA NA 4 1 7 2 2 NA NA NA 5 1 4 3 1 NA NA NA 6 1 8 3 2 NA NA NA 7 1 2 5 3 NA NA NA 8 1 6 5 4 NA NA NA 9 1 3 6 3 NA NA NA 10 1 7 6 4 NA NA NA 11 1 4 7 3 NA NA NA 12 1 8 7 4 NA NA NA 13 2 1 1 5 NA NA NA 14 2 2 2 5 NA NA NA 15 2 3 3 5 NA NA NA 16 2 4 4 5 NA NA NA 17 2 5 5 6 NA NA NA 18 2 6 6 6 NA NA NA 19 2 7 7 6 NA NA NA 20 2 8 8 6 NA NA NA $variables [1] "X" "Y" $times [1] 1 2 3 4 attr(,"class") [1] "dsem_ram" > > # Dynamic factor analysis with one factor and two manifest variables > # (specifies a random-walk for the factor, and miniscule residual SD) > sem = " + factor -> X, 0, loadings1 + factor -> Y, 0, loadings2 + factor -> factor, 1, NA, 1 + X <-> X, 0, NA, 0.01 # Fix at negligible value + Y <-> Y, 0, NA, 0.01 # Fix at negligible value + " > make_dsem_ram( sem=sem, variables=c("X","Y","factor"), times=1:4 ) Read 5 records $model path lag name start parameter first second direction 1 factor -> X 0 loadings1 NA 1 factor X 1 2 factor -> Y 0 loadings2 NA 2 factor Y 1 3 factor -> factor 1 1.00 0 factor factor 1 4 X <-> X 0 0.01 0 X X 2 5 Y <-> Y 0 0.01 0 Y Y 2 6 factor <-> factor 0 V[factor] NA 3 factor factor 2 $ram heads to from parameter start to_t to_j 1 1 1 9 1 NA NA NA 2 1 5 9 2 NA NA NA 3 1 10 9 0 1.00 NA NA 4 1 2 10 1 NA NA NA 5 1 6 10 2 NA NA NA 6 1 11 10 0 1.00 NA NA 7 1 3 11 1 NA NA NA 8 1 7 11 2 NA NA NA 9 1 12 11 0 1.00 NA NA 10 1 4 12 1 NA NA NA 11 1 8 12 2 NA NA NA 12 2 1 1 0 0.01 NA NA 13 2 2 2 0 0.01 NA NA 14 2 3 3 0 0.01 NA NA 15 2 4 4 0 0.01 NA NA 16 2 5 5 0 0.01 NA NA 17 2 6 6 0 0.01 NA NA 18 2 7 7 0 0.01 NA NA 19 2 8 8 0 0.01 NA NA 20 2 9 9 3 NA NA NA 21 2 10 10 3 NA NA NA 22 2 11 11 3 NA NA NA 23 2 12 12 3 NA NA NA $variables [1] "X" "Y" "factor" $times [1] 1 2 3 4 attr(,"class") [1] "dsem_ram" > > # ARIMA(1,1,0) > sem = " + factor -> factor, 1, rho1 # AR1 component + X -> X, 1, NA, 1 # Integrated component + factor -> X, 0, NA, 1 + X <-> X, 0, NA, 0.01 # Fix at negligible value + " > make_dsem_ram( sem=sem, variables=c("X","factor"), times=1:4 ) Read 4 records $model path lag name start parameter first second direction 1 factor -> factor 1 rho1 NA 1 factor factor 1 2 X -> X 1 1.00 0 X X 1 3 factor -> X 0 1.00 0 factor X 1 4 X <-> X 0 0.01 0 X X 2 5 factor <-> factor 0 V[factor] NA 2 factor factor 2 $ram heads to from parameter start to_t to_j 1 1 2 1 0 1.00 NA NA 2 1 3 2 0 1.00 NA NA 3 1 4 3 0 1.00 NA NA 4 1 1 5 0 1.00 NA NA 5 1 6 5 1 NA NA NA 6 1 2 6 0 1.00 NA NA 7 1 7 6 1 NA NA NA 8 1 3 7 0 1.00 NA NA 9 1 8 7 1 NA NA NA 10 1 4 8 0 1.00 NA NA 11 2 1 1 0 0.01 NA NA 12 2 2 2 0 0.01 NA NA 13 2 3 3 0 0.01 NA NA 14 2 4 4 0 0.01 NA NA 15 2 5 5 2 NA NA NA 16 2 6 6 2 NA NA NA 17 2 7 7 2 NA NA NA 18 2 8 8 2 NA NA NA $variables [1] "X" "factor" $times [1] 1 2 3 4 attr(,"class") [1] "dsem_ram" > > # ARIMA(0,0,1) > sem = " + factor -> X, 0, NA, 1 + factor -> X, 1, rho1 # MA1 component + X <-> X, 0, NA, 0.01 # Fix at negligible value + " > make_dsem_ram( sem=sem, variables=c("X","factor"), times=1:4 ) Read 3 records $model path lag name start parameter first second direction 1 factor -> X 0 1.00 0 factor X 1 2 factor -> X 1 rho1 NA 1 factor X 1 3 X <-> X 0 0.01 0 X X 2 4 factor <-> factor 0 V[factor] NA 2 factor factor 2 $ram heads to from parameter start to_t to_j 1 1 1 5 0 1.00 NA NA 2 1 2 5 1 NA NA NA 3 1 2 6 0 1.00 NA NA 4 1 3 6 1 NA NA NA 5 1 3 7 0 1.00 NA NA 6 1 4 7 1 NA NA NA 7 1 4 8 0 1.00 NA NA 8 2 1 1 0 0.01 NA NA 9 2 2 2 0 0.01 NA NA 10 2 3 3 0 0.01 NA NA 11 2 4 4 0 0.01 NA NA 12 2 5 5 2 NA NA NA 13 2 6 6 2 NA NA NA 14 2 7 7 2 NA NA NA 15 2 8 8 2 NA NA NA $variables [1] "X" "factor" $times [1] 1 2 3 4 attr(,"class") [1] "dsem_ram" > > > > > cleanEx() > nameEx("partition_variance") > ### * partition_variance > > flush(stderr()); flush(stdout()) > > ### Name: partition_variance > ### Title: Partition variance in one variable due to another (EXPERIMENTAL) > ### Aliases: partition_variance > > ### ** Examples > > # Simulate linear model > x = rnorm(100) > y = 1 + 1 * x + rnorm(100) > data = data.frame(x=x, y=y) > > # Fit as DSEM > fit = dsem( sem = "x -> y, 0, beta", + tsdata = ts(data), + control = dsem_control(quiet=TRUE) ) > > # Apply > partition_variance( fit, + which_response = "y", + n_times = 10 ) $total_variance x y t_1 0.8067621 1.722583 t_2 0.8067621 1.722583 t_3 0.8067621 1.722583 t_4 0.8067621 1.722583 t_5 0.8067621 1.722583 t_6 0.8067621 1.722583 t_7 0.8067621 1.722583 t_8 0.8067621 1.722583 t_9 0.8067621 1.722583 t_10 0.8067621 1.722583 $proportion_variance_explained x y t_1 0.4673515 0.5326485 t_2 0.4673515 0.5326485 t_3 0.4673515 0.5326485 t_4 0.4673515 0.5326485 t_5 0.4673515 0.5326485 t_6 0.4673515 0.5326485 t_7 0.4673515 0.5326485 t_8 0.4673515 0.5326485 t_9 0.4673515 0.5326485 t_10 0.4673515 0.5326485 > > > > > cleanEx() > nameEx("stepwise_selection") > ### * stepwise_selection > > flush(stderr()); flush(stdout()) > > ### Name: stepwise_selection > ### Title: Simulate dsem > ### Aliases: stepwise_selection > > ### ** Examples > > # Simulate x -> y -> z > set.seed(101) > x = rnorm(100) > y = 0.5*x + rnorm(100) > z = 1*y + rnorm(100) > tsdata = ts(data.frame(x=x, y=y, z=z)) > > # define candidates > model_options = c( + "y -> z, 0, y_to_z", + "x -> z, 0, x_to_z" + ) > # define paths that are required > model_shared = " + x -> y, 0, x_to_y + " > > # Do selection > step = stepwise_selection( + model_options = model_options, + model_shared = model_shared, + tsdata = tsdata, + quiet = TRUE + ) Read 1 record List of estimated fixed and random effects: Coefficient_name Number_of_coefficients Type 1 beta_z 4 Fixed 2 mu_j 3 Random Running nlminb_loop #1 Running newton_loop #1 Read 2 records List of estimated fixed and random effects: Coefficient_name Number_of_coefficients Type 1 beta_z 5 Fixed 2 mu_j 3 Random Running nlminb_loop #1 Running newton_loop #1 Read 2 records List of estimated fixed and random effects: Coefficient_name Number_of_coefficients Type 1 beta_z 5 Fixed 2 mu_j 3 Random Running nlminb_loop #1 Running newton_loop #1 Read 2 records List of estimated fixed and random effects: Coefficient_name Number_of_coefficients Type 1 beta_z 5 Fixed 2 mu_j 3 Random Running nlminb_loop #1 Running newton_loop #1 Read 1 record List of estimated fixed and random effects: Coefficient_name Number_of_coefficients Type 1 beta_z 4 Fixed 2 mu_j 3 Random Running nlminb_loop #1 Running newton_loop #1 Read 3 records List of estimated fixed and random effects: Coefficient_name Number_of_coefficients Type 1 beta_z 6 Fixed 2 mu_j 3 Random Running nlminb_loop #1 Running newton_loop #1 > > # Check selected model > cat(step$model) y -> z, 0, y_to_z x -> y, 0, x_to_y > > > > > cleanEx() > nameEx("test_dsep") > ### * test_dsep > > flush(stderr()); flush(stdout()) > > ### Name: test_dsep > ### Title: Test d-separation > ### Aliases: test_dsep > > ### ** Examples > > # Simulate data set > set.seed(101) > a = rnorm( 100 ) > b = 0.5*a + rnorm(100) > c = 1*a + rnorm(100) > d = 1*b - 0.5*c + rnorm(100) > tsdata = ts(data.frame(a=a, b=b, c=c, d=d)) > > # fit wrong model > wrong = dsem( + tsdata = tsdata, + sem = " + a -> d, 0, a_to_d + b -> d, 0, b_to_d + c -> d, 0, c_to_d + " + ) Read 3 records List of estimated fixed and random effects: Coefficient_name Number_of_coefficients Type 1 beta_z 7 Fixed 2 mu_j 4 Random Running nlminb_loop #1 Running newton_loop #1 > test_dsep( wrong ) [1] 0 > > # fit right model > right = dsem( + tsdata = tsdata, + sem = " + a -> b, 0, a_to_b + a -> c, 0, a_to_c + b -> d, 0, b_to_d + c -> d, 0, c_to_d + " + ) Read 4 records List of estimated fixed and random effects: Coefficient_name Number_of_coefficients Type 1 beta_z 8 Fixed 2 mu_j 4 Random Running nlminb_loop #1 Running newton_loop #1 > test_dsep( right ) [1] 0.02636084 > > > > cleanEx() > nameEx("total_effect") > ### * total_effect > > flush(stderr()); flush(stdout()) > > ### Name: total_effect > ### Title: Calculate total effects > ### Aliases: total_effect > > ### ** Examples > > ### EXAMPLE 1 > # Define linear model with slope of 0.5 > sem = " + # from, to, lag, name, starting_value + x -> y, 0, slope, 0.5 + " > # Build DSEM with specified value for path coefficients > mod = dsem( + sem = sem, + tsdata = ts(data.frame(x=rep(0,20),y=rep(0,20))), + control = dsem_control( run_model = FALSE ) + ) Read 1 record List of estimated fixed and random effects: Coefficient_name Number_of_coefficients Type 1 beta_z 3 Fixed 2 mu_j 2 Random > > # Show that total effect of X on Y from pulse experiment is 0.5 but does not propagate over time > pulse = total_effect(mod, n_lags = 2, type = "pulse") > subset( pulse, from=="x" & to=="y") lag to from total_effect direct_effect 3 0 y x 0.5 0.5 4 1 y x 0.0 0.0 > > > ### EXAMPLE 2 > # Define linear model with slope of 0.5 and autocorrelated response > sem = " + x -> y, 0, slope, 0.5 + y -> y, 1, ar_y, 0.8 + " > mod = dsem( + sem = sem, + tsdata = ts(data.frame(x=rep(0,20),y=rep(0,20))), + control = dsem_control( run_model = FALSE ) + ) Read 2 records List of estimated fixed and random effects: Coefficient_name Number_of_coefficients Type 1 beta_z 4 Fixed 2 mu_j 2 Random > > # Show that total effect of X on Y from pulse experiment is 0.5 with decay of 0.8 for each time > pulse = total_effect(mod, n_lags = 4, type = "pulse") > subset( pulse, from=="x" & to=="y") lag to from total_effect direct_effect 5 0 y x 0.500 0.5 6 1 y x 0.400 0.0 7 2 y x 0.320 0.0 8 3 y x 0.256 0.0 > > # Show that total effect of X on Y from press experiment asymptotes at 2.5 > press = total_effect(mod, n_lags = 50, type = "press") > subset( press, from=="x" & to=="y") lag to from total_effect direct_effect 51 0 y x 0.500000 0.5 52 1 y x 0.900000 0.5 53 2 y x 1.220000 0.5 54 3 y x 1.476000 0.5 55 4 y x 1.680800 0.5 56 5 y x 1.844640 0.5 57 6 y x 1.975712 0.5 58 7 y x 2.080570 0.5 59 8 y x 2.164456 0.5 60 9 y x 2.231565 0.5 61 10 y x 2.285252 0.5 62 11 y x 2.328201 0.5 63 12 y x 2.362561 0.5 64 13 y x 2.390049 0.5 65 14 y x 2.412039 0.5 66 15 y x 2.429631 0.5 67 16 y x 2.443705 0.5 68 17 y x 2.454964 0.5 69 18 y x 2.463971 0.5 70 19 y x 2.471177 0.5 71 20 y x 2.476942 0.5 72 21 y x 2.481553 0.5 73 22 y x 2.485243 0.5 74 23 y x 2.488194 0.5 75 24 y x 2.490555 0.5 76 25 y x 2.492444 0.5 77 26 y x 2.493955 0.5 78 27 y x 2.495164 0.5 79 28 y x 2.496131 0.5 80 29 y x 2.496905 0.5 81 30 y x 2.497524 0.5 82 31 y x 2.498019 0.5 83 32 y x 2.498415 0.5 84 33 y x 2.498732 0.5 85 34 y x 2.498986 0.5 86 35 y x 2.499189 0.5 87 36 y x 2.499351 0.5 88 37 y x 2.499481 0.5 89 38 y x 2.499585 0.5 90 39 y x 2.499668 0.5 91 40 y x 2.499734 0.5 92 41 y x 2.499787 0.5 93 42 y x 2.499830 0.5 94 43 y x 2.499864 0.5 95 44 y x 2.499891 0.5 96 45 y x 2.499913 0.5 97 46 y x 2.499930 0.5 98 47 y x 2.499944 0.5 99 48 y x 2.499955 0.5 100 49 y x 2.499964 0.5 > > > > > ### *