He wants "La_dgesv", which is not an LAPACK entry point at all, but a private part of R. The header it is in is private and not installed.
There is no guarantee that it will remain visible to an R package, and the only safe thing to do is to copy the code. On Thu, 14 Jun 2007, [EMAIL PROTECTED] wrote: > 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 >> >> [EMAIL PROTECTED] 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@r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-devel >> > > -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel