Dear all, I'm writing to ask for advice as to best practice. A PhD student working with me is writing C++ code that we hope to make public as src code in our Bioconductor package edgeR. He wants to call the function fmm_spline, which is part of the source code for the stats package http://svn.r-project.org/R/trunk/src/library/stats/src/splines.c, from his C++ code. This function isn't one of the entry points for C code documented in Chapter 6 of the "Writing R extensions" manual. We haven't figured out a way to call the fmm_spline function directly from our C++ code. Is there a way that we have missed? Can we simply copy the fmm_spline function into our C++ code and declare where we got it from? Should we include the license declaration from the header of splines.c? Anything else we need to do satisfying copyright and be good citizens? Thanks a lot Gordon --------------------------------------------- Professor Gordon K Smyth, Bioinformatics Division, Walter and Eliza Hall Institute of Medical Research, 1G Royal Parade, Parkville, Vic 3052, Australia. Tel: (03) 9345 2326, Fax (03) 9347 0852, http://www.statsci.org/smyth ______________________________________________________________________ The information in this email is confidential and intend...{{dropped:4}}
Prof Brian Ripley
2012-Jul-09 09:45 UTC
[Rd] Using a function from splines.c in our package
On Mon, 9 Jul 2012, Gordon K Smyth wrote:> Dear all, > > I'm writing to ask for advice as to best practice. A PhD student working > with me is writing C++ code that we hope to make public as src code in our > Bioconductor package edgeR. He wants to call the function fmm_spline, which > is part of the source code for the stats package > > http://svn.r-project.org/R/trunk/src/library/stats/src/splines.c, > > from his C++ code. This function isn't one of the entry points for C code > documented in Chapter 6 of the "Writing R extensions" manual.None of those are in a package.> We haven't figured out a way to call the fmm_spline function directly from > our C++ code. Is there a way that we have missed?Not a very portable way, but there are some ideas in 'Writing R Extensions'. I don't think they are enough for a CRAN or BioC package, though.> Can we simply copy the fmm_spline function into our C++ code and declare > where we got it from? Should we include the license declaration from the > header of splines.c? Anything else we need to do satisfying copyright and be > good citizens?If your package has a compatible licence, you can (and you must include the whole header when you copy). CRAN's policies say that when you copy code from elsewhere you must include that code's authors in the Authors field of your package, and that clearly is good practice.> Thanks a lot > Gordon > > --------------------------------------------- > Professor Gordon K Smyth, > Bioinformatics Division, > Walter and Eliza Hall Institute of Medical Research, > 1G Royal Parade, Parkville, Vic 3052, Australia. > Tel: (03) 9345 2326, Fax (03) 9347 0852, > http://www.statsci.org/smyth >-- Brian D. Ripley, ripley at 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
Maybe Matching Threads
- formal methods and classes and capitalization conventions
- Rcmd check does not recognize formal generic function as code object
- Documenting S4 classes; debugging them
- Standardized Pearson residuals (and score tests)
- R 2.1.1: read.table processes C-style escapes (PR#8037)