Hi all,

I'm currently using some Lapack functions, but I found out that  
complex function zlange (computing matrix norm) is declared as

extern void F77_NAME(zlange)(char *norm, int *m, int *n, Rcomplex *a,  
int *lda, double *work);

line 2832 of lapack.h

but I think it should be

extern double F77_NAME(zlange)(const char *norm, const int *m, const  
int *n, const Rcomplex *a, const int *lda, double *work);

the manual guide indicates that zlange is not a routine but a function  
returning a double.

http://www.mathkeisan.com/UsersGuide/man/zlange.html

However, the real equivalent function dlange is well declared :

extern double F77_NAME(dlange)(const char* norm, const int* m, const  
int* n, const double* a, const int* lda, double* work);

line 1873 of lapack.h

and it is coherent with the manual

http://www.mathkeisan.com/UsersGuide/man/dlange.html


If I try to "overload" the definition, I get this error when compiling  
the package expm

expm-eigen.h:39: error: conflicting types for 'zlange_'

and if I do nothing, I get

expm-eigen.c:148: error: void value not ignored as it ought to be

(line 48 is the call of zlange function).

Do you have any idea of what's wrong or what am I doing wrong?


Thanks in advance


Christophe



PS : some info
 > sessionInfo()
R version 2.6.1 (2007-11-26)
i386-apple-darwin8.10.1

locale:
fr_FR.UTF-8/fr_FR.UTF-8/fr_FR.UTF-8/C/fr_FR.UTF-8/fr_FR.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] expm_0.9-1
 >


	[[alternative HTML version deleted]]

