1 option
Seamless R and C++ integration with Rcpp Dirk Eddelbuettel
Springer Nature - Springer Mathematics and Statistics (R0) eBooks 2013 English International Available online
View online- Format:
- Book
- Author/Creator:
- Eddelbuettel, Dirk
- Series:
- Use R! 64
- Language:
- English
- Subjects (All):
- Application program interfaces (Computer software).
- R (Computer program language).
- C++ (Computer program language).
- Statistics--Computer programs.
- Statistics.
- Statistics and Computing/Statistics Programs.
- Statistical Theory and Methods.
- Probability and Statistics in Computer Science.
- APIs (interfaces).
- Local Subjects:
- Statistics.
- Statistics and Computing/Statistics Programs.
- Statistical Theory and Methods.
- Probability and Statistics in Computer Science.
- Physical Description:
- 1 online resource
- Place of Publication:
- New York, NY Springer ©2013
- Language Note:
- English
- System Details:
- text file
- Summary:
- This book provides the first comprehensive introduction to Rcpp, which has become the most widely-used language extension for R, and is deployed by over one-hundred different CRAN and BioConductor packages. Rcpp permits users to pass scalars, vectors, matrices, list or entire R objects back and forth between R and C++ with ease. This brings the depth of the R analysis framework together with the power, speed, and efficiency of C++. -- Edited summary from book
- Contents:
- Introduction. A Gentle Introduction to Rcpp Tools and Setup Core Data Types. Data Structures: Part One Data Structures: Part Two Advanced Topics. Using Rcpp in Your Package Extending Rcpp Modules Sugar Applications. RInside RcppArmadillo RcppGSL RcppEigen
- Appendix. C++ for R Programmers
- Machine generated contents note: pt. I Introduction
- 1. Gentle Introduction to Rcpp
- 1.1. Background: From R to C++
- 1.2. First Example
- 1.2.1. Problem Setting
- 1.2.2. First R Solution
- 1.2.3. First C++ Solution
- 1.2.4. Using Inline
- 1.2.5. Using Rcpp Attributes
- 1.2.6. Second R Solution
- 1.2.7. Second C++ Solution
- 1.2.8. Third R Solution
- 1.2.9. Third C++ Solution
- 1.3. Second Example
- 1.3.1. Problem Setting
- 1.3.2. R Solution
- 1.3.3. C++ Solution
- 1.3.4. Comparison
- 1.4. Summary
- 2. Tools and Setup
- 2.1. Overall Setup
- 2.2. Compilers
- 2.2.1. General Setup
- 2.2.2. Platform-Specific Notes
- 2.3. R Application Programming Interface
- 2.4. First Compilation with Rcpp
- 2.5. Inline Package
- 2.5.1. Overview
- 2.5.2. Using Includes
- 2.5.3. Using Plugins
- 2.5.4. Creating Plugins
- 2.6. Rcpp Attributes
- 2.7. Exception Handling
- pt. II Core Data Types
- 3. Data Structures: Part One
- 3.1. RObject Class
- 3.2. Integer Vector Class
- 3.2.1. First Example: Returning Perfect Numbers
- 3.2.2. Second Example: Using Inputs
- 3.2.3. Third Example: Using Wrong Inputs
- 3.3. Numeric Vector Class
- 3.3.1. First Example: Using Two Inputs
- 3.3.2. Second Example: Introducing clone
- 3.3.3. Third Example: Matrices
- 3.4. Other Vector Classes
- 3.4.1. Logical Vector
- 3.4.2. Character Vector
- 3.4.3. Raw Vector
- 4. Data Structures: Part Two
- 4.1. Named Class
- 4.2. List aka Generic Vector Class
- 4.2.1. List to Retrieve Parameters from R
- 4.2.2. List to Return Parameters to R
- 4.3. DataFrame Class
- 4.4. Function Class
- 4.4.1. First Example: Using a Supplied Function
- 4.4.2. Second Example: Accessing an R Function
- 4.5. Environment Class
- 4.6. S4 Class
- 4.7. Reference Classes
- 4.8. R Mathematics Library Functions
- pt. III Advanced Topics
- 5. Using Rcpp in Your Package
- 5.1. Introduction
- 5.2. Using Rcpp. package. skeleton
- 5.2.1. Overview
- 5.2.2. R Code
- 5.2.3. C++ Code
- 5.2.4. DESCRIPTION
- 5.2.5. Makevars and Makevars.win
- 5.2.6. NAMESPACE
- 5.2.7. Help Files
- 5.3. Case Study: The wordcloud Package
- 5.4. Further Examples
- 6. Extending Rcpp
- 6.1. Introduction
- 6.2. Extending Rcpp::wrap
- 6.2.1. Intrusive Extension
- 6.2.2. Nonintrusive Extension
- 6.2.3. Templates and Partial Specialization
- 6.3. Extending Rcpp::as
- 6.3.1. Intrusive Extension
- 6.3.2. Nonintrusive Extension
- 6.3.3. Templates and Partial Specialization
- 6.4. Case Study: The RcppBDT Package
- 6.5. Further Examples
- 7. Modules
- 7.1. Motivation
- 7.1.1. Exposing Functions Using Rcpp
- 7.1.2. Exposing Classes Using Rcpp
- 7.2. Rcpp Modules
- 7.2.1. Exposing C++ Functions Using Rcpp Modules
- 7.2.2. Exposing C++ Classes Using Rcpp Modules
- 7.3. Using Modules in Other Packages
- 7.3.1. Namespace Import/Export
- 7.3.2. Support for Modules in Skeleton Generator
- 7.3.3. Module Documentation
- 7.4. Case Study: The RcppCNPy Package
- 7.5. Further Examples
- 8. Sugar
- 8.1. Motivation
- 8.2. Operators
- 8.2.1. Binary Arithmetic Operators
- 8.2.2. Binary Logical Operators
- 8.2.3. Unary Operators
- 8.3. Functions
- 8.3.1. Functions Producing a Single Logical Result
- 8.3.2. Functions Producing Sugar Expressions
- 8.3.3. Mathematical Functions
- 8.3.4. d/q/p/q Statistical Functions
- 8.4. Performance
- 8.5. Implementation
- 8.5.1. Curiously Recurring Template Pattern
- 8.5.2. VectorBase Class
- 8.5.3. Example: sapply
- 8.6. Case Study: Computing π Using Rcpp sugar
- pt. IV Applications
- 9. RInside
- 9.1. Motivation
- 9.2. First Example: Hello, World!
- 9.3. Second Example: Data Transfer
- 9.4. Third Example: Evaluating R Expressions
- 9.5. Fourth Example: Plotting from C++ via R
- 9.6. Fifth Example: Using RInside Inside MPI
- 9.7. Other Examples
- 10. RcppArmadillo
- 10.1. Overview
- 10.2. Motivation: FastLm
- 10.2.1. Implementation
- 10.2.2. Performance Comparison
- 10.2.3. Caveat
- 10.3. Case Study: Kalman Filter Using RcppArmadillo
- 10.4. RcppArmadillo and Armadillo Differences
- 11. RcppGSL
- 11.1. Introduction
- 11.2. Motivation: FastLm
- 11.3. Vectors
- 11.3.1. GSL Vectors
- 11.3.2. RcppGSL::vector
- 11.3.3. Mapping
- 11.3.4. Vector Views
- 11.4. Matrices
- 11.4.1. Creating Matrices
- 11.4.2. Implicit Conversion
- 11.4.3. Indexing
- 11.4.4. Methods
- 11.4.5. Matrix Views
- 11.5. Using RcppGSL in Your Package
- 11.5.1. configure Script
- 11.5.2. src Directory
- 11.5.3. R Directory
- 11.6. Using RcppGSL with inline
- 11.7. Case Study: GSL-Based B-Spline Fit Using RcppGSL
- 12. RcppEigen
- 12.1. Introduction
- 12.2. Eigen classes
- 12.2.1. Fixed-Size Vectors and Matrices
- 12.2.2. Dynamic-Size Vectors and Matrices
- 12.2.3. Arrays for Per-Component Operations
- 12.2.4. Mapped Vectors and Matrices and Special Matrices
- 12.3. Case Study: Kalman filter using RcppEigen
- 12.4. Linear Algebra and Matrix Decompositions
- 12.4.1. Basic Solvers
- 12.4.2. Eigenvalues and Eigenvectors
- 12.4.3. Least-Squares Solvers
- 12.4.4. Rank-Revealing Decompositions
- 12.5. Case Study: C++ Factory for Linear Models in RcppEigen
- pt. V Appendix
- A. C++ for R Programmers
- A.1. Compiled Not Interpreted
- A.2. Statically Typed
- A.3. Better C
- A.4. Object-Oriented (But Not Like S3 or S4)
- A.5. Generic Programming and the STL
- A.6. Template Programming
- A.7. Further Reading on C++
- Notes:
- Includes bibliographical references and indexes
- Print version record
- Other Format:
- Printed edition:
- ISBN:
- 9781461468684
- 146146868X
- OCLC:
- 848789357
- Access Restriction:
- Restricted for use by site license
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.