Re: [Rd] LAPACK Headers

From: <statmobile_at_gmail.com>
Date: Thu, 14 Jun 2007 22:53:42 -0400

On Thu, Jun 14, 2007 at 11:27:44PM +0100, Hin-Tak Leung wrote:
> Try this? (this is on 2.5.0, I don't use 2.4.x anymore)
>
> #include <R_ext/Lapack.h>
>

I tried this, but I still get the warning of implicit declaration of function. It does compile though.

> Have you actually tried grep dgesv $R_HOME/include/* $R_HOME/include/*/*
> to see which file to include for dgesv ??

Well, when I grep the R source files, I get:

$ find . -name "*" -print | xargs grep -i 'La_dgesv'

./src/main/basedecl.h:SEXP La_dgesv(SEXP, SEXP, SEXP);
./src/main/lapack.c:SEXP La_dgesv(SEXP A, SEXP B, SEXP tol)
./src/main/lapack.c:SEXP La_dgesv(SEXP A, SEXP B, SEXP tol)
./src/main/registration.c:    CALLDEF(La_dgesv, 3),
./src/library/base/R/solve.R:     .Call("La_dgesv", a, b, tol, PACKAGE
= "base")
./src/library/base/R/solve.R:     drop(.Call("La_dgesv", a,
as.matrix(b), tol, PACKAGE = "base")))
./src/modules/lapack/Lapack.c:static SEXP modLa_dgesv(SEXP A, SEXP Bin, SEXP tolin)
./src/modules/lapack/Lapack.c: tmp->dgesv = modLa_dgesv; ./src/include/Rmodules/Rlapack.h:typedef SEXP (*Rf_La_dgesv)(SEXP A, SEXP B, SEXP tol);
./src/include/Rmodules/Rlapack.h: Rf_La_dgesv dgesv;

So it looks like La_dgesv is declared in basedecl.h, but I don't see this file anywhere else on my machine. Maybe I shouldn't be using this function in my package?

>
> HTL
>
> statmobile@gmail.com wrote:
> >Hey Everyone,
> >
> >I'm running R 2.4.0 on Debian etch 4.0, and I'm trying to call some
> >LAPACK functions from the C code in my package. Actually, to be
> >honest I'm not really having trouble using commands such as La_dgesv
> >from within my C code, but I do get warning when compiling the package
> >saying:
> >
> >***.c: In function '***':
> >***.c:37: warning: implicit declaration of function 'La_dgesv'
> >***.c:37: warning: assignment makes pointer from integer without
> >a cast
> >
> >I tried using:
> >
> >#include <Rmodules/Rlapack.h>
> >
> >but it won't compile the package at all with that included,
> >complaining that
> >
> >***.h:5:30: error: Rmodules/Rlapack.h: No such file or directory
> >
> >Can someone explain to me how I should include the headers to this
> >AWESOME wrapper code to the LAPACK libraries? Am I not following the
> >proper protocol by using these La_* commands in my package source
> >code?
> >
> >Note, I also have the following in Makevars
> >
> >PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
> >
> >TIA!
> >
> >I initially posted this question on the general list, but I didn't get
> >any responses.
> >
> >______________________________________________
> >R-devel_at_r-project.org mailing list
> >https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Brian J. Lopes
PhD Student
Department of Statistics and Operations Research
University of North Carolina at Chapel Hill

To know that we know what we know, and that we do not know what we do
not know, that is true knowledge --Henry David Thoreau (quoting
Confucius): Walden

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Fri 15 Jun 2007 - 02:57:53 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 15 Jun 2007 - 13:34:56 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.