On 04/06/2014 10:53, Kristian Buchardt wrote:
Hello there
I'm writing some c-code to solve a numerically tough problem for me in
R. Looking in Lapack.h, i find the following line
F77_NAME(dgesvx)(const int* fact, const char* trans, const int* n,
and I believe that "fact" should've been char instead of int, i.e.
F77_NAME(dgesvx)(const char* fact, const char* trans, const int* n,
My reasoning: In the R-source:
src/modules/lapack/dlapack.f
I find the following lines:
* SUBROUTINE DGESVX( FACT, TRANS, N, NRHS, A, LDA, AF, LDAF, IPIV,
* EQUED, R, C, B, LDB, X, LDX, RCOND, FERR, BERR,
* WORK, IWORK, INFO )
*
* .. Scalar Arguments ..
* CHARACTER EQUED, FACT, TRANS
* INTEGER INFO, LDA, LDAF, LDB, LDX, N, NRHS
* DOUBLE PRECISION RCOND
where FACT is specified to a char.
Might this simply be an error in Lapack.h? And can I just edit my
Lapack.h and compile?
It is an error. Thanks for reporting it: we will change future R
sources and you can edit locally as well.
Note though that passing FORTRAN CHARACTER variables from C is tricky
(see 'Writing R Extensions') and for portable code we would recommend a
FORTRAN wrapper which converted integer codes sent from C to FORTRAN
CHARACTER variables.
--
Brian D. Ripley, rip...@stats.ox.ac.uk
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