// Generated by using Rcpp::compileAttributes() -> do not edit by hand
// Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

#include <RcppArmadillo.h>
#include <Rcpp.h>

using namespace Rcpp;

#ifdef RCPP_USE_GLOBAL_ROSTREAM
Rcpp::Rostream<true>&  Rcpp::Rcout = Rcpp::Rcpp_cout_get();
Rcpp::Rostream<false>& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get();
#endif

// rcpp_fft_axis
ComplexVector rcpp_fft_axis(ComplexVector arr, IntegerVector dims, int axis, bool inverse);
RcppExport SEXP _fastlpr_rcpp_fft_axis(SEXP arrSEXP, SEXP dimsSEXP, SEXP axisSEXP, SEXP inverseSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< ComplexVector >::type arr(arrSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type dims(dimsSEXP);
    Rcpp::traits::input_parameter< int >::type axis(axisSEXP);
    Rcpp::traits::input_parameter< bool >::type inverse(inverseSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_fft_axis(arr, dims, axis, inverse));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_fft_nd
ComplexVector rcpp_fft_nd(ComplexVector arr, IntegerVector dims, bool inverse);
RcppExport SEXP _fastlpr_rcpp_fft_nd(SEXP arrSEXP, SEXP dimsSEXP, SEXP inverseSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< ComplexVector >::type arr(arrSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type dims(dimsSEXP);
    Rcpp::traits::input_parameter< bool >::type inverse(inverseSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_fft_nd(arr, dims, inverse));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_fft_nd_real
ComplexVector rcpp_fft_nd_real(NumericVector arr, IntegerVector dims, bool inverse);
RcppExport SEXP _fastlpr_rcpp_fft_nd_real(SEXP arrSEXP, SEXP dimsSEXP, SEXP inverseSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type arr(arrSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type dims(dimsSEXP);
    Rcpp::traits::input_parameter< bool >::type inverse(inverseSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_fft_nd_real(arr, dims, inverse));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_interp_nd
NumericVector rcpp_interp_nd(List grid_vals, NumericVector arr, NumericMatrix points);
RcppExport SEXP _fastlpr_rcpp_interp_nd(SEXP grid_valsSEXP, SEXP arrSEXP, SEXP pointsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type grid_vals(grid_valsSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type arr(arrSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type points(pointsSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_interp_nd(grid_vals, arr, points));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_interp_nd_complex
ComplexVector rcpp_interp_nd_complex(List grid_vals, ComplexVector arr, NumericMatrix points);
RcppExport SEXP _fastlpr_rcpp_interp_nd_complex(SEXP grid_valsSEXP, SEXP arrSEXP, SEXP pointsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type grid_vals(grid_valsSEXP);
    Rcpp::traits::input_parameter< ComplexVector >::type arr(arrSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type points(pointsSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_interp_nd_complex(grid_vals, arr, points));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_aperm
NumericVector rcpp_aperm(NumericVector arr, IntegerVector dims, IntegerVector perm);
RcppExport SEXP _fastlpr_rcpp_aperm(SEXP arrSEXP, SEXP dimsSEXP, SEXP permSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type arr(arrSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type dims(dimsSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type perm(permSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_aperm(arr, dims, perm));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_aperm_complex
ComplexVector rcpp_aperm_complex(ComplexVector arr, IntegerVector dims, IntegerVector perm);
RcppExport SEXP _fastlpr_rcpp_aperm_complex(SEXP arrSEXP, SEXP dimsSEXP, SEXP permSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< ComplexVector >::type arr(arrSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type dims(dimsSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type perm(permSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_aperm_complex(arr, dims, perm));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_get_num_threads
int rcpp_get_num_threads();
RcppExport SEXP _fastlpr_rcpp_get_num_threads() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    rcpp_result_gen = Rcpp::wrap(rcpp_get_num_threads());
    return rcpp_result_gen;
END_RCPP
}
// rcpp_set_num_threads
void rcpp_set_num_threads(int n);
RcppExport SEXP _fastlpr_rcpp_set_num_threads(SEXP nSEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    rcpp_set_num_threads(n);
    return R_NilValue;
END_RCPP
}
// rcpp_interp_batch_nd
NumericMatrix rcpp_interp_batch_nd(List grid_vectors, NumericVector values, IntegerVector dims, NumericMatrix query_points);
RcppExport SEXP _fastlpr_rcpp_interp_batch_nd(SEXP grid_vectorsSEXP, SEXP valuesSEXP, SEXP dimsSEXP, SEXP query_pointsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type grid_vectors(grid_vectorsSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type values(valuesSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type dims(dimsSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type query_points(query_pointsSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_interp_batch_nd(grid_vectors, values, dims, query_points));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_fft3d_batch
ComplexVector rcpp_fft3d_batch(ComplexVector arr, int n1, int n2, int n3, int dh, bool inverse);
RcppExport SEXP _fastlpr_rcpp_fft3d_batch(SEXP arrSEXP, SEXP n1SEXP, SEXP n2SEXP, SEXP n3SEXP, SEXP dhSEXP, SEXP inverseSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< ComplexVector >::type arr(arrSEXP);
    Rcpp::traits::input_parameter< int >::type n1(n1SEXP);
    Rcpp::traits::input_parameter< int >::type n2(n2SEXP);
    Rcpp::traits::input_parameter< int >::type n3(n3SEXP);
    Rcpp::traits::input_parameter< int >::type dh(dhSEXP);
    Rcpp::traits::input_parameter< bool >::type inverse(inverseSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_fft3d_batch(arr, n1, n2, n3, dh, inverse));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_fft2d_batch
ComplexVector rcpp_fft2d_batch(ComplexVector arr, int n1, int n2, int n_slices, bool inverse);
RcppExport SEXP _fastlpr_rcpp_fft2d_batch(SEXP arrSEXP, SEXP n1SEXP, SEXP n2SEXP, SEXP n_slicesSEXP, SEXP inverseSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< ComplexVector >::type arr(arrSEXP);
    Rcpp::traits::input_parameter< int >::type n1(n1SEXP);
    Rcpp::traits::input_parameter< int >::type n2(n2SEXP);
    Rcpp::traits::input_parameter< int >::type n_slices(n_slicesSEXP);
    Rcpp::traits::input_parameter< bool >::type inverse(inverseSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_fft2d_batch(arr, n1, n2, n_slices, inverse));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_broadcast_multiply
ComplexVector rcpp_broadcast_multiply(ComplexVector kdf, ComplexVector y_ft, int L, int dh, int dy);
RcppExport SEXP _fastlpr_rcpp_broadcast_multiply(SEXP kdfSEXP, SEXP y_ftSEXP, SEXP LSEXP, SEXP dhSEXP, SEXP dySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< ComplexVector >::type kdf(kdfSEXP);
    Rcpp::traits::input_parameter< ComplexVector >::type y_ft(y_ftSEXP);
    Rcpp::traits::input_parameter< int >::type L(LSEXP);
    Rcpp::traits::input_parameter< int >::type dh(dhSEXP);
    Rcpp::traits::input_parameter< int >::type dy(dySEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_broadcast_multiply(kdf, y_ft, L, dh, dy));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_broadcast_multiply_nd
ComplexVector rcpp_broadcast_multiply_nd(ComplexVector kdf, ComplexVector y_ft, IntegerVector spatial_dims, int dh, int dy);
RcppExport SEXP _fastlpr_rcpp_broadcast_multiply_nd(SEXP kdfSEXP, SEXP y_ftSEXP, SEXP spatial_dimsSEXP, SEXP dhSEXP, SEXP dySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< ComplexVector >::type kdf(kdfSEXP);
    Rcpp::traits::input_parameter< ComplexVector >::type y_ft(y_ftSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type spatial_dims(spatial_dimsSEXP);
    Rcpp::traits::input_parameter< int >::type dh(dhSEXP);
    Rcpp::traits::input_parameter< int >::type dy(dySEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_broadcast_multiply_nd(kdf, y_ft, spatial_dims, dh, dy));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_extract_subarray
NumericVector rcpp_extract_subarray(NumericVector arr, IntegerVector dims, IntegerVector starts, IntegerVector ends);
RcppExport SEXP _fastlpr_rcpp_extract_subarray(SEXP arrSEXP, SEXP dimsSEXP, SEXP startsSEXP, SEXP endsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type arr(arrSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type dims(dimsSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type starts(startsSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type ends(endsSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_extract_subarray(arr, dims, starts, ends));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_conv_nd_full
ComplexVector rcpp_conv_nd_full(ComplexVector kdf, ComplexVector y_ft, IntegerVector L_vec, int dh, int dy, IntegerMatrix qout, bool y_isreal);
RcppExport SEXP _fastlpr_rcpp_conv_nd_full(SEXP kdfSEXP, SEXP y_ftSEXP, SEXP L_vecSEXP, SEXP dhSEXP, SEXP dySEXP, SEXP qoutSEXP, SEXP y_isrealSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< ComplexVector >::type kdf(kdfSEXP);
    Rcpp::traits::input_parameter< ComplexVector >::type y_ft(y_ftSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type L_vec(L_vecSEXP);
    Rcpp::traits::input_parameter< int >::type dh(dhSEXP);
    Rcpp::traits::input_parameter< int >::type dy(dySEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type qout(qoutSEXP);
    Rcpp::traits::input_parameter< bool >::type y_isreal(y_isrealSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_conv_nd_full(kdf, y_ft, L_vec, dh, dy, qout, y_isreal));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_gaussian_kernel_grid
NumericVector rcpp_gaussian_kernel_grid(NumericVector xgrid, NumericMatrix h);
RcppExport SEXP _fastlpr_rcpp_gaussian_kernel_grid(SEXP xgridSEXP, SEXP hSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type xgrid(xgridSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type h(hSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_gaussian_kernel_grid(xgrid, h));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_nufft_type1
ComplexVector rcpp_nufft_type1(NumericMatrix knot, NumericMatrix y, IntegerVector L_vec, int accuracy);
RcppExport SEXP _fastlpr_rcpp_nufft_type1(SEXP knotSEXP, SEXP ySEXP, SEXP L_vecSEXP, SEXP accuracySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type knot(knotSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type y(ySEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type L_vec(L_vecSEXP);
    Rcpp::traits::input_parameter< int >::type accuracy(accuracySEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_nufft_type1(knot, y, L_vec, accuracy));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_nufft_type1_complex
ComplexVector rcpp_nufft_type1_complex(NumericMatrix knot, ComplexMatrix y, IntegerVector L_vec, int accuracy);
RcppExport SEXP _fastlpr_rcpp_nufft_type1_complex(SEXP knotSEXP, SEXP ySEXP, SEXP L_vecSEXP, SEXP accuracySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type knot(knotSEXP);
    Rcpp::traits::input_parameter< ComplexMatrix >::type y(ySEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type L_vec(L_vecSEXP);
    Rcpp::traits::input_parameter< int >::type accuracy(accuracySEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_nufft_type1_complex(knot, y, L_vec, accuracy));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_scale_knots
NumericMatrix rcpp_scale_knots(NumericMatrix knot, NumericVector N, NumericVector Fs);
RcppExport SEXP _fastlpr_rcpp_scale_knots(SEXP knotSEXP, SEXP NSEXP, SEXP FsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type knot(knotSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type N(NSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type Fs(FsSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_scale_knots(knot, N, Fs));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_nufft_binning
ComplexVector rcpp_nufft_binning(NumericMatrix knot, NumericMatrix y, IntegerVector Mr_vec);
RcppExport SEXP _fastlpr_rcpp_nufft_binning(SEXP knotSEXP, SEXP ySEXP, SEXP Mr_vecSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type knot(knotSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type y(ySEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type Mr_vec(Mr_vecSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_nufft_binning(knot, y, Mr_vec));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_nufft_binning_complex
ComplexVector rcpp_nufft_binning_complex(NumericMatrix knot, ComplexMatrix y, IntegerVector Mr_vec);
RcppExport SEXP _fastlpr_rcpp_nufft_binning_complex(SEXP knotSEXP, SEXP ySEXP, SEXP Mr_vecSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type knot(knotSEXP);
    Rcpp::traits::input_parameter< ComplexMatrix >::type y(ySEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type Mr_vec(Mr_vecSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_nufft_binning_complex(knot, y, Mr_vec));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_info
List rcpp_info();
RcppExport SEXP _fastlpr_rcpp_info() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    rcpp_result_gen = Rcpp::wrap(rcpp_info());
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_fastlpr_rcpp_fft_axis", (DL_FUNC) &_fastlpr_rcpp_fft_axis, 4},
    {"_fastlpr_rcpp_fft_nd", (DL_FUNC) &_fastlpr_rcpp_fft_nd, 3},
    {"_fastlpr_rcpp_fft_nd_real", (DL_FUNC) &_fastlpr_rcpp_fft_nd_real, 3},
    {"_fastlpr_rcpp_interp_nd", (DL_FUNC) &_fastlpr_rcpp_interp_nd, 3},
    {"_fastlpr_rcpp_interp_nd_complex", (DL_FUNC) &_fastlpr_rcpp_interp_nd_complex, 3},
    {"_fastlpr_rcpp_aperm", (DL_FUNC) &_fastlpr_rcpp_aperm, 3},
    {"_fastlpr_rcpp_aperm_complex", (DL_FUNC) &_fastlpr_rcpp_aperm_complex, 3},
    {"_fastlpr_rcpp_get_num_threads", (DL_FUNC) &_fastlpr_rcpp_get_num_threads, 0},
    {"_fastlpr_rcpp_set_num_threads", (DL_FUNC) &_fastlpr_rcpp_set_num_threads, 1},
    {"_fastlpr_rcpp_interp_batch_nd", (DL_FUNC) &_fastlpr_rcpp_interp_batch_nd, 4},
    {"_fastlpr_rcpp_fft3d_batch", (DL_FUNC) &_fastlpr_rcpp_fft3d_batch, 6},
    {"_fastlpr_rcpp_fft2d_batch", (DL_FUNC) &_fastlpr_rcpp_fft2d_batch, 5},
    {"_fastlpr_rcpp_broadcast_multiply", (DL_FUNC) &_fastlpr_rcpp_broadcast_multiply, 5},
    {"_fastlpr_rcpp_broadcast_multiply_nd", (DL_FUNC) &_fastlpr_rcpp_broadcast_multiply_nd, 5},
    {"_fastlpr_rcpp_extract_subarray", (DL_FUNC) &_fastlpr_rcpp_extract_subarray, 4},
    {"_fastlpr_rcpp_conv_nd_full", (DL_FUNC) &_fastlpr_rcpp_conv_nd_full, 7},
    {"_fastlpr_rcpp_gaussian_kernel_grid", (DL_FUNC) &_fastlpr_rcpp_gaussian_kernel_grid, 2},
    {"_fastlpr_rcpp_nufft_type1", (DL_FUNC) &_fastlpr_rcpp_nufft_type1, 4},
    {"_fastlpr_rcpp_nufft_type1_complex", (DL_FUNC) &_fastlpr_rcpp_nufft_type1_complex, 4},
    {"_fastlpr_rcpp_scale_knots", (DL_FUNC) &_fastlpr_rcpp_scale_knots, 3},
    {"_fastlpr_rcpp_nufft_binning", (DL_FUNC) &_fastlpr_rcpp_nufft_binning, 3},
    {"_fastlpr_rcpp_nufft_binning_complex", (DL_FUNC) &_fastlpr_rcpp_nufft_binning_complex, 3},
    {"_fastlpr_rcpp_info", (DL_FUNC) &_fastlpr_rcpp_info, 0},
    {NULL, NULL, 0}
};

RcppExport void R_init_fastlpr(DllInfo *dll) {
    R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
    R_useDynamicSymbols(dll, FALSE);
}
