تنسيق الفاصلة العائمة رباعي الدقة
في مجال الحوسبة ، الدقة الرباعية (أو الدقة الرباعية ) هي تنسيق رقمي ثنائي يعتمد على الفاصلة العائمة ويشغل 16 بايت ( 128 بت ) بدقة لا تقل عن ضعف الدقة المزدوجة 53 بت .
صُممت هذه الدقة الرباعية ذات 128 بت للتطبيقات التي تتطلب نتائج بدقة أعلى من الدقة المزدوجة، [ 1 ] وتتمثل وظيفتها الأساسية في تمكين حساب نتائج الدقة المزدوجة بمزيد من الموثوقية والدقة من خلال تقليل أخطاء تجاوز السعة والتقريب في العمليات الحسابية الوسيطة والمتغيرات المؤقتة. وقد أشار ويليام كاهان ، المصمم الرئيسي لمعيار IEEE 754 الأصلي للفاصلة العائمة، إلى أن " تنسيق 10 بايت الموسع يمثل حاليًا حلاً وسطًا مقبولًا بين قيمة العمليات الحسابية فائقة الدقة وتكلفة تنفيذها بسرعة؛ وسرعان ما سيصبح بايتان إضافيان من الدقة مقبولين، وفي النهاية تنسيق 16 بايت... كان هذا النوع من التطور التدريجي نحو دقة أوسع مطروحًا بالفعل عند وضع معيار IEEE 754 للحسابات ذات الفاصلة العائمة ." [ 2 ]
في معيار IEEE 754-2008، يُشار رسميًا إلى تنسيق الأساس 2 ذو 128 بت باسم binary128 .
تنسيق الفاصلة العائمة الثنائية رباعية الدقة IEEE 754: binary128
يحدد معيار IEEE 754 أن الرقم الثنائي 128 يحتوي على ما يلي:
- بت الإشارة : 1 بت
- عرض الأس : 15 بت
- دقة المعامل : 113 بت (تم تخزين 112 بت بشكل صريح)
تحدد بتة الإشارة إشارة العدد (بما في ذلك عندما يكون هذا العدد صفرًا، والذي يكون موجبًا ). يشير الرقم "1" إلى السالب.
يُتيح هذا دقة تتراوح بين 33 و36 رقمًا عشريًا معنويًا. إذا تم تحويل سلسلة عشرية تحتوي على 33 رقمًا معنويًا على الأكثر إلى تنسيق IEEE 754 رباعي الدقة، مما يُعطي رقمًا عاديًا، ثم تم تحويلها مرة أخرى إلى سلسلة عشرية بنفس عدد الأرقام، فيجب أن تتطابق النتيجة النهائية مع السلسلة الأصلية. إذا تم تحويل رقم IEEE 754 رباعي الدقة إلى سلسلة عشرية تحتوي على 36 رقمًا معنويًا على الأقل، ثم تم تحويله مرة أخرى إلى تمثيل رباعي الدقة، فيجب أن تتطابق النتيجة النهائية مع الرقم الأصلي. [ 3 ]
يُكتب التنسيق باستخدام بت تمهيدي ضمني قيمته 1، إلا إذا تم تخزين الأس بأصفار (يُستخدم لترميز الأعداد غير الطبيعية والأصفار). وبالتالي، يظهر 112 بت فقط من الجزء الكسري في تنسيق الذاكرة، لكن الدقة الإجمالية تبلغ 113 بت (حوالي 34 رقمًا عشريًا: log 10 (2^ 113 ) ≈ 34.016 ) للقيم الطبيعية؛ أما الأعداد غير الطبيعية فتتناقص دقتها تدريجيًا لتصل إلى بت واحد لأصغر قيمة غير صفرية. ويتم ترتيب البتات كما يلي:
![]()
ترميز الأس
يتم ترميز الأس الثنائي ذو الدقة الرباعية باستخدام تمثيل ثنائي الإزاحة ، حيث تكون إزاحة الصفر 16383؛ وهذا ما يُعرف أيضًا باسم انحياز الأس في معيار IEEE 754.
- E دقيقة = 0001 16 − 3FFF 16 = −16382
- E max = 7FFE 16 − 3FFF 16 = 16383
- انحياز الأس = 3FFF 16 = 16383
وبالتالي، وكما هو محدد بواسطة التمثيل الثنائي للإزاحة، من أجل الحصول على الأس الحقيقي، يجب طرح إزاحة 16383 من الأس المخزن.
يتم تفسير الأسس المخزنة 0000 16 و 7FFF 16 بشكل خاص.
| الأس | القيمة المعنوية صفر | قيمة غير صفرية ذات دلالة إحصائية | معادلة |
|---|---|---|---|
| 0000 16 | 0 ، -0 | أعداد دون المستوى الطبيعي | (−1) بت الإشارة × 2 −16382 × 0.بتات المعامل 2 |
| 0001 16 ، ...، 7FFE 16 | القيمة المعيارية | (−1) بت الإشارة × 2 بتات الأس 2 − 16383 × 1. بتات المعامل 2 | |
| 7FFF 16 | ± ∞ | NaN (هادئ، إشارة) | |
أصغر قيمة موجبة تمامًا (دون المستوى الطبيعي) هي 2⁻¹⁶⁹⁴ ≈ 10⁻⁴⁹⁶⁵ ، ودقتها بت واحد فقط. أصغر قيمة موجبة طبيعية هي 2⁻¹⁶⁸² ≈ 3.3621 × 10⁻⁴⁹ ، ودقتها 113 بت، أي ± 2⁻¹⁶⁹⁴ أيضًا. أكبر قيمة قابلة للتمثيل هي 2¹⁶⁸⁴ - 2¹⁶⁷⁹ ≈ 1.1897 × 10⁴⁹ .
أمثلة على الدقة الرباعية
تُقدَّم هذه الأمثلة بتمثيل البتات ، بالنظام الست عشري ، لقيمة الفاصلة العائمة. ويشمل ذلك الإشارة، والأس (المتحيز)، والجزء الكسري.
0000 0000 0000 0000 0000 0000 0000 0001 16 = 2 −16382 × 2 −112 = 2 −16494 ≈ 6.4751751194380251109244389582276465525 × 10 −4966 (أصغر عدد موجب دون المستوى الطبيعي) 0000 ffff ffff ffff ffff ffff ffff ffff 16 = 2 −16382 × (1 − 2 −112 ) ≈ 3.3621031431120935062626778173217519551 × 10 −4932 (أكبر عدد دون المستوى الطبيعي) 0001 0000 0000 0000 0000 0000 0000 0000 16 = 2 −16382 ≈ 3.3621031431120935062626778173217526026 × 10 −4932 (أصغر عدد طبيعي موجب) 7ffe ffff ffff ffff ffff ffff ffff ffff 16 = 2 16383 × (2 − 2 −112 ) ≈ 1.1897314953572317650857593266280070162 × 10 4932 (أكبر عدد طبيعي) 3ffe ffff ffff ffff ffff ffff ffff ffff 16 = 1 − 2 −113 ≈ 0.999999999999999999999999999999999037 (أكبر عدد أقل من واحد) 3fff 0000 0000 0000 0000 0000 0000 0000 16 = 1 (واحد) 3fff 0000 0000 0000 0000 0000 0000 0001 16 = 1 + 2 −112 ≈ 1.00000000000000000000000000000001926 (أصغر عدد أكبر من واحد) 4000 0000 0000 0000 0000 0000 0000 16 = 2 c000 0000 0000 0000 0000 0000 0000 0000 16 = −2 0000 0000 0000 0000 0000 0000 0000 0000 16 = 0 8000 0000 0000 0000 0000 0000 0000 0000 16 = −0 7fff 0000 0000 0000 0000 0000 0000 0000 16 = ما لا نهاية ffff 0000 0000 0000 0000 0000 0000 0000 16 = - ما لا نهاية 3ffd 5555 5555 5555 5555 5555 5555 5555 16 ≈ 0.333333333333333333333333333333333173 (أقرب تقريب إلى 1/3) 4000 921f b544 42d1 8469 898c c517 01b8 16 ≈ 3.1415926535897932384626433832795027975 (أقرب تقريب لـ π) 4008 74d9 9564 5aa0 0c11 d0cc 9770 5e5b 16 ≈ 745.69987158227021999999999999999997147 (أقرب تقريب لعدد الواط المقابل لحصان واحد ) |
بشكل افتراضي، يتم تقريب 1/3 إلى الأسفل كما في الأعداد ذات الدقة المزدوجة ، وذلك بسبب العدد الفردي للبتات في الجزء الكسري. وبالتالي، فإن البتات التي تلي نقطة التقريب تكون 0101…أقل من نصف وحدة في الخانة الأخيرة .
الحساب المزدوج المزدوج
تُعرف إحدى تقنيات البرمجيات الشائعة لتنفيذ دقة تقارب أربعة أضعاف باستخدام أزواج من قيم الدقة المزدوجة أحيانًا باسم الحساب المزدوج المزدوج . [ 4 ] [ 5 ] [ 6 ] باستخدام أزواج من قيم IEEE ذات الدقة المزدوجة مع أجزاء معنوية بطول 53 بت، يوفر الحساب المزدوج المزدوج عمليات على الأعداد ذات أجزاء معنوية لا تقل عن [ 4 ] 2 × 53 = 106 بت (في الواقع 107 بت [ 7 ] باستثناء بعض القيم الأكبر، نظرًا لنطاق الأس المحدود)، وهي أقل دقة بقليل من الجزء المعنوي ذي 113 بت للدقة الرباعية الثنائية IEEE128. يظل نطاق العدد المزدوج المزدوج هو نفسه بشكل أساسي مثل تنسيق الدقة المزدوجة لأن الأس لا يزال يحتوي على 11 بتًا، [ 4 ] وهو أقل بكثير من الأس ذي 15 بتًا للدقة الرباعية IEEE (نطاق 1.8 × 10308 للعدد المزدوج المزدوج مقابل 1.2 × 104932 للعدد الثنائي 128).
على وجه الخصوص، يتم تمثيل قيمة q ذات الدقة المزدوجة/الرباعية في تقنية الدقة المزدوجة ضمنيًا كمجموع q = x + y لقيمتين ذواتي دقة مزدوجة x و y ، حيث توفر كل منهما نصف q.[ 5 ] أي أن الزوج ( x , y ) يُخزَّن مكان q ، وتُحوَّل العمليات على قيم q (+، -، ×، ...) إلى عمليات مكافئة (لكنها أكثر تعقيدًا) على قيم x و y . وبالتالي ، تُختزل العمليات الحسابية في هذه التقنية إلى سلسلة من عمليات الدقة المزدوجة؛ ولأن العمليات الحسابية ذات الدقة المزدوجة تُنفَّذ عادةً في الأجهزة، فإن العمليات الحسابية ذات الدقة المزدوجة عادةً ما تكون أسرع بكثير من تقنيات العمليات الحسابية ذات الدقة العشوائية الأكثر عمومية . [ 4 ] [ 5 ]
لاحظ أن الحساب المزدوج المزدوج له الخصائص الخاصة التالية: [ 8 ]
- كلما تناقصت قيمة العدد، تناقصت دقة الحساب الإضافية. لذا، يكون أصغر عدد في النطاق المعياري أضيق من نطاق الدقة المضاعفة. أصغر عدد بدقة كاملة هو 1000…0 2 (106 أصفار) × 2 −1074 ، أو 1000…0 2 (106 أصفار) × 2 −968 . أما الأعداد التي تقل قيمتها عن 2 −1021، فلا تتمتع بدقة إضافية مقارنةً بالدقة المضاعفة.
- قد يختلف عدد بتات الدقة الفعلية. عمومًا، لا تتجاوز قيمة الجزء الأدنى من العدد نصف قيمة الجزء الأعلى. إذا كان الجزء الأدنى أقل من نصف قيمة الجزء الأعلى، تُعتبر البتات المهمة (إما جميعها أصفار أو جميعها آحاد) ضمنية بين الجزء المهم من العددين الأعلى والأدنى. قد تفشل بعض الخوارزميات التي تعتمد على عدد ثابت من البتات في الجزء المهم عند استخدام أعداد مزدوجة بطول 128 بت.
- بسبب السبب المذكور أعلاه، من الممكن تمثيل قيم مثل 1 + 2 −1074 ، وهو أصغر عدد قابل للتمثيل أكبر من 1.
بالإضافة إلى العمليات الحسابية ذات الدقة المزدوجة، يُمكن أيضًا توليد عمليات حسابية ذات دقة ثلاثية أو رباعية إذا لزم الأمر دقة أعلى دون الحاجة إلى مكتبة فاصلة عائمة عالية الدقة. تُمثل هذه العمليات كمجموع ثلاث (أو أربع) قيم ذات دقة مزدوجة على التوالي. ويمكنها تمثيل العمليات بما لا يقل عن 159/161 و212/215 بت على التوالي. ويُطلق على الامتداد الطبيعي لعدد غير محدود من الحدود (مع مراعاة نطاق الأس) اسم توسعات الفاصلة العائمة .
يمكن استخدام تقنية مماثلة لإنتاج عملية حسابية مزدوجة رباعية ، والتي تُمثل كمجموع قيمتين بدقة رباعية. ويمكنها تمثيل العمليات بما لا يقل عن 226 (أو 227) بت. [ 9 ]
التطبيقات
غالبًا ما يتم تطبيق الدقة الرباعية في البرامج باستخدام مجموعة متنوعة من التقنيات (مثل تقنية الضرب المزدوج المزدوج المذكورة أعلاه، على الرغم من أن هذه التقنية لا تُطبق دقة IEEE الرباعية)، نظرًا لأن الدعم المباشر للأجهزة للدقة الرباعية، اعتبارًا من عام 2016أقل شيوعًا (انظر " دعم الأجهزة " أدناه). يمكن استخدام مكتبات حسابية عامة ذات دقة عشوائية للحصول على دقة رباعية (أو أعلى)، ولكن قد تحقق التطبيقات المتخصصة ذات الدقة الرباعية أداءً أعلى.
دعم لغات الحاسوب
وثمة سؤال منفصل يتمثل في مدى دمج أنواع البيانات ذات الدقة الرباعية بشكل مباشر في لغات برمجة الحاسوب .
تُحدد الدقة الرباعية في لغة فورتران بواسطة real(real128)( iso_fortran_envيجب استخدام الوحدة النمطية من فورتران 2008، والثابت real128يساوي 16 على معظم المعالجات)، أو كـ real(selected_real_kind(33, 4931))، أو بطريقة غير قياسية كـ REAL*16. ( REAL*16يدعم مُصرّف إنتل فورتران [ 10 ] ومُصرّف جنو فورتران [ 11 ] الدقة الرباعية على معمارية x86 و x86-64 وإيتانيوم ، على سبيل المثال).
بالنسبة للغة البرمجة C ، تحدد المواصفة القياسية ISO/IEC TS 18661-3 (امتدادات الفاصلة العائمة للغة C، وأنواع التبادل والأنواع الموسعة) _Float128النوع الذي يُنفذ تنسيق IEEE 754 ذي الدقة الرباعية (binary128). [ 12 ] وبدلاً من ذلك، في لغتي C و C++ مع بعض الأنظمة والمترجمات، يمكن تحديد الدقة الرباعية باستخدام النوع long double ، ولكن هذا ليس شرطًا للغة (التي تشترط فقط long doubleأن يكون النوع على الأقل بنفس دقة النوع السابق double)، كما أنه ليس شائعًا.
ابتداءً من C++23 ، تُعرّف لغة C++ <stdfloat>ملف رأس يحتوي على أنواع الأعداد العشرية ذات العرض الثابت. تُعدّ تطبيقات هذه الأنواع اختيارية، ولكن في حال دعمها، std::float128_tفإنها تُعادل دقة رباعية.
في معالجات x86 و x86-64، تُنفّذ معظم مُجمّعات لغة C/C++ الشائعة long doubleإما بدقة مُوسّعة 80 بت (مثل مُجمّع GNU C، gcc [ 13 ] ، ومُجمّع Intel C++ مع خيار [ 14 ] )، أو ببساطة كدقة مُضاعفة (مثل Microsoft Visual C++ [ 15 ] )، بدلاً من الدقة الرباعية. يُحدّد معيار استدعاء الإجراءات لبنية ARM 64 بت (AArch64) أن الدقة الرباعية تُطابق تنسيق IEEE 754. [ 16 ] في بعض البنى الأخرى، تُنفّذ بعض مُجمّعات لغة C/C++ الدقة الرباعية، مثل gcc على معالجات PowerPC (كدقة مُضاعفة مزدوجة [ 17 ] [ 18 ] [ 19 ] ) و SPARC ، [ 20 ] أو مُجمّعات Sun Studio على معالجات SPARC. [ 21 ] مع ذلك، حتى وإن لم تكن الدقة رباعية، فإن بعض مُجمِّعات لغة C/C++ تُوفِّر نوعًا غير قياسي للدقة الرباعية كإضافة. على سبيل المثال، يُوفِّر مُجمِّع gcc نوعًا للدقة الرباعية يُسمى لوحدات المعالجة المركزية x86 و x86-64 و Itanium ، [ 22 ] وعلى PowerPC كنوع IEEE 128-bit float-point باستخدام الخيارين -mfloat128-hardware أو -mfloat128؛ [ 23 ] وتُوفِّر بعض إصدارات مُجمِّع لغة C/C++ من Intel لوحدات x86 و x86-64 نوعًا غير قياسي للدقة الرباعية يُسمى . [ 24 ]/Qlong‑doublelong doublelong doublelong double__float128_Quad
يوفر Zig الدعم لذلك من خلال f128نوعه. [ 25 ]
توفر لغة Carbon التي لا تزال قيد التطوير من جوجل دعمًا لذلك من خلال النوع المسمى f128. [ 26 ]
اعتبارًا من عام 2026، تعمل لغة Rustf128 حاليًا على إضافة نوع جديد للأعداد العشرية ذات الدقة الرباعية 128 بت وفقًا لمعيار IEEE. [ 27 ]
المكتبات وصناديق الأدوات
- توفر مكتبة الرياضيات ذات الدقة الرباعية الخاصة بـ GCC ، libquadmath
__float128، العمليات الحسابية__complex128. - توفر مكتبة Boost متعددة الدقة Boost.Multiprecision واجهة C++ موحدة عبر المنصات لأنواع
__float128البيانات_Quad، وتتضمن تطبيقًا مخصصًا لمكتبة الرياضيات القياسية. [ 28 ] - تتيح مجموعة أدوات الحوسبة متعددة الدقة لبرنامج MATLAB إجراء عمليات حسابية بدقة رباعية في MATLAB . وهي تتضمن وظائف حسابية أساسية بالإضافة إلى طرق عددية، وجبر خطي كثيف ومتفرق. [ 29 ]
- توفر حزمة DoubleFloats [ 30 ] دعمًا للحسابات المزدوجة المزدوجة للغة البرمجة جوليا.
- تتيح مكتبة doubledouble.py [ 31 ] إجراء عمليات حسابية مزدوجة في بايثون.
- يدعم برنامج Mathematica أرقام IEEE ذات الدقة الرباعية: قيم الفاصلة العائمة 128 بت (Real128)، وقيم مركبة 256 بت (Complex256).
دعم الأجهزة
أُضيفت دقة IEEE الرباعية إلى نظام IBM System/390 G5 في عام 1998، [ 32 ] وهي مدعومة في معالجات z/Architecture اللاحقة . [ 33 ] [ 34 ] يدعم معالج IBM POWER9 ( Power ISA 3.0 ) دقة 128 بت بشكل أصلي. [ 23 ]
تم تعريف الدعم الأصلي للأعداد العشرية ذات 128 بت من نوع IEEE في معمارية PA-RISC 1.0، [ 35 ] وفي معمارية SPARC V8 [ 36 ] وV9 [ 37 ] (على سبيل المثال، هناك 16 مسجلاً رباعي الدقة %q0، %q4، ...)، ولكن لا يوجد معالج SPARC ينفذ عمليات رباعية الدقة في الأجهزة حتى عام 2004.[ 38 ]
تمت إضافة الدقة الموسعة غير المتوافقة مع معيار IEEE (128 بت من التخزين، 1 بت للإشارة، 7 بتات للأس، 112 بت للكسر، 8 بتات غير مستخدمة) إلى سلسلة IBM System/370 (1970-1980) وكانت متاحة في بعض طرازات System/360 في الستينيات (System/360-85، [ 39 ] -195، وغيرها بناءً على طلب خاص أو محاكاة بواسطة برامج نظام التشغيل).
تدعم أجهزة الكمبيوتر المركزية من سلسلة Siemens 7.700 و 7.500 وخلفائها نفس تنسيقات وتعليمات الفاصلة العائمة مثل IBM System/360 و System/370.
استخدم معالج VAX تنسيق الفاصلة العائمة رباعية الدقة غير المتوافق مع معيار IEEE، تحت مسمى "H Floating-point". احتوى هذا التنسيق على بت إشارة واحد، وأس مكون من 15 بت، و112 بت للكسر. مع ذلك، كان تخطيط الذاكرة مختلفًا بشكل ملحوظ عن تنسيق IEEE رباعي الدقة، كما اختلف انحياز الأس أيضًا. لم تُنفذ سوى قلة من معالجات VAX الأولى تعليمات H Floating-point في مكوناتها المادية، بينما قامت جميع المعالجات الأخرى بمحاكاة H Floating-point برمجيًا.
تدعم بنية محرك المتجهات من NEC عمليات الجمع والطرح والضرب والمقارنة للأعداد الثنائية ذات الدقة الرباعية IEEE 754 بطول 128 بت. [ 40 ] يتم استخدام سجلين متجاورين بطول 64 بت. لا يدعم سجل المتجهات العمليات الحسابية ذات الدقة الرباعية. [ 41 ]
تحدد بنية RISC -V امتداد "Q" (الدقة الرباعية) للحسابات الثنائية ذات الفاصلة العائمة 128 بت وفقًا لمعيار IEEE 754-2008. [ 42 ] سيحدد امتداد "L" (غير معتمد بعد) حسابات الفاصلة العائمة العشرية 64 بت و128 بت. [ 43 ]
لا ينبغي الخلط بين التنفيذ المادي ذي الدقة الرباعية (128 بت) و"وحدات معالجة الفاصلة العائمة 128 بت" التي تنفذ تعليمات SIMD ، مثل Streaming SIMD Extensions أو AltiVec ، والتي تشير إلى متجهات 128 بت لأربع قيم أحادية الدقة 32 بت أو قيمتين مزدوجتي الدقة 64 بت يتم تشغيلها في وقت واحد.
انظر أيضاً
- معيار IEEE 754 ، معيار IEEE للحسابات ذات الفاصلة العائمة
- ISO/IEC 10967 ، الحساب المستقل عن اللغة
- نوع البيانات الأولية
- الترميز Q (التدوين العلمي)
مراجع
- ↑ بيلي، ديفيد هـ.؛ بورواين، جوناثان م. (6 يوليو 2009). "الحوسبة عالية الدقة والفيزياء الرياضية" (PDF) .
- ↑ هايام، نيكولاس (2002). "تصميم خوارزميات مستقرة" في دقة واستقرار الخوارزميات العددية (الطبعة الثانية) . SIAM. ص 43.
- ↑ كاهان، ويليام (1 أكتوبر 1987). "ملاحظات المحاضرة حول حالة معيار IEEE 754 للحساب الثنائي ذي الفاصلة العائمة" (PDF) .
- ١ ٢ ٣ ٤ يوزو هيدا، إكس. لي، ودي إتش بيلي، الحساب الرباعي المزدوج: الخوارزميات، والتنفيذ، والتطبيق ، تقرير فني من مختبر لورانس بيركلي الوطني LBNL-46996 (٢٠٠٠). وأيضًا واي. هيدا وآخرون، مكتبة للحساب المزدوج المزدوج والرباعي المزدوج (٢٠٠٧).
- 1 2 3 J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates , Discrete & Computational Geometry 18: 305–363, 1997.
- ↑ كنوت، دي إي فن برمجة الحاسوب ( الطبعة الثانية). الفصل 4.2.3. المسألة 9.
- ↑ روبرت مونافو. F107 و F161 أنواع بيانات الفاصلة العائمة عالية الدقة (2011).
- ↑ نوع بيانات الفاصلة العائمة الطويلة المزدوجة 128 بت .
- ↑ sourceware.org ردًا على: حالة مكتبة glibc libm
- ↑ "موجز منتج مُترجم لغة فورتران من إنتل (نسخة مؤرشفة على موقع web.archive.org)" (ملف PDF) . أُرشف من الأصل في 25 أكتوبر 2008. تم الاطلاع عليه في 23 يناير 2010 .
- ↑ "سلسلة إصدارات GCC 4.6 - التغييرات والميزات الجديدة والإصلاحات" . تم الاطلاع عليه بتاريخ 2010-02-06 .
- ↑ "ISO/IEC TS 18661-3" (ملف PDF) . 10-06-2015 . تم الاطلاع عليه بتاريخ 22-09-2019 .
- ↑ خيارات i386 و x86-64 (نسخة مؤرشفة على web.archive.org) ، استخدام مجموعة مترجمات GNU .
- ↑ موقع مطوري إنتل .
- ↑ الصفحة الرئيسية لـ MSDN، حول مُترجم Visual C++ .
- ↑ "معيار استدعاء الإجراءات لبنية ARM 64 بت (AArch64)" (ملف PDF) . 22-05-2013. مؤرشف من الأصل (ملف PDF) بتاريخ 16-10-2019 . تم الاطلاع عليه بتاريخ 22-09-2019 .
- ↑ خيارات RS/6000 و PowerPC ، باستخدام مجموعة مترجمات GNU .
- ↑ داخل ماكنتوش - قسم الأرقام في باور بي سي . مؤرشف في 9 أكتوبر 2012، في أرشيف الإنترنت .
- ↑ إجراءات دعم الأعداد المزدوجة الطويلة 128 بت لنظام التشغيل داروين. مؤرشفة بتاريخ 2017-11-07 في Wayback Machine .
- ↑ خيارات SPARC ، استخدام مجموعة مترجمات GNU .
- ↑ مكتبات الرياضيات ، دليل الحساب العددي لبرنامج صن ستوديو 11(2005).
- ↑ أنواع البيانات العائمة الإضافية ، باستخدام مجموعة مترجمات GNU
- 1 2 "سلسلة إصدارات GCC 6 - التغييرات والميزات الجديدة والإصلاحات" . تم الاطلاع عليه بتاريخ 13-09-2016 .
- ↑ منتديات Intel C++ (2007).
- ↑ "Floats" . ziglang.org . تم الاطلاع عليه في 7 يناير 2024 .
- ↑ "المستودع الرئيسي للغة Carbon - تصميم اللغة" . GitHub . 2022-08-09 . تم الاطلاع عليه بتاريخ 2022-09-22 .
- ↑ كروس، ترافيس. "مشكلة تتبع أنواع الأعداد العشرية f16 و f128" . جيت هاب . تم الاسترجاع في 2024-07-05 .
- ↑ "Boost.Multiprecision – float128" . تم الاطلاع عليه بتاريخ 22-06-2015 .
- ↑ هولوبورودكو، بافيل (2013-01-20). "حسابات سريعة بدقة رباعية في MATLAB" . تم الاسترجاع في 22-06-2015 .
- ↑ "DoubleFloats.jl" . GitHub .
- ↑ "doubledouble.py" . جيثب .
- ↑ شوارتز، إي إم؛ كريغوفسكي، سي إيه (سبتمبر 1999). "وحدة الفاصلة العائمة S/390 G5". مجلة آي بي إم للبحوث والتطوير . 43 (5/6): 707-721 . CiteSeerX 10.1.1.117.6711 . doi : 10.1147/rd.435.0707 .
- ^ جيرويج، ج. ويتر، ه.؛ شوارتز، م. هيس، J.؛ كريغوفسكي، كاليفورنيا؛ فلايشر، بي إم؛ كرونر، م. (مايو 2004). "وحدة الفاصلة العائمة IBM eServer z990. IBM J. Res. Dev. 48". ص 311 – 322.
- ↑ شوارتز، إريك (22 يونيو 2015). "مسرعات IBM z13 SIMD للأعداد الصحيحة والسلاسل النصية والأعداد العشرية" (ملف PDF) . مؤرشف من الأصل (ملف PDF) في 13 يوليو 2015. تم الاطلاع عليه في 13 يوليو 2015 .
- ↑ "دعم المطورين لتنسيقات التبادل الثنائي" . معهد مهندسي الكهرباء والإلكترونيات (IEEE ). مؤرشف من الأصل بتاريخ 27-10-2017 . تم الاطلاع عليه بتاريخ 15-07-2021 .
- ↑ دليل بنية SPARC: الإصدار 8 (نسخة مؤرشفة على web.archive.org) (PDF) . شركة SPARC الدولية، 1992. مؤرشف من النسخة الأصلية (PDF) بتاريخ 4 فبراير 2005. تم الاطلاع عليه بتاريخ 24 سبتمبر 2011.
SPARC هي بنية مجموعة تعليمات (ISA) تعتمد على الأعداد الصحيحة 32 بت، والأعداد العشرية IEEE Standard 754 ذات 32 و64 و128 بت كأنواع بيانات رئيسية.
- ↑ ويفر، ديفيد ل.؛ جيرموند، توم، محرران. (1994). دليل بنية SPARC: الإصدار 9 (نسخة مؤرشفة على web.archive.org) (PDF) . SPARC International, Inc. مؤرشف من الأصل (PDF) بتاريخ 18 يناير 2012. تم الاطلاع عليه بتاريخ 24 سبتمبر 2011.
الفاصلة العائمة: توفر البنية مجموعة تعليمات الفاصلة العائمة المتوافقة مع معيار IEEE 754، والتي تعمل على ملف سجلات منفصل يوفر 32 سجلًا أحادي الدقة (32 بت)، أو 32 سجلًا مزدوج الدقة (64 بت)، أو 16 سجلًا رباعي الدقة (128 بت)، أو مزيجًا منها.
- ↑ "سلوك وتنفيذ SPARC" . دليل الحساب العددي - Sun Studio 10. شركة Sun Microsystems، 2004. تم الاطلاع عليه بتاريخ 24-09-2011 .
مع ذلك، توجد أربع حالات لا يُكمل فيها الجهاز بنجاح تنفيذ تعليمات الفاصلة العائمة: ... لم يتم تنفيذ التعليمات بواسطة الجهاز (مثل ... تعليمات الدقة الرباعية على أي وحدة معالجة الفاصلة العائمة SPARC).
- ↑ بادجز، أ. (1968). "الجوانب الهيكلية لنظام System/360 موديل 85، الجزء الثالث: امتدادات لبنية الفاصلة العائمة". مجلة أنظمة IBM . 7 : 22-29 . doi : 10.1147/sj.71.0022 .
- ↑ دليل مرجع لغة التجميع لمحرك المتجهات ، الفصل 4: بناء جملة المُجمِّع، الصفحة 23.
- ↑ دليل بنية SX-Aurora TSUBASA، الإصدار 1.1 ، الصفحات 38 و60.
- ↑ مواصفات RISC-V ISA الإصدار 20191213 ، الفصل 13، "Q" امتداد قياسي للنقطة العائمة رباعية الدقة، الصفحة 79.
- ↑الفصل 15، صفحة 95.
روابط خارجية
- دليل برامج عالية الدقة
- QPFloat ، مكتبة برمجية مجانية ( GPL ) لإجراء العمليات الحسابية ذات الدقة الرباعية
- HPAlib ، مكتبة برمجية مجانية ( LGPL ) للحسابات رباعية الدقة
- libquadmath ، مكتبة الرياضيات ذات الدقة الرباعية الخاصة بـ GCC
- تحليل IEEE-754 ، صفحة ويب تفاعلية لفحص قيم الفاصلة العائمة binary32 و binary64 و binary128
- الحساب الثنائي
- أنواع البيانات ذات الفاصلة العائمة
