r - Why when I write with Rcpp I do not need to include some libraries which I should include writing in plain C++? -
मैं Rcpp
src & lt; - 'Rcpp का उपयोग कर कोड का निम्न भाग चला रहा था :: न्यूमेरिक वेक्टर वीसीएक्स (वीएक्स); डबल पी = आरसीपीपी :: के रूप में & lt; डबल & gt; (डीडी); डबल राशि = 0.0; के लिए (int i = 0; i & lt; vec.size (); i ++) {sum + = pow (vec [i], p); } वापसी आरसीपीपी :: लपेट (राशि); मज़ेदार & lt; - cxxfunction (हस्ताक्षर (vx = "numeric", dd = "numeric"), src, प्लगइन = "आरक्यूपी") मज़े (1: 4,2) और मुझे परिणाम 30 मिलता है (जो सही है)। अगर मैं फ़ंक्शन पाउ (x, y) को सादे सी ++ में चलाता हूं तो मुझे
#include & lt; math & gt; मुझे आरसीपीपी के तहत ऐसा लिखने की आवश्यकता क्यों नहीं है?
जब आप आर ऑब्जेक्ट पर इसका उपयोग करते हैं तो pow फ़ंक्शन आरसीपीपी चीनी का हिस्सा है। मुझे नहीं लगता कि गणित पुस्तकालय से हर समारोह में कनवर्ट किया गया है, इसलिए प्रत्येक समारोह आर वस्तुओं पर काम करने की अपेक्षा न करें। आप कार्यान्वित कार्यों में से कुछ का वर्णन विनेट देख सकते हैं
अब, यदि आप इसके बजाय सोच रहे हैं कि आपको सामान्य कोड ++ वस्तु पर pow का प्रयोग करते समय गणित पुस्तकालय की आवश्यकता क्यों नहीं है, जैसे कि यह बहुत आसान उदाहरण:
src & lt; - 'डबल t = 2; डबल ओ = पाउ (टी, 2); वापसी लपेटो (ओ); मज़े & लेफ्टिनेंट; - cxxfunction (हस्ताक्षर (), src, प्लगइन = "आरसीपीपी") मज़ेदार () [1] 4 ऐसा इसलिए है क्योंकि आरकैप वास्तव में डिफ़ॉल्ट रूप से हेडर आयात कर रहा है जैसा कि आपको संदेह है । हेडर की सूची को स्रोत कोड में दिखाया गया है। आपके लिए ब्याज की फाइल संभावना है जहां आप देखेंगे कि सेमीथ पुस्तकालय शामिल है। अधिकांश बेस C ++ शीर्षलेख स्थित होने लगते हैं।
उस ने कहा, आप स्रोत कोड के माध्यम से जाने के लिए कष्टप्रद खोज सकते हैं और जोश द्वारा सुझाई गई कॉल वास्तव में कुछ विशेष है जो पुस्तकालयों पर त्वरित रूप से देखने के लिए है लेकिन आपको यह भी पता होना चाहिए कि वास्तव में जानकारी कहाँ है एक एकल कॉल, आईएमएचओ। के जादू के बजाय आता है।
Comments
Post a Comment