Martin,
That was it- I forgot the "LinkingTo" line. I had read that section of the manual twice in the last 2 days, yet somehow missed that critical line both times. And even worse, the final sentence of said section references my own coxme package as an example of how to do it correctly!

Thank you all for the help. My only remaining defense, but a very weak one, is that the error message could have been better since it led me to believe that R couldn't find the library at all.

Terry Therneau

On 02/10/2017 10:26 AM, Martin Maechler wrote:
Therneau, Terry M , Ph D <thern...@mayo.edu>
     on Thu, 9 Feb 2017 12:56:17 -0600 writes:

     > Martyn,
     > No, that didn't work.
     > One other thing in the mix (which I don't think is the issue) is that I 
call one of the
     > C-entry points of expm.  So the DESCRIPTION file imports expm, the 
NAMESPACE file imports
     > expm, and the init.c file is

     > #include "R.h"
     > #include "R_ext/Rdynload.h"

     > /* Interface to expm package. */
     > typedef enum {Ward_2, Ward_1, Ward_buggy_octave} precond_type;
     > void (*expm)(double *x, int n, double *z, precond_type precond_kind);
     > void R_init_hmm(DllInfo *dll)
     > {
     >      expm = (void (*)) R_GetCCallable("expm", "expm");
     > }

     > I don't expect that this is the problem since I stole the
     > above almost verbatim from the msm package.

     > Terry T.

Hmm.  Yes, I can see that the CRAN package  msm  does do this, indeed.

It is interesting if/why that does not produce any notes or rather even 
warnings.
In principle, if you use the C API of 'expm'  you should use
   'LinkingTo: expm'

see *the* manual, specifically the section

     
https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Linking-to-native-routines-in-other-packages

and that section does mention that (unfortunately in my view)
you also should use 'Imports:' or 'Depends:' in addition to the 'LinkingTo:'

Note howver that  'expm' would not have to mentioned
in the NAMESPACE file.... unless your R functions do use some of
expm's R level functionality.


Martin


______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to