BaşlayınÜcretsiz başlayın

Dışa aktarılan ve aktarılamayan fonksiyonlar

[[Rcpp::export]] özel yorumuyla işaretlenen fonksiyonlar R konsolunda kullanılabilir hale gelir. Ancak genellikle her fonksiyonu R'a aktarmak istemezsin. Bunun yerine, bazı fonksiyonlar C++ içinde dahili tutulabilir. Bunlar çoğunlukla daha alt düzey hesaplama fonksiyonları veya yardımcı (utility) fonksiyonlardır.

2B uzaydaki bir noktadan orijine olan mesafeyi hesaplayan fonksiyonu hatırla:

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

Burada, (dışa aktarılan) dist fonksiyonunun, yalnızca bir double'ın karesini alan ve dışa aktarılmayan bir square fonksiyonunu çağıracak şekilde kodu güncelleyeceksin.

Bu egzersiz, kursun bir parçasıdır

Rcpp ile R Kodunu Optimize Etme

Kursa Göz Atın

Egzersiz talimatları

  • square() tanımını, bir double kabul edip bir double döndürecek şekilde tamamla, …
  • ve dönen değer x çarpı x olsun.
  • dist() tanımını square() kullanacak şekilde güncelle. Yani, x'in karesi ile y'nin karesinin toplamının karekökünü döndürsün.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

#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(___ + ___);
}
Kodu Düzenle ve Çalıştır