-freciprocal-math
जीसीसी मेंजीसीसी में -फ्रेसीप्रोकल-गणित असुरक्षित क्यों है?
double tmp = 1/c;
double a = b * tmp;
के लिए निम्न कोड
double a = b/c;
बदलता है जीसीसी के मैनुअल में यह कहा जाता है कि इस तरह के एक अनुकूलन असुरक्षित है और आईईईई मानकों के स्टिक किया नहीं है। लेकिन मैं एक उदाहरण के बारे में नहीं सोच सकता। क्या आप इसके बारे में एक उदाहरण दे सकते हैं?
बी = सी = 3 –
पर विचार करें। आईईईई के पास नियम नहीं है कि एक कंपाइलर को फ़्लोटिंग पॉइंट का उपयोग कैसे करना चाहिए। उदाहरण के लिए, एक्स^2 अक्सर एक्स * एक्स के लिए ताकत कम हो जाता है जो आमतौर पर तेज़ प्रोग्राम उत्पन्न करता है लेकिन मूल प्रोग्रामर द्वारा निर्दिष्ट गणना से अलग त्रुटि के साथ। तो, @ किड, क्या आपने आईईईई मानक को देखा है कि यह अंकगणित का उपयोग करके कंपाइलर्स पर कितनी सीमाएं रखती हैं? –
@ रेमंड चेन: आईईईई राउंडिंग के बाद (ऊपर? नीचे? यहां तक कि? कोई नहीं?) लागू किया गया है, हो सकता है कि आपका बी = सी = 3 उदाहरण सटीक परिणाम न हो? –