Bắt đầu ngayBắt đầu miễn phí

Hàm xuất và không xuất

Các hàm được gắn chú thích đặc biệt [[Rcpp::export]] sẽ khả dụng trong R console. Tuy nhiên, bạn thường không muốn xuất mọi hàm sang R. Thay vào đó, một số hàm có thể được giữ nội bộ trong C++. Đây thường là các hàm tính toán cấp thấp hơn hoặc hàm tiện ích.

Hãy nhớ lại hàm tính khoảng cách từ một điểm trong không gian 2D đến gốc tọa độ:

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

Ở đây, bạn sẽ cập nhật mã sao cho hàm dist (được xuất) sẽ gọi một hàm square không xuất, chỉ đơn giản là bình phương một giá trị double.

Bài tập này là một phần của khóa học

Tối ưu hóa mã R với Rcpp

Xem khóa học

Hướng dẫn bài tập

  • Hoàn thiện định nghĩa square() để hàm nhận và trả về một double, …
  • bằng x nhân với x.
  • Cập nhật định nghĩa dist() để dùng square(). Tức là, trả về căn bậc hai của tổng bình phương của x và bình phương của y.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

#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(___ + ___);
}
Chỉnh sửa và Chạy Mã