-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.Rmd
108 lines (84 loc) · 2.76 KB
/
index.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
---
title: "Developping R packages with C++"
subtitle: "A beginner guide"
author: "Hervé Perdry"
date: '`r Sys.Date()`'
output:
pdf_document:
includes:
in_header: small_header.tex
number_sections: yes
pandoc_args: --top-level-division=chapter
toc: yes
lang: fr
---
<style type="text/css">
h1.title {
font-size: 38px;
}
h1 { /* Header 1 */
font-size: 28px;
}
h2 { /* Header 2 */
font-size: 22px;
}
h3 { /* Header 3 */
font-size: 18px;
}
code{ /* Code block */
font-size: 13px;
}
pre {
font-size: 13px;
}
</style>
```{r global_options, include=FALSE}
# library("knitr")
# opts_chunk$set(prompt = TRUE, comment = NA)
options(width = 92)
# !!!!! pour coller la sortie à l'instruction !!!!!
hook1 <- function(x){ gsub("```\n*```r*\n*", "", x) }
hook2 <- function(x){ gsub("```\n+```\n", "", x) }
knitr::knit_hooks$set(document = hook2)
```
# About this document {-}
This document assumes that the reader is familiar with R; no previous
knowledge of C++ is assumed.
The first chapter
presents rapidly the main data structures used in R (vectors, matrix, factors,
list, data frames), showing in particular how
The second chapter presents the very bases of C++ and RCpp. In this chapter you will
use the function `Rcpp::sourceCpp` to compile C++ code from R. All the example
code is available on github.
The third chapter shows how to create a R package. The resulting package can be installed
from github.
After that, every chapter is associated to a package that you can install to test
directly the code in it.
Les comparaisons de temps d'exécution qui apparaissent ici ont été obtenues avec
une installation de R « standard » (pas de librairie comme openBlas ou autre),
une compilation avec `clang++`, sur une machine linux disposant de 8 cœurs à 3.60 GHz,
avec un cache de 8 MB. Des comparaisons avec d'autres compilateurs ou sur d'autres
machines peuvent donner des résultats (très) différents, tant en valeur des temps
d'exécution qu'en comparaison des performances.
L'idéal serait d'amener les lecteurs d'une part à une bonne connaissance des
possibilités offertes par `Rcpp`, d'autre part au niveau nécessaire pour
ouvrir `The C++ programming language` de Bjarne Stroustrup -- on recommande,
avant de se frotter à cet énorme et patibulaire ouvrage de référence (1300 pages),
le plus court et plus amène `A tour of C++` du même auteur.
`r if(knitr:::pandoc_to() == "html") "Une version pdf de ce document est également <a href = 'intro_cpp.pdf'>disponible ici</a>"`
```{r child="01-intro.Rmd"}
```
```{r child="02-bases.Rmd"}
```
```{r child="03-packages.Rmd"}
```
```{r child="04-manipuler.Rmd"}
```
```{r child="05-sugar.Rmd"}
```
```{r child="06-Metropolis.Rmd"}
```
```{r child="07-moreCpp.Rmd"}
```
```{r child="xx-objets.Rmd"}
```