Rcpp (0.8.4)

Seamless R and C++ Integration.


The Rcpp package provides a C++ library and template classes which facilitates the integration of R and C++. . R data types (SEXP) are matched to C++ objects in a class hierarchy. All R types are supported (vectors, functions, environment, etc ...) and each type is mapped to a dedicated class. For example, numeric vectors are represented as instances of the Rcpp::NumericVector class, environments are represented as instances of Rcpp::Environment, functions are represented as Rcpp::Function, etc ... . The underlying C++ library also offers the Rcpp::wrap function which is a templated function that transforms an arbitrary object into a SEXP. This makes it straightforward to implement C++ logic in terms of standard C++ types such as STL containers and then wrap them when they need to be returned to R. Internally, wrap uses advanced template meta programming techniques and currently supports : primitive types (bool, int, double, size_t, Rbyte, Rcomplex, std::string), STL containers (e.g std::vector) where T is wrappable, STL maps (e.g std::map) where T is wrappable, and arbitrary types that support implicit conversion to SEXP. . The reverse conversion (from R to C++) is performed by the Rcpp::as function template offering a similar degree of flexibility. . The package also contains a set of classes---which we call the 'classic' Rcpp API---that were provided in an earlier API for R and C++ integration. Due to its continued use, the classic API is retained and will be supported for the foreseable future. The classic API includes support for R types real, integer, character, vector, matrix, Date, datetime (i.e. POSIXct) at microsecond resolution, data frame, and function. Transfer to and from simple or complex SEXP objects is made easy thanks to automatic conversion made possible by C++ template conversion. Calling R functions from C++ is also supported. . C++ code can be 'inlined' by using the 'inline' package which will create a C++ function and compile, link and load it given the 'inlined' character argument which makes C++ integration very easy. . Several examples are included, and 735 unit tests in 329 unit test functions provide addtional usage examples.

Maintainer: Dirk Eddelbuettel and Romain Francois
Author(s): Dirk Eddelbuettel and Romain Francois, with contributions by Simon Urbanek, David Reiss and Douglas Bates; based on code written during 2005 and 2006 by Dominick Samperi

License: GPL (>= 2)

Uses: RUnit, inline
Reverse depends: accelerometry, acer, ADMMsigma, ALKr, Amelia, AnaCoDa, ANN, apcluster, auteur, BaBooN, baggr, baitmet, Barycenter, bayes4psy, BayesComm, bayesdfa, BayesianFROC, bayesLopod, BayesSenMC, bcf, bcp, beanz, bfa, bfp, bifactorial, bigReg, Biocomb, biofiles, blockcluster, blockmodels, BLPestimatoR, bmlm, BMSC, breathteststan, BreedingSchemeLanguage, brms, BuyseTest, CARBayes, CARBayesST, castor, ccaPP, cda, cladoRcpp, classify, climdex.pcic, clogitL1, clusternor, ClusterStability, ClustMMDD, collUtils, COMPoissonReg, ConConPiWiFun, conStruct, copCAR, coxmeg, CoxPlus, cstab, ctsem, curveDepth, cxxPack, cytometree, datastructures, dbmss, Delaporte, DeLorean, dendextendRcpp, DepthProc, dfpk, disclapmix, diversitree, DPP, DPWeibull, drgee, dslice, ecp, EditImputeCont, eggCounts, emIRT, EPGLM, EpiContactTrace, erah, ExactNumCI, fastGHQuad, fastR, FBFsearch, FCNN4R, fdaMixed, FDGcopulas, ffstream, flan, forecast, FRESA.CAD, FSInteract, fugeR, gaston, gdalcubes, gdm, GeDS, geiger, GeneticTools, GENLIB, GenomicTools, glmgraph, glmmfields, Gmisc, gMWT, gof, GOsummaries, GPlab, gppm, gRbase, gRim, growcurves, growfunctions, GSE, GUTS, GWmodel, hBayesDM, highlight, hkevp, httpuv, hypervolume, IBHM, icenReg, idealstan, idem, inarmix, jaatha, JAGUAR, jmotif, kergp, KernSmoothIRT, Kmisc, knor, LaF, landsepi, largeVis, ldat, llbayesireg, lm.br, lme4, lolog, ludic, MAINT.Data, ManifoldOptim, marked, matchingR, maxent, mbbefd, mcIRT, memnet, meshsimp, metaBMA, MetaStan, mets, mgwrsar, mice, microsamplingDesign, minqa, miscF, MixedDataImpute, mixlink, mlmm, mlvocab, MPTinR, MRIaggr, multicool, multinet, multmod, mvabund, MVB, mvcluster, ndl, NetworkAnalysis, nfda, ngspatial, NlinTS, nonlinearTseries, NPBayesImpute, NPBayesImputeCat, NPflow, oem, OncoBayes2, OneArmPhaseTwoStudy, OpenMx, optimization, orQA, OsteoBioR, oXim, PACVB, palm, parser, pbdBASE, pbdDMAT, pcFactorStan, PerMallows, pgsc, phylobase, planar, POUMM, PoweR, PReMiuM, ProbitSpatial, ProFit, promotionImpact, ProNet, propagate, prophet, psgp, quadrupen, RBesT, Rborist, RBrownie, Rchemcpp, Rclusterpp, RcppArmadillo, RcppBDT, rcppbugs, RcppClassic, RcppClassicExamples, RcppCNPy, RcppDE, RcppEigen, RcppExamples, RcppGSL, RcppOctave, RcppProgress, RcppRoll, RcppSMC, RcppXts, recmap, regsem, remote, rerf, revealedPrefs, rexpokit, Rfast, Rfast2, rforensicbatwing, rgam, RGeode, RInside, Rlda, Rlgt, rlme, Rmalschains, rmdcev, RMessenger, rmgarch, robustgam, robustHD, rococo, rotasym, rotations, RoughSets, RProtoBuf, RQuantLib, RSNNS, RSofia, Rsomoclu, rstan, rstanarm, rstanemax, rstansim, rstap, rtkore, rtkpp, rugarch, RVowpalWabbit, satellite, SBSA, SCPME, sdcMicro, sdcTable, seismicRoll, sequences, SILGGM, simFrame, sirt, snipEM, spacodiR, sparseHessianFD, sparseLTSEigen, spass, spatialfusion, SpatialTools, spp, spreadr, ssMousetrack, stcos, steadyICA, StMoSim, stochvol, stpm, stream, surveillance, survHE, survSNP, synlik, tagcloud, TAM, tbart, termstrc, themetagenomics, thurstonianIRT, TLMoments, tmg, transmission, treatSens, treeclim, trialr, trustOptim, unmarked, vegclust, VideoComparison, VIM, visit, volesti, waffect, walker, wingui, wordcloud, wsrf, zic
Reverse suggests: ActisoftR, bridgesampling, CodeDepends, crmPack, cxxfunplus, devtools, drake, hyperSpec, ie2misc, iemisc, inline, Kmisc, lineqGPR, lme4, mlxR, MPTinR, pkgbuild, pkgload, plogr, PopED, PracTools, progress, Quartet, R.SamBada, Rcereal, RcppParallel, RcppThread, RProtoBuf, scriptexec, sparsepp, StanHeaders, TreeSearch, uavRst

Released about 9 years ago.