मैं इस दस्तावेज़ पढ़ रहा हूँ की व्याख्या कर सकते हैं: http://software.intel.com/en-us/articles/interactive-ray-tracingन्यूटन Raphson कोई मुझे इन 3 लाइनों
और मैं कोड के इन तीन लाइनों पर ठोकर खाई:
SIMD संस्करण पहले से ही है काफी थोड़ा तेज़, लेकिन हम बेहतर कर सकते हैं। इंटेल ने एसएसई 2 निर्देश सेट में एक तेज़ 1/वर्ग (x) फ़ंक्शन जोड़ा है। एकमात्र कमी यह है कि इसकी परिशुद्धता सीमित है। हम परिशुद्धता की जरूरत है, ताकि हम इसे न्यूटन-Rhapson का उपयोग कर परिशोधित करें:
__m128 nr = _mm_rsqrt_ps(x);
__m128 muls = _mm_mul_ps(_mm_mul_ps(x, nr), nr);
result = _mm_mul_ps(_mm_mul_ps(half, nr), _mm_sub_ps(three, muls));
इस कोड को 'आधा' (चार बार 0.5f) और एक चर 'नाम के एक __m128 चर के अस्तित्व को मानता तीन '(चार बार 3.0 एफ)।
मैं न्यूटन Raphson उपयोग करने के लिए कैसे एक समारोह के शून्य की गणना करने के पता है और मैं इसे कैसे उपयोग करने के लिए एक संख्या का वर्गमूल गणना करने के लिए, लेकिन मैं तो बस नहीं देख सकते हैं कि इस कोड को यह करता है पता है।
क्या कोई मुझे कृपया समझा सकता है?
पूर्णांक को छोटा करते समय, क्या आपको लगता है कि यह एक वैल्यू जोड़ने के लिए अंतिम चरण के रूप में व्यवहार्य होगा, जिसके परिणामस्वरूप एक ही एक्सपोनेंट होता है लेकिन महत्व में केवल निम्नतम (या दो?) बिट्स सेट होते हैं? यह निश्चित रूप से इस शर्त के तहत है कि कम से कम महत्वपूर्ण आंकड़ा हमेशा किसी की स्थिति से कम होता है। – chili
यह एप्लिकेशन निर्भर है। मुद्दा यह है कि एक पुनरावृत्ति दृष्टिकोण 'sqrt (n * n) == n' का उपयोग करते समय हमेशा पकड़ नहीं होता है। इसे मनमाने ढंग से "निश्चित" नहीं किया जा सकता है - क्योंकि 'sqrt (n * n - epsilon) == n' आपदा का कारण बन सकता है। –