मिनीफ्लोट

कम्प्यूटिंग में, मिनीफ़्लोट फ़्लोटिंग-पॉइंट मान होते हैं जिन्हें बहुत कम अंश के साथ दर्शाया जाता है। अनुमानतः, वह सामान्य प्रयोजन संख्यात्मक गणनाओं के लिए उपयुक्त नहीं होते हैं। इनका उपयोग विशेष प्रयोजनों के लिए किया जाता है, अधिकतर कंप्यूटर ग्राफ़िक्स में, जहां पुनरावृत्तियाँ छोटी होती हैं और त्रुटिहीनता में सौंदर्य संबंधी प्रभाव होते हैं। इस प्रकार मशीन लर्निंग भी bfloat16 जैसे समान प्रारूपों का उपयोग करती है। इसके अतिरिक्त, फ़्लोटिंग-पॉइंट अंकगणित और आईईईई 754 फ़्लोटिंग-पॉइंट मानक संख्याओं के गुणों और संरचनाओं को प्रदर्शित करने के लिए उन्हें कंप्यूटर-विज्ञान पाठ्यक्रमों में शैक्षणिक उपकरण के रूप में अधिकांशतः सामने लाया जाता है।

16 बिट्स वाले मिनीफ़्लोट अर्ध-परिशुद्धता संख्या (एकल परिशुद्धता और दोहरी परिशुद्धता के विपरीत) हैं। इस प्रकार 8 बिट या उससे भी कम बिट वाले मिनीफ्लोट भी होते हैं।

मिनीफ़्लोट्स को आईईईई 754 मानक के सिद्धांतों का पालन करके डिज़ाइन किया जा सकता है। इस स्थिति में उन्हें असामान्य संख्या के मध्य सीमा के लिए (स्पष्ट रूप से लिखित नहीं) नियमों का पालन करना होता है और अनंत और NaN के लिए विशेष पैटर्न रखना होता है। इस प्रकार सामान्यीकृत संख्याओं को घातांक पूर्वाग्रह के साथ संग्रहीत किया जाता है। अतः मानक का नया संशोधन, आईईईई 754-2008, में 16-बिट बाइनरी मिनीफ़्लोट्स होते है।

Radeon R300 और Radeon R420 जीपीयू ने 7 बिट्स एक्सपोनेंट और 16 बिट्स (+1 अंतर्निहित) मैन्टिसा के साथ "fp24" फ्लोटिंग-पॉइंट प्रारूप का उपयोग किया जाता है। इस प्रकार Direct3D 9.0 में "पूर्ण परिशुद्धता" मालिकाना 24-बिट फ़्लोटिंग-पॉइंट प्रारूप होता है। अतः माइक्रोसॉफ्ट के डी3डी9 (शेडर मॉडल 2.0) ग्राफिक्स एपीआई ने प्रारंभ में एफपी24 (एटीआई के आर300 चिप के रूप में) और एफपी32 (एनवीडिया के एनवी30 चिप के रूप में) को "पूर्ण परिशुद्धता" के रूप में, साथ ही एफपी16 को वर्टेक्स और पिक्सेल शेडर गणना के लिए "आंशिक परिशुद्धता" के रूप में ग्राफ़िक्स हार्डवेयर द्वारा निष्पादित समर्थन दिया गया है।

संकेतन
मिनीफ्लोट का वर्णन सामान्यतः चार संख्याओं के टुपल का उपयोग करके किया जाता है, (एस, ई, एम, बी):
 * एस संकेत क्षेत्र की लंबाई है। यह सामान्यतः या तब 0 या 1 होता है।
 * ई घातांक क्षेत्र की लंबाई होती है।
 * एम मंटिसा (महत्वपूर्ण) क्षेत्र की लंबाई होती है।
 * बी प्रतिपादक पूर्वाग्रह होता है.

इसलिए, (एस, ई, एम, बी) द्वारा दर्शाया गया मिनीफ्लोट प्रारूप $S + E + M$ बिट्स लंबा होता है।

कंप्यूटर ग्राफ़िक्स में मिनीफ़्लोट्स का उपयोग कभी-कभी केवल अभिन्न मानों को दर्शाने के लिए किया जाता है। यदि विशेष समय में असामान्य मान उपस्तिथ होता है, तब न्यूनतम असामान्य संख्या 1 होती है। इस प्रकार पूर्वाग्रह मान $B = E - M - 1$ होता है। इस स्थिति में, यह मानते हुए कि आईईईई के अनुसार दो विशेष घातांक मानों का उपयोग किया जाता है।

