On 2020-05-09 11:40 -0400, J C Nash wrote:> > > solve(D) > [,1] [,2] > [1,] -2.0 1.0 > [2,] 1.5 -0.5 > > D %*% solve(D) > [,1] [,2] > [1,] 1 1.110223e-16 > [2,] 0 1.000000e+00 > >Dear list, I get another solution on my Linux i7-7500U laptop, but the same solution on my FreeBSD E3-1240Lv5 machine with a really old R version (without BLAS) ... How is this possible?> D %*% solve(D)[,1] [,2] [1,] 1.000000e+00 0 [2,] 8.881784e-16 1> sessionInfo()R version 3.6.3 (2020-02-29) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Arch Linux Matrix products: default BLAS: /usr/lib/libopenblasp-r0.3.9.so LAPACK: /usr/lib/liblapack.so.3.9.0 locale: [1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_DK.UTF-8 LC_COLLATE=en_GB.UTF-8 [5] LC_MONETARY=nb_NO.UTF-8 LC_MESSAGES=en_GB.UTF-8 [7] LC_PAPER=nb_NO.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=nb_NO.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_3.6.3>>From the machine running FreeBSD:> D %*% solve(D)[,1] [,2] [1,] 1 1.110223e-16 [2,] 0 1.000000e+00> sessionInfo()R version 3.5.2 (2018-12-20) Platform: amd64-portbld-freebsd12.0 (64-bit) Running under: FreeBSD hmm 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC amd64 Matrix products: default LAPACK: /usr/local/lib/R/lib/libRlapack.so locale: [1] C/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_3.5.2>Best, Rasmus
Note that my sessionInfo() gave R version 4.0.0 (2020-04-24) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Linux Mint 19.3 Matrix products: default BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1 LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1 So you have an older R but newer libraries, and the libblas is a different one. Given the output is very similar, and within the rounding margins of the double arithmetic, this looks like the libraries are very slightly different. I suppose I should be more inquisitive and try to seek out the changelog or other description of the differences, but ... JN On 2020-05-13 11:28 a.m., Rasmus Liland wrote:> On 2020-05-09 11:40 -0400, J C Nash wrote: >> >>> solve(D) >> [,1] [,2] >> [1,] -2.0 1.0 >> [2,] 1.5 -0.5 >>> D %*% solve(D) >> [,1] [,2] >> [1,] 1 1.110223e-16 >> [2,] 0 1.000000e+00 >>> > > Dear list, > > I get another solution on my Linux i7-7500U > laptop, but the same solution on my FreeBSD > E3-1240Lv5 machine with a really old R > version (without BLAS) ... > > How is this possible? > >> D %*% solve(D) > [,1] [,2] > [1,] 1.000000e+00 0 > [2,] 8.881784e-16 1 >> sessionInfo() > R version 3.6.3 (2020-02-29) > Platform: x86_64-pc-linux-gnu (64-bit) > Running under: Arch Linux > > Matrix products: default > BLAS: /usr/lib/libopenblasp-r0.3.9.so > LAPACK: /usr/lib/liblapack.so.3.9.0 > > locale: > [1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C > [3] LC_TIME=en_DK.UTF-8 LC_COLLATE=en_GB.UTF-8 > [5] LC_MONETARY=nb_NO.UTF-8 LC_MESSAGES=en_GB.UTF-8 > [7] LC_PAPER=nb_NO.UTF-8 LC_NAME=C > [9] LC_ADDRESS=C LC_TELEPHONE=C > [11] LC_MEASUREMENT=nb_NO.UTF-8 LC_IDENTIFICATION=C > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > loaded via a namespace (and not attached): > [1] compiler_3.6.3 >> > > From the machine running FreeBSD: > >> D %*% solve(D) > [,1] [,2] > [1,] 1 1.110223e-16 > [2,] 0 1.000000e+00 >> sessionInfo() > R version 3.5.2 (2018-12-20) > Platform: amd64-portbld-freebsd12.0 (64-bit) > Running under: FreeBSD hmm 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC amd64 > > Matrix products: default > LAPACK: /usr/local/lib/R/lib/libRlapack.so > > locale: > [1] C/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > loaded via a namespace (and not attached): > [1] compiler_3.5.2 >> > > Best, > Rasmus >
On 2020-05-13 13:04 -0400, J C Nash wrote:> On 2020-05-13 11:28 a.m., Rasmus Liland wrote: > > > > I get another solution on my Linux i7-7500U > > > > > D %*% solve(D) > > [,1] [,2] > > [1,] 1.000000e+00 0 > > [2,] 8.881784e-16 1 > > > sessionInfo() > > BLAS: /usr/lib/libopenblasp-r0.3.9.so > > LAPACK: /usr/lib/liblapack.so.3.9.0 > > Note that my sessionInfo() gave > > R version 4.0.0 (2020-04-24) > Platform: x86_64-pc-linux-gnu (64-bit) > Running under: Linux Mint 19.3 > > Matrix products: default > BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1 > LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1 > > So you have an older R but newer libraries, and the libblas is > a different one. > > Given the output is very similar, and within the rounding > margins of the double arithmetic, this looks like the > libraries are very slightly different. I suppose I should > be more inquisitive and try to seek out the changelog or other > description of the differences, but ... > > JNDear JN, I was thinking BLAS could be changed to OpenBLAS, apparently not: If I switch from OpenBLAS back to regular BLAS, the output is as expected ... I thought OpenBLAS should be a real alternative to BLAS in many cases, but not in this example?> D %*% solve(D)[,1] [,2] [1,] 1 1.110223e-16 [2,] 0 1.000000e+00> sessionInfo()R version 3.6.3 (2020-02-29) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Arch Linux Matrix products: default BLAS: /usr/lib/libblas.so.3.9.0 LAPACK: /usr/lib/liblapack.so.3.9.0 Best, Rasmus