Exercise

Exported and unexported functions

Functions that are decorated with the [[Rcpp::export]] special comment are made available to the R console. However, you typically don't want to export every function to R. Instead, some functions can be kept internal to C++. These are often lower-level calculation functions or utility functions.

Recall the function that calculates distance from a point in the 2d space to the origin:

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

Here, you'll update the code so that the dist function (that is exported) calls an unexported square function that just squares a double.

Instructions

100 XP
  • Complete the definition of square() so that it accepts and returns a double, …
  • that is equal to x times x.
  • Update the definition of dist() to use square(). That is, to return the square root of the sum of square of x and the square of y.