लिखने के लिए मैं सी ++ लाइब्रेरी ईजिन से बहुत प्रभावित हूं जो मैट्रिक्स/वेक्टर गणना में भारी गति प्राप्त करने के लिए अभिव्यक्ति टेम्पलेट का उपयोग करता है।रैला एलजीएस रैखिक बीजगणित लिब
मैं इस पुस्तकालय को स्कैला में क्लोन करना चाहता हूं। जहां तक मुझे पता है कि स्केलस टाइप सिस्टम इस तरह कुछ करने के लिए पर्याप्त शक्तिशाली नहीं है, लेकिन यह संभव हल्के मॉड्यूलर स्टेजिंग एलएमएस होना चाहिए। वहां कई परियोजनाएं प्रतीत होती हैं (प्रसन्नता, वर्चुअलाइजेशन-एलएमएस, आदि)। विश्वसनीयता और प्रदर्शन के मामले में इस तरह के प्रोजेक्ट के लिए उपयोग करने का अधिकार कौन सा होगा?
धन्यवाद
संपादित करें: मैं सिर्फ स्केला 2.10 में मैक्रोज़ बारे में जाना। हो सकता है कि मैं यहां उपयोग करना चाहता हूं।
@ ओम-nom-nom
महत्वपूर्ण हिस्सा http://eigen.tuxfamily.org/dox/TopicInsideEigenExample.html
उदाहरण से समझाया गया है बताते हैं कि एक वेक्टर अलावा
u = v + w
एक के बाद में (देशी) सी ++ अच्छा प्रदर्शन है अस्थायी चर जोड़ा गया है और यह चर आपको
for(int i = 0; i < size; i++) tmp[i] = v[i] + w[i];
for(int i = 0; i < size; i++) u[i] = tmp[i];
के रूप में असाइन किया गया है
Eigen टेम्पलेट metaprogramming (ऊपर के लिंक में कदम से समझाया कदम) का उपयोग करता है
for(int i = 0; i < size; i++) u[i] = v[i] + w[i];
जो स्पष्ट रूप से तेजी से होता है और एक अतिरिक्त चर की जरूरत नहीं है करने के लिए संकलन समय पर इस कम करने के लिए।
यदि आप शीघ्र ही अभिव्यक्ति टेम्पलेट्स के तंत्र का वर्णन करते हैं, तो यह मदद कर सकता है। –