2009-12-07 8 views
8

एन-आयामी सरणी के लिए आप किस लाइब्रेरी का उपयोग करते हैं?एआर, + मैट्रिक्स, वेक्टर, और शास्त्रीय रैखिक बीजगणित संचालन के लिए एक सी ++ लाइब्रेरी

मैं काम पर ब्लिट्ज ++ का उपयोग करता हूं और मैं वास्तव में इसके कुछ पहलू से नापसंद करता हूं। इसका कुछ पहलू भी खतरनाक है। ऑपरेटर = का उपयोग कर से पहले आकार बदलने की आवश्यकता। ए (रेंज :: सभी(), रेंज :: सभी()) एक (0,0) मैट्रिक्स इत्यादि के लिए फेंकता है और रैखिक बीजगणित संचालन क्लैपैक के माध्यम से किया जाता है।

मैंने ईजिन का इस्तेमाल किया और प्यार किया। मैं अपने 'ऑल-इन-हैडर "कार्यान्वयन, सी ++ वाक्यात्मक चीनी, और सभी रेखीय बीजगणित आपरेशन मैं जरूरत की उपस्थिति (आव्यूह गुणन, प्रणाली संकल्प, Cholesky ...)

तुम क्या प्रयोग कर रहे हैं की सराहना करते हैं ?

+0

मुझे यह महसूस हो रहा है कि आप गणित के सरणी के लिए उपयोग करने वाले पुस्तकालयों के बारे में क्या पूछ रहे हैं, न कि "सी ++ सरणी"? यदि ऐसा है तो आपको अपने प्रश्न में अधिक विशिष्ट होने पर विचार करना चाहिए :) – larsmoa

+0

आप सरणी के लिए "मूल मैट्रिक्स ऑपरेशंस" क्यों चाहते हैं? शायद आपका प्रश्न * मैट्रिक्स * कक्षाओं के बारे में होना चाहिए। – jalf

+0

क्लैपैक जैसी चीज़ों में क्या गड़बड़ है? (या यह भी क्यों "ब्लंट" है?) यह वास्तव में स्पष्ट नहीं है कि आप क्या देख रहे हैं। – jalf

उत्तर

7
+2

या std :: सरणी दिखता है, यदि आप gcc का उपयोग कर रहे हैं -std = C++ 0x – coelhudo

+0

बूस्ट बहुआयामी sloooow हैं, तो http://stackoverflow.com/questions/446866/boostmultiarray-performance-question देखें – denis

3

armadillo भी कुछ परियोजनाओं में उपयोग कर रहा है, जिसे बढ़ावा देने में एक बहुत अच्छा रैखिक बीजगणित पैकेज भी है।

वर्मी एक सी ++ रेखीय बीजगणित पुस्तकालय है (मैट्रिक्स गणित) की ओर गति के बीच एक अच्छा संतुलन और उपयोग में कम लक्ष्य: अपनी वेबसाइट से। इंटीजर, फ्लोटिंग पॉइंट और जटिल संख्याएं समर्थित हैं, साथ ही त्रिकोणमितीय और सांख्यिकी कार्यों के उप-समूह के रूप में समर्थित हैं। विभिन्न मैट्रिक्स अपघटन LAPACK और एटलस पुस्तकालयों के साथ वैकल्पिक एकीकरण के माध्यम से प्रदान किए जाते हैं।

एक देरी मूल्यांकन दृष्टिकोण को (संकलन समय के दौरान) कार्यरत है temporaries के लिए एक में कई आपरेशनों गठबंधन और कम करने (या खत्म करने) की जरूरत है। यह रिकर्सिव टेम्पलेट्स और टेम्पलेट मेटा-प्रोग्रामिंग के माध्यम से पूरा किया गया है।

यह लाइब्रेरी उपयोगी होती है, सी ++ पसंद की भाषा के रूप में निर्णय लिया गया है, बजाय एक और भाषा मैटलैब ® या सप्टक की तरह (गति और/या एकीकरण क्षमताओं के कारण)। यह एक लाइसेंस के तहत वितरित किया गया है जो दोनों खुले स्रोत और व्यावसायिक संदर्भों में उपयोगी है।

आर्माडिलो मुख्य रूप से एनआईसीटीए (ऑस्ट्रेलिया) में विकसित किया गया है, जिसमें दुनिया भर से योगदान है।

+1

+1 अच्छा लग रहा है, "अच्छी शेष राशि"। क्या किसी ने अपनी गति की तुलना ब्लिट्ज, numpy ... के रूप में www.scipy.org/PerformancePython laplace.py में की है? अनुभवजन्य तुलना की आवश्यकता के लिए – denis

+1

+1। हमें इसके लिए कुछ प्रकार की लाइब्रेरी चाहिए ताकि कोई अलग कंपेलरों, ओएस, के लिए परिणाम एकत्र करना शुरू कर सके ... –

2

हमने TNT सफलतापूर्वक कई सालों से उपयोग किया है। हालांकि, पर्याप्त मुद्दे हैं, कि हम इसके बजाय आंतरिक रूप से विकसित समाधान की ओर बढ़ रहे हैं। हमारे लिए दो सबसे बड़े स्टिकिंग अंक हैं कि

  • सरणी थ्रेड सुरक्षित नहीं हैं, यहां तक ​​कि पढ़ने के लिए भी, क्योंकि वे एक गैर-थ्रेड सुरक्षित संदर्भ गणना का उपयोग करते हैं।
  • जब आप कॉन्स्ट-सही कोड लिखते हैं तो सरणी सभी प्रकार की समस्याओं का कारण बनती है।

यदि वे कोई समस्या नहीं हैं तो वे बहुत सारे सामान्य सरणी कार्यों के लिए काफी सुविधाजनक हैं।

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