मान लीजिए मैं इस प्रकार एक 2 तत्व वेक्टर को परिभाषित करता है (पैक वैक्टर के लिए जीसीसी सिंटैक्स का उपयोग)कम्प्यूटिंग x^जीसीसी वेक्टर intrinsics साथ y
// packed vector of 2-elements
typedef double v2d __attribute__((vector_size(sizeof(double)*2)));
v2d x = ...;
double y = ...;
x[0] = pow(x[0], y)
x[1] = pow(x[1], y)
मैं हो, तो ऐसा करने के लिए एक तेजी से रास्ता पता करना चाहते हैं वेक्टर संचालन का उपयोग कर दो बिजली computations। आर्किटेक्चर x86-64 पर जीसीसी है और प्लेटफ़ॉर्म विशिष्ट कोड ठीक है।
एक सामान्य बिजली समारोह को लागू करने के लिए मुश्किल है। वेक्टरिंग के माध्यम से एक सार्थक गति प्राप्त करने में सक्षम होने के लिए बहुत अधिक शाखा हो सकती है। लेकिन मैं बस अटकलें कर रहा हूं। – Mysticial
नहीं, सिमड निर्देश सेट में कोई ऑपरेशन नहीं है जो पावर() को तेज करने की अनुमति देता है। एसएसई 2 में केवल जोड़, उप, मूल, div, max, min और sqrt है। इसके लिए एक गैर-वेक्टरिज्ड निर्देश भी नहीं है। –
कुछ आशा हो सकती है यदि "y" डबल की बजाय हस्ताक्षरित int तक सीमित है। दरअसल, क्लासिक "शिफ्ट-एंड-मल्टीप्ली" एल्गोरिदम के साथ दो वेक्टर के तत्वों का समानांतर में मूल्यांकन किया जा सकता है। बस मेरा अनुमान है। –