ÎncepețiÎncepe gratuit

Funcții exportate și neexportate

Funcțiile marcate cu comentariul special [[Rcpp::export]] devin disponibile în consola R. Totuși, de obicei nu vrei să exporți fiecare funcție în R. Unele funcții pot rămâne interne în C++ – de obicei sunt funcții de calcul de nivel jos sau funcții utilitare.

Reamintește-ți funcția care calculează distanța de la un punct din spațiul 2D la origine:

double dist( double x, double y) {
  return sqrt( x*x + y*y ) ;
}

În acest exercițiu, vei actualiza codul astfel încât funcția dist (care este exportată) să apeleze o funcție neexportată, square, care ridică la pătrat un double.

Acest exercițiu face parte din cursul

Optimizarea codului R cu Rcpp

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează definiția funcției square() astfel încât să accepte și să returneze un double, …
  • care este egal cu x înmulțit cu x.
  • Actualizează definiția funcției dist() pentru a folosi square(). Adică, returnează rădăcina pătrată a sumei dintre pătratul lui x și pătratul lui y.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

#include 
using namespace Rcpp; 

// Make square() accept and return a double
___ square(___ x) {
  // Return x times x
  return ___ ;
}

// [[Rcpp::export]]
double dist(double x, double y) {
  // Change this to use square()
  return sqrt(___ + ___);
}
Editează și rulează codul