के लिए लिनक्स पर डिमॉर्मल फ्लोट ऑपरेशंस का पता लगाना मैं लिनक्स में एक विंडोज़ प्रोग्राम को पोर्ट करने की प्रक्रिया में हूं, और एमएसवीसी-विशिष्ट कोड के टुकड़े पर फंस गया है जो फ्लोटिंग पॉइंट ऑपरेशंस की जांच करता है, जो एक असामान्य या अचूक परिणाम मैं इसे एक मजबूत तरीके से कार्यान्वित करने के बारे में बहुत अनिश्चित हूं। मुझे यह जोड़ना चाहिए कि जब मैं लिनक्स-विशिष्ट प्रोग्रामिंग और इनके जैसे बहुत कम स्तर के संचालन की बात करता हूं तो मैं काफी अनुभवहीन हूं।x86
विशेष रूप से, बात यह है कि मुझे परेशानी देता है निम्नलिखित:
if (_statusfp() & (_SW_INEXACT | _SW_DENORMAL))
{
... portable stuff ...
}
_clearfp();
fenv.h दोनों स्थिति झंडा स्पष्ट और अयथार्थ ध्वज के लिए जांच करने की क्षमता देने के लिए लगता है, यह प्रतीत नहीं होता है denormal ध्वज की जांच में कोई सहायता प्रदान करते हैं। इसके अलावा, मैंने यह सुझाव दिया है कि जीसीसी फ्लोटिंग पॉइंट ऑपरेशंस को अलग-अलग संभाल सकता है कि कोड के इस टुकड़े का एक साधारण सीधा बंदरगाह संभव नहीं हो सकता है। मैं इसमें किसी भी सहायता के लिए आभारी रहूंगा।
यदि यह प्रासंगिक है, तो यह प्रोग्राम के बहुत भारी संख्या में क्रंचिंग भाग में उपयोग किया जाता है जहां प्रदर्शन पदार्थ।
संपादित करें: fenv.h में ध्वज को FE_UNDERFLOW कहा जाता है जब http://en.cppreference.com/w/cpp/numeric/fenv/FE_exceptions के अनुसार एक असामान्य परिणाम उत्पन्न होता है, लेकिन कई अन्य स्रोतों ने यह देखा है कि यह तब उठाया जाता है जब परिणाम असामान्य के लिए भी छोटा होता है । यह देखने के लिए परीक्षण चलाएंगे कि क्या मुझे यह भी चाहिए कि मुझे इसकी क्या ज़रूरत है और यदि ऐसा है तो मुझे जवाब दें।
क्या इससे मदद मिलती है? http://stackoverflow.com/questions/16849009/in-the-linux-is-or-not-exists-some-functions-be-similar-to-clearfp-and-stat – doctorlove