कोई विशेष कार्यान्वयन आवश्यक नहीं है। सी ++ मानक इसके बारे में बिल्कुल बात नहीं करता है। सी मानक कुछ आधार b
में एक संकेत, एक्सपोनेंट, महत्व के साथ, फ्लोटिंग पॉइंट नंबरों के लिए मानी जाने वाली वैचारिक मॉडल के बारे में काफी विस्तार से जाता है, और इसी तरह। हालाँकि इस बात पर विशेष रूप से कहा गया है कि यह विशुद्ध रूप से वर्णनात्मक कार्यान्वयन पर एक आवश्यकता नहीं है, (सी 11, फुटनोट 21):
फ्लोटिंग प्वाइंट मॉडल प्रत्येक फ्लोटिंग प्वाइंट विशेषता और का विवरण स्पष्ट करने का इरादा है कार्यान्वयन के फ़्लोटिंग-पॉइंट अंकगणित को समान होने की आवश्यकता नहीं है।
जिसके अनुसार, हालांकि विवरण भिन्न हो सकते हैं, कम से कम बेतकल्लुफ़ मुझे लगता है कि (उदाहरण के लिए) का निर्माण double
के अनुरूप क्रियान्वयन कि बारीकी से हमेशा की तरह मॉडल के साथ काफी के अनुरूप नहीं थे (यानी, एक महत्व और एक्सपोनेंट) मुश्किल होगा (या प्रतिस्पर्धी प्रदर्शन के साथ कम से कम मुश्किल करना होगा)। यद्यपि यह अन्य तरीकों से भिन्न होना मुश्किल नहीं होगा, जैसे आदेश को पुन: व्यवस्थित करना, या एक अलग आधार का उपयोग करना।
std::numeric_limits<T>::digits
(और std::numeric_limits<T>::digits10
) की परिभाषा स्पष्ट रूप से सीधे बताती है कि एक फ़्लोटिंग पॉइंट प्रकार के रूप में सूचीबद्ध क्या होना चाहिए (कम से कम लगभग) परिमाण की एक विस्तृत श्रृंखला में सभी संख्याओं के लिए समान सटीकता को बनाए रखना चाहिए। इसे पूरा करने का सबसे स्पष्ट तरीका यह है कि कुछ महत्वपूर्ण बिट्स/अंकों को महत्व के लिए समर्पित किया गया है, और कुछ अन्य (अलग) एक एक्सपोनेंट को समर्पित बिट्स का सेट है।
स्रोत
2015-12-15 18:34:04
आपका उद्धरण वास्तव में प्रश्न का उत्तर नहीं देता है। सवाल पूछता है कि क्या फ्लोटिंग पॉइंट प्रारूपों पर प्रतिबंध हैं। आपके उत्तर से पता चलता है कि फ़्लोटिंग पॉइंट प्रारूपों को कार्यान्वयनकर्ता द्वारा दस्तावेज किया जाना चाहिए। यह संबंधित है लेकिन वास्तव में एक ही बात नहीं है। – hvd
@ एचवीडी: वह (कार्यान्वयनकर्ता दस्तावेज प्रदान करना होगा) गणित पुस्तकालय को लागू करने वाली आवश्यक श्रेणियों और संचालन के अलावा, केवल एक ही प्रतिबंध है। –
@hvd मुझे यकीन नहीं है कि मैं समझता हूं। उत्तर में एक आसान "यह एकमात्र प्रतिबंध" आपके लिए पर्याप्त होगा? – TartanLlama