Hello R-helpers! I am trying to call a LAPACK subroutine directly from my R code using .Fortran(), but R cannot find the symbol name. How can I register/load the appropriate library?> ### AR(1) Precision matrix > n <- 4L > phi <- 0.64 > AB <- matrix(0, 2, n) > AB[1, ] <- c(1, rep(1 + phi^2, n-2), 1) > AB[2, -n] <- -phi > round(AB, 3)[,1] [,2] [,3] [,4] [1,] 1.00 1.41 1.41 1 [2,] -0.64 -0.64 -0.64 0> > ### Cholesky factor > AB.ch <- .Fortran("dpbtrf", UPLO = 'L', N = as.integer(n),+ KD = 1L, AB = AB, LDAB = 2L, INFO = as.integer(0))$AB Error in .Fortran("dpbtrf", UPLO = "L", N = as.integer(n), KD = 1L, AB = AB, : Fortran symbol name "dpbtrf" not in load table> sessionInfo()R version 3.6.0 (2019-04-26) Platform: x86_64-apple-darwin18.5.0 (64-bit) Running under: macOS Mojave 10.14.6 Matrix products: default BLAS/LAPACK: /usr/local/Cellar/openblas/0.3.6_1/lib/libopenblasp-r0.3.6.dylib locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_3.6.0 tools_3.6.0 Thank you in advance for your help! Best, Giovanni Petris -- Giovanni Petris, PhD Professor Director of Statistics Department of Mathematical Sciences University of Arkansas - Fayetteville, AR 72701
Sorry for cross-posting, but I realized my question might be more appropriate for r-devel... Thank you, Giovanni ________________________________________ From: R-help <r-help-bounces at r-project.org> on behalf of Giovanni Petris <gpetris at uark.edu> Sent: Tuesday, September 10, 2019 16:44 To: r-help at r-project.org Subject: [R] Calling a LAPACK subroutine from R Hello R-helpers! I am trying to call a LAPACK subroutine directly from my R code using .Fortran(), but R cannot find the symbol name. How can I register/load the appropriate library?> ### AR(1) Precision matrix > n <- 4L > phi <- 0.64 > AB <- matrix(0, 2, n) > AB[1, ] <- c(1, rep(1 + phi^2, n-2), 1) > AB[2, -n] <- -phi > round(AB, 3)[,1] [,2] [,3] [,4] [1,] 1.00 1.41 1.41 1 [2,] -0.64 -0.64 -0.64 0> > ### Cholesky factor > AB.ch <- .Fortran("dpbtrf", UPLO = 'L', N = as.integer(n),+ KD = 1L, AB = AB, LDAB = 2L, INFO = as.integer(0))$AB Error in .Fortran("dpbtrf", UPLO = "L", N = as.integer(n), KD = 1L, AB = AB, : Fortran symbol name "dpbtrf" not in load table> sessionInfo()R version 3.6.0 (2019-04-26) Platform: x86_64-apple-darwin18.5.0 (64-bit) Running under: macOS Mojave 10.14.6 Matrix products: default BLAS/LAPACK: /usr/local/Cellar/openblas/0.3.6_1/lib/libopenblasp-r0.3.6.dylib locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_3.6.0 tools_3.6.0 Thank you in advance for your help! Best, Giovanni Petris -- Giovanni Petris, PhD Professor Director of Statistics Department of Mathematical Sciences University of Arkansas - Fayetteville, AR 72701 ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_r-2Dhelp&d=DwICAg&c=7ypwAowFJ8v-mw8AB-SdSueVQgSDL4HiiSaLK01W8HA&r=C3DNvy_azplKSvJKgvsgjA&m=C-MwKl__0xz-98RBbu7QNXJjqWkRr4xp6c0cz9Dck7A&s=a1vAu3mcXKObTLwP19vOmRPq55h6oQTh_vnS6BEibF0&ePLEASE do read the posting guide https://urldefense.proofpoint.com/v2/url?u=http-3A__www.R-2Dproject.org_posting-2Dguide.html&d=DwICAg&c=7ypwAowFJ8v-mw8AB-SdSueVQgSDL4HiiSaLK01W8HA&r=C3DNvy_azplKSvJKgvsgjA&m=C-MwKl__0xz-98RBbu7QNXJjqWkRr4xp6c0cz9Dck7A&s=qFGlplF9cOSmnDUvugsPRDn4iZS7v-LuWNAvfY69sbA&eand provide commented, minimal, self-contained, reproducible code.
Giovanni, you are trying to open a can of worms. Se recent discussions on R-pkg-devel, Writing R Extensions, and the help page for .Fortran. Best, G?ran On 2019-09-10 23:44, Giovanni Petris wrote:> > Hello R-helpers! > > I am trying to call a LAPACK subroutine directly from my R code using .Fortran(), but R cannot find the symbol name. How can I register/load the appropriate library? > >> ### AR(1) Precision matrix >> n <- 4L >> phi <- 0.64 >> AB <- matrix(0, 2, n) >> AB[1, ] <- c(1, rep(1 + phi^2, n-2), 1) >> AB[2, -n] <- -phi >> round(AB, 3) > [,1] [,2] [,3] [,4] > [1,] 1.00 1.41 1.41 1 > [2,] -0.64 -0.64 -0.64 0 >> >> ### Cholesky factor >> AB.ch <- .Fortran("dpbtrf", UPLO = 'L', N = as.integer(n), > + KD = 1L, AB = AB, LDAB = 2L, INFO = as.integer(0))$AB > Error in .Fortran("dpbtrf", UPLO = "L", N = as.integer(n), KD = 1L, AB = AB, : > Fortran symbol name "dpbtrf" not in load table >> sessionInfo() > R version 3.6.0 (2019-04-26) > Platform: x86_64-apple-darwin18.5.0 (64-bit) > Running under: macOS Mojave 10.14.6 > > Matrix products: default > BLAS/LAPACK: /usr/local/Cellar/openblas/0.3.6_1/lib/libopenblasp-r0.3.6.dylib > > locale: > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > loaded via a namespace (and not attached): > [1] compiler_3.6.0 tools_3.6.0 > > Thank you in advance for your help! > > Best, > Giovanni Petris > > > > -- > Giovanni Petris, PhD > Professor > Director of Statistics > Department of Mathematical Sciences > University of Arkansas - Fayetteville, AR 72701 > > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >