Comece agoraComece grátis

Funções exportadas e não exportadas

Funções decoradas com o comentário especial [[Rcpp::export]] ficam disponíveis no console do R. No entanto, você normalmente não quer exportar toda função para o R. Em vez disso, algumas funções podem permanecer internas ao C++. Geralmente, são funções de cálculo de baixo nível ou utilitárias.

Relembre a função que calcula a distância de um ponto no espaço 2D até a origem:

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

Aqui, você vai atualizar o código para que a função dist (que é exportada) chame uma função não exportada square que apenas eleva um double ao quadrado.

Este exercicio faz parte do curso

Otimizando código R com Rcpp

Ver curso

Instruções do exercicio

  • Complete a definição de square() para que ela aceite e retorne um double, …
  • que seja igual a x vezes x.
  • Atualize a definição de dist() para usar square(). Ou seja, para retornar a raiz quadrada da soma do quadrado de x com o quadrado de y.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

#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(___ + ___);
}
Editar e Executar Código