2009-04-21 15 views
7

के साथ तत्व-वार ऑपरेशंस मैं बूस्ट मैट्रिक्स और वेक्टर प्रकारों पर तत्व-आधारित कार्यों को निष्पादित करना चाहता हूं, उदा। प्रत्येक तत्व का लघुगणक लें, प्रत्येक तत्व को फैलाएं, गामा और डिगम्मा जैसे विशेष कार्यों को लागू करें। (मैट्रैस और वैक्टरों पर लागू इन कार्यों के मैटलैब के उपचार के समान।)बूस्ट सी ++ ublas मैट्रिक्स और वेक्टर प्रकार

मुझे लगता है कि एक सहायक समारोह लिखना प्रत्येक वांछित समारोह के लिए यह मजबूर होना पर्याप्त होगा, लेकिन यह अपमानजनक लगता है।

इसी तरह, बूस्ट विकी vectorize standard functions पर कुछ कोड प्रदान करता है, लेकिन यह काफी जटिल लगता है।

valarray सुझाव दिया गया है, लेकिन मैं, डेटा प्रकार के बीच परिवर्तित करने से बचना चाहते हैं के रूप में मैं अन्य कार्यों के लिए ublas डेटा प्रकार (मैट्रिक्स उत्पादों, विरल मैट्रिक्स, आदि)

किसी भी मदद बहुत सराहना की जरूरत है ।

उत्तर

9

begin1()/end1() का उपयोग काम नहीं करेगा क्योंकि यह डिफ़ॉल्ट कॉलम स्थिति (0) में तत्व तक पहुंच प्रदान करता है: इसके परिणामस्वरूप, आप केवल पहले कॉलम में सभी तत्वों तक पहुंच सकते हैं। मैं इस एक मामले में जहां कार्यान्वयन काफी पूरा नहीं हुआ है न लगे

std::transform(mat.data().begin(), mat.data().end(), 
       mat.data().begin(), boost::math::tgamma) ; 

: यह के माध्यम से अनुक्रमिक अभिगम प्राप्त करने के लिए बेहतर है (इस अर्थ में कि आप अपेक्षित व्यवहार पाने में) है।

का आनंद लें!

संबंधित मुद्दे