(एस, ई, एम, बी) अंकन को (बी, पी, एल, यू) प्रारूप में $(2, M + 1, B + 1, 2^{S} - B)$ (घातांक के आईईईई उपयोग के साथ) में परिवर्तित किया जा सकता है।

उदाहरण
इस उदाहरण में, 1 संकेत बिट, 4 एक्सपोनेंट बिट्स और 3 महत्वपूर्ण बिट्स (संक्षेप में, 1.4.3.−2 मिनीफ्लोट) के साथ 1 बाइट (8 बिट) में मिनीफ्लोट का उपयोग अभिन्न मूल्यों का प्रतिनिधित्व करने के लिए किया जाता है। इस प्रकार सभी आईईईई 754 सिद्धांत मान्य होते है। एकमात्र मुक्त मान घातांक पूर्वाग्रह होता है, जिसे हम पूर्णांकों के लिए -2 के रूप में परिभाषित करते हैं। अतः अज्ञात घातांक को क्षण x के लिए बुलाया जाता है।

किसी भिन्न आधार में संख्याओं को ... आधार के रूप में चिह्नित किया जाता है, उदाहरण के लिए, 101$2$ = 5 बिट पैटर्न में उनके भागों को देखने के लिए स्थान होते हैं।

शून्य का निरूपण
0 0000 000 = 0

असामान्य संख्याएँ
महत्व को "0" से बढ़ाया गया है। 0 0000 001 = 0.0012 × 2x = 0.125 × 2x = 1 (न्यूनतम असामान्य संख्या) ... 0 0000 111 = 0.1112 × 2x = 0.875 × 2x = 7 (सबसे बड़ी असामान्य संख्या)

सामान्यीकृत संख्याएँ
महत्व को "1" से बढ़ाया गया है।

0 0001 000 = 1.0002 × 2x = 1 × 2x = 8 (न्यूनतम सामान्यीकृत संख्या) 0 0001 001 = 1.0012 × 2x = 1.125 × 2x=9 ... 0 0010 000 = 1,0002 × 2x+1 = 1 × 2x+1 = 16 0 0010 001 = 1.0012 × 2x+1 = 1.125 × 2x+1 = 18 ... 0 1110 000 = 10002 × 2x+13 = 1,000 × 2x+13 = 65536 0 1110 001 = 1.0012 × 2x+13 = 1.125 × 2x+13 = 73728 ... 0 1110 110 = 1.1102 × 2x+13 = 1750 × 2x+13 = 114688 0 1110 111 = 1.1112 × 2x+13 = 1.875 × 2x+13 = 122880 (सबसे बड़ी सामान्यीकृत संख्या)

अनंत
0 1111 000 = +अनंत 1 1111 000 = −अनंत

यदि घातांक क्षेत्र का विशेष रूप से उपचार नहीं किया गया, तब मूल्य होगा

0 1111 000 = 1.0002 × 2x+14 = 217=131072

कोई संख्या नहीं
x 1111 yyy = NaN (यदि yyy ≠ 000)

आईईईई 754 के सबसे बड़े घातांक के विशेष प्रबंधन के बिना, सबसे बड़ा संभव मूल्य होता है।

0 1111 111 = 1.1112 × 2x+14 = 1.875 × 217=245760

पूर्वाग्रह का मान
यदि न्यूनतम असामान्य मान (उपरोक्त दूसरी पंक्ति) 1 होता है, अतः x का मान x = 3 होता है। इसलिए, पूर्वाग्रह -2 होता है; अर्थात् संख्यात्मक घातांक प्राप्त करने के लिए प्रत्येक संग्रहीत घातांक को -2 से कम करना होता है या 2 से बढ़ाना होता है।

मानों की तालिका
यह फ़्लोट को आईईईई फ़्लोट के समान मानते समय पूर्वाग्रह 1 के साथ सभी संभावित मानों का चार्ट होता है।

इस उदाहरण के गुण
सामान्यतः 1 बाइट में इंटीग्रल मिनीफ़्लोट्स में −128 से +127 की सीमा वाले दो-पूरक पूर्णांक की तुलना में ±122880 की अधिक सीमा होती है। इस प्रकार बड़ी सीमा की भरपाई खराब परिशुद्धता से होती है, जिससे कि केवल 4 मंटिसा बिट्स होते हैं, जो दशमलव स्थान से थोड़ा अधिक के सामान्तर होते हैं। उनके पास ±65504 सीमा के साथ अर्ध-त्रुटिहीन मिनीफ्लोट्स की तुलना में अधिक सीमा होती है, जिसकी भरपाई अंशों की कमी और खराब परिशुद्धता से भी होती है।

केवल 242 भिन्न-भिन्न मान होते हैं (यदि +0 और -0 को भिन्न माना जाता है), जिससे कि 14 बिट पैटर्न NaN का प्रतिनिधित्व करते हैं।

सामान्यतः 0 और 16 के मध्य के मानों का बिट पैटर्न मिनीफ्लोट या दो-पूरक पूर्णांक के समान होता है। इस प्रकार भिन्न मान वाला पहला पैटर्न 00010001 होता है, जो मिनीफ्लोट के रूप में 18 और दो-पूरक पूर्णांक के रूप में 17 होता है।

यह संयोग ऋणात्मक मानों के साथ बिल्कुल भी नहीं होता है, जिससे कि यह मिनीफ्लोट हस्ताक्षरित-परिमाण प्रारूप होता है।

दाईं ओर (ऊर्ध्वाधर) वास्तविक रेखा फ़्लोटिंग-पॉइंट मानों के भिन्न-भिन्न घनत्व को स्पष्ट रूप से दिखाती है - संपत्ति जो किसी भी फ़्लोटिंग-पॉइंट प्रणाली के लिए सामान्य होते है। इस प्रकार भिन्न-भिन्न घनत्व के परिणामस्वरूप घातीय फलन के समान वक्र बनता है।

यद्यपि वक्र सहज दिखाई दे सकता है, किन्तु ऐसा नहीं होता है। इस प्रकार ग्राफ़ में वास्तव में भिन्न-भिन्न बिंदु होते हैं, और यह बिंदु भिन्न-भिन्न ढलान वाले रेखा खंडों पर स्थित होते हैं। सामान्यतः एक्सपोनेंट बिट्स का मूल्य मंटिसा बिट्स की पूर्ण त्रुटिहीनता निर्धारित करता है, और यह त्रुटिहीनता होती है जो प्रत्येक रैखिक खंड की ढलान निर्धारित करती है।

जोड़
ग्राफ़िक 6 बिट्स के साथ और भी छोटे (1.3.2.3)-मिनीफ़्लोट्स को जोड़ने को दर्शाता है। यह फ़्लोटिंग-पॉइंट प्रणाली आईईईई 754 के नियमों का बिल्कुल पालन करता है। इस प्रकार ऑपरेंड के रूप में NaN सदैव NaN परिणाम उत्पन्न करता है। Inf − Inf और (−Inf) + Inf का परिणाम NaN (हरित क्षेत्र) भी होता है। सामान्यतः Inf को बिना किसी परिवर्तन के परिमित मानों द्वारा बढ़ाया और घटाया जा सकता है। परिमित ऑपरेंड वाले योग अनंत परिणाम दे सकते हैं (अर्थात् 14.0 + 3.0 = +Inf परिणामस्वरूप सियान क्षेत्र होता है, −Inf मैजेंटा क्षेत्र होता है)। इस प्रकार परिमित ऑपरेंड की सीमा वक्र x + y = c से भरी होती है, जहां c सदैव प्रतिनिधित्व योग्य फ्लोट मानों में से होता है (धनात्मक और ऋणात्मक परिणामों के लिए क्रमशः नीला और लाल होता है)।

घटाव, गुणा और भाग
अन्य अंकगणितीय संक्रियाओं को इसी प्रकार चित्रित किया जा सकता है।

एम्बेडेड उपकरणों में
मिनीफ़्लोट्स का उपयोग सामान्यतः एम्बेडेड उपकरणों में भी किया जाता है, विशेष रूप से माइक्रोकंट्रोलर्स पर जहां फ्लोटिंग-पॉइंट को सॉफ़्टवेयर में अनुकरण करने की आवश्यकता होती है। इस प्रकार गणना को गति देने के लिए, मंटिसा सामान्यतः बिट्स के बिल्कुल आधे भाग पर कब्जा कर लेता है, इसलिए रजिस्टर सीमा स्वचालित रूप से बिना किसी परिवर्तन के भागों को संबोधित करती है।

यह भी देखें

 * निश्चित-बिंदु अंकगणित
 * अर्ध-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप
 * bfloat16 फ़्लोटिंग-पॉइंट प्रारूप
 * जी.711 ए-नियम

अग्रिम पठन

 * ख्रोनोस वल्कन ने 11-बिट फ़्लोटिंग पॉइंट प्रारूप को अहस्ताक्षरित किया
 * ख्रोनोस वल्कन ने 10-बिट फ़्लोटिंग पॉइंट प्रारूप को अहस्ताक्षरित किया

बाहरी संबंध

 * ओपनजीएल आधा फ्लोट पिक्सेल