Rcpp : R 與 C++ 的無縫整合
內容描述
<內容簡介>
《Rcpp:R與C++的無縫整合》分為四部分:簡介、核心數據類型、進階話題、應用,包括:第1章Rcpp簡介;第2章工具與設置;第3章數據結構:第壹部分;第4章數據結構:第二部分;第5章在擴展包中使用Rcpp;第6章擴展Rcpp;第7章Modules;第8章Sugar;第9章RInside;第10章RcppArmadillo;第11章RcppGSL;第12章RcppEigen。
<目錄>
中譯本序
譯者序
前言
致謝
第一部分簡介
第1章Rcpp簡介
1.1背景:從R到C++
1.2示例一
1.2.1問題設置
1.2.2R解決方案之一
1.2.3C++解決方案之一
1.2.4使用inline擴展包
1.2.5使用Rcpp attributes
1.2.6R解決方案之二
1.2.7C++解決方案之二
1.2.8R解決方案之三
1.2.9C++解決方案之三
1.3示例二
1.3.1問題設置
1.3.2R解決方案
1.3 .3C++解決方案
1.3.4比較
1.4小結
第2章工具與設置
2.1整體設置
2.2編譯器
2.2.1一般設置
2.2.2平臺相關的註意事項
2.3R應用程序接口(API)
2.4首次使用Rcpp進行編譯
2.5 inline擴展包
2.5.1概覽
2.5.2使用includes
2.5.3使用plugin
2.5.4製作plugin
2.6Rcpp attributes
2.7異常處理
第二部分核心數據類型
第3章數據結構:第一部分
3.1RObject類
3.2IntegerVector類
3.2. 1示例一:返回完美數
3.2.2示例二:使用輸入
3.2.3示例三:使用錯誤的輸入
3.3NumbericVector類
3.3.1示例一:使用兩個輸入
3.3.2示例二:引入clone
3.3.3示例三:矩陣
3.4其他向量類
3.4.1LogicalVector
3.4.2CharacterVector
3.4.3RawVector
第4章數據結構:第二部分
4.1Named類
4.2List類,又名GenericVector類
4.2.1從R中接受參數的List
4.2.2使用List返回參數給R
4.3DataFrame類
4.4Function類
4.4.1示例一:使用用戶提供的函數
4.4.2示例二:訪問R函數
4.5Environment類
4.6S4類
4.7ReferenceClasses
4.8R數學庫函數
第三部分進階話題
第5章在擴展包中使用Rcpp
5.1簡介
5.2使用Rcpp.package.skeleton
5.2.1概述
5.2.2R代碼
5.2.3C++代碼
5.2.4DESCRIPTION
5.2.5Makevars和Makevars.win
5.2.6NAMESPACE
5.2.7幫助文件
5.3案例學習:wordcloud擴展包
5.4進一步的示例
第6章擴展Rcpp
6.1簡介
6.2擴展Rcpp::wrap
6.2.1侵入式擴展
6.2.2非侵入式擴展
6.2.3模板與局部特化
6.3擴展Rcpp::as
6.3 .1侵入式擴展
6.3.2非侵入式擴展
6.3.3模板與局部特化
6.4:案例學習:RcppBDT擴展包
6.5進一步的示例
第7章Modules
7.1動機
7.1.1使用Rcpp導出函數
7.1.2使用Rcpp導出類
7.2Rcpp Modules
7.2.1使用:Rcpp Modules導出C++函數
7.2.2使用:Rcpp Modules導出C++類
7.3在其他擴展包中使用module
7.3.1命名空間的導人導出
7.3.2擴展包框架生成器對module的支持
7.3.3module文檔
7.4案例學習:RcppCNPy擴展包
7.5進一步的示例
第8章Sugar
8.1動機
8.2運算符
8.2.1二元算術運算符
8.2.2二元邏輯運算符
8.2.3一元運算符
8.3函數
8.3.1產生單一邏輯結果的函數
8.3.2產生sugar表達式的函數
8.3.3數學函數
8.3.4d/q/p/r統計函數
8.4性能
8.5實現
8.5.1CRTP模式
8.5.2VectorBase類
8.5. 3實例:sapply
8.6案例學習:使用Rcpp sugar計算π
第四部分應用
第9章RInside
9.1動機
9.2示例一:Hello,World!
9.3示例二:數據傳輸
9.4示例三:對R表達式求值
9.5示例四:C++通過R作圖
9.6示例五:在MPI中使用RInside
9.7其他示例
第10章RcppArmadillo
10.1概述
10.2動機:FastLm
10.2.1實現
10.2.2性能比較
10.2.3一個警告
10.3案例學習:使用RcppArmadillo實現卡爾曼濾波
10.4.RcppArmadillo和Armadillo之間的區別
第11章RcppGSL
11.1簡介
11.2動機:FastLm
11.3向量
11.3.1GSL向量
11.3.2RcppGSL: :vector
11.3.3對應
11.3.4向量視圖(vector view)
11.4矩陣
11.4.1生成矩陣
11.4.2隱式轉換
11.4.3索引
11.4.4方法
11.4.5matrix view類
11.5在自己的擴展包裡使用RcppGS /
11.5.1configure腳本
11.5.2src文件夾
11.5.3R文件夾
11.6通過inline使用RcppGSL
11.7案例:使用RcppGSL實現基於GSL的B—樣條擬合
第12章RcppEigen
12.1簡介
12.2Eigen類
12.2.1固定大小的向量和矩陣
12.2.2動態大小的向量和矩陣
12.2.3用於預製組件操作的數組
12.2.4向量、矩陣和特殊矩陣的映射對象
12.3案例學習:使用RcppEigen實現卡爾曼濾波
12.4線性代數和矩陣分解
12.4.1基本求解器
12.4.2特徵值和特徵向量
12.4.3最小二乘求解器
12.4.4顯秩分解
12.5案例學習:RcppEigen中用於線性模型的C++工廠
附錄AR程序員的C++入門
A. 1編譯而不是解釋
A.2靜態類型
A.3一個更好的C
A.4面向對象編程(但與S3或S4不同)
A.5泛型編程和STL
A.6模板編程
A.7C++的進一步推薦讀物
參考文獻
主題索引
軟件索引
作者索引
文摘
版權頁: