From 54dac294c1e9da5706b1e8af0128008efdccf048 Mon Sep 17 00:00:00 2001 From: Hadley Wickham Date: Tue, 2 Apr 2024 08:16:49 -0500 Subject: [PATCH] Register symbols --- NAMESPACE | 3 +-- R/l1tf.R | 2 +- src/register.c | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 src/register.c diff --git a/NAMESPACE b/NAMESPACE index 7ee0816..f726390 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,5 +1,4 @@ # Generated by roxygen2: do not edit by hand export(l1tf) -useDynLib(l1tf,l1tf_R) -useDynLib(l1tf,l1tf_lambdamax_R) +useDynLib(l1tf, .registration = TRUE) diff --git a/R/l1tf.R b/R/l1tf.R index 39fbf63..a48b569 100644 --- a/R/l1tf.R +++ b/R/l1tf.R @@ -6,7 +6,7 @@ #' @param prop A number between 0 and 1. Specify lambda as a proportion of the #' maximum lambda for the input dataset. #' @param debug If `TRUE` will print details about each iteration. -#' @useDynLib l1tf l1tf_R l1tf_lambdamax_R +#' @useDynLib l1tf, .registration = TRUE #' @export #' @examples #' x <- runif(1000) diff --git a/src/register.c b/src/register.c new file mode 100644 index 0000000..fd89d5f --- /dev/null +++ b/src/register.c @@ -0,0 +1,20 @@ +#include +#include +#include // for NULL +#include + +/* .Call calls */ +extern SEXP l1tf_lambdamax_R(SEXP, SEXP); +extern SEXP l1tf_R(SEXP, SEXP, SEXP); + +static const R_CallMethodDef CallEntries[] = { + {"l1tf_lambdamax_R", (DL_FUNC) &l1tf_lambdamax_R, 2}, + {"l1tf_R", (DL_FUNC) &l1tf_R, 3}, + {NULL, NULL, 0} +}; + +void R_init_l1tf(DllInfo *dll) +{ + R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); + R_useDynamicSymbols(dll, FALSE); +}