2011-06-14 15 views

उत्तर

6

वर्तमान में, सबसे आसान इंटरफ़ेस thrust::reduce द्वारा प्रदान किया जाता है।

जैसा कि आपने देखा है, Mars भी है।

+0

क्या जोर :: कम करता है वह नहीं है जिसे मैं मानचित्र-कम कहूंगा। जोर :: कम कार्यक्षमता कई कार्यात्मक प्रोग्रामिंग संदर्भों में पाया गया फ़ंक्शन कम करता है जो अनुक्रम, प्रारंभिक मान और एक बाइनरी ऑपरेशन को एक मान में बदल देता है। स्कैला में, इसे "फ़ोल्ड लेफ्ट" या "फ़ोल्ड राइट" कहा जाता है लेकिन अधिकांश कार्यात्मक प्रोग्रामिंग भाषाओं में इसे "कम करें" कहा जाता है। एक नक्शा-कम एल्गोरिदम का कम चरण एक कुंजी से जुड़े मूल्यों के सेट पर कुछ ऑपरेशन करता है, लेकिन यह ऑपरेशन आवश्यक बाइनरी नहीं है और अनुक्रम को एक ही मान में बदलना आवश्यक नहीं है। –

0

साल पहले मैंने cumar लागू किया है।

जैसा कि मैक ओएस एक्स और 'एनवीसीसी' कंपाइलर का उपयोग कर रहा था, ऐप्पल के 'क्लैंग' से खुश नहीं था, मैंने इस पुस्तकालय को शुद्ध सी ++ (और लैम्ब्डा का स्वाद) बनाया था।

एक ठेठ नक्शा आपरेशन इस तरह दिखता है:

//A = B + C, all of length 'n' 
cumar::map()("[](double a&, double b, double c){ a = b+c; }")(A, A+n, B, C); 

आपरेशन को कम के लिए, यह इस तरह दिखता है:

// x = min(A), A of size 'n' 
cumar::reduce()("[](double a, double b){ return a < b ? a : b; }")(A, A+n);