کمبود حسابی
اصطلاح کمبود حسابی (همچنین underflow point floating point، یا فقط underflow) شرایطی در یک برنامه کامپیوتری است که مقدار نتیجه محاسبه کوچکتر از چیزی است که کامپیوتر واقعاً میتواند در حافظه واحد پردازش مرکزی خود (CPU) نشان دهد.
کمبود حساب ممکن است زمانی اتفاق بیفتد که نتیجه واقعی یک کار نقطه شناور از نظر کوچکتر بودن مقدار (یعنی نزدیک به صفر) از کوچکترین مقدار قابل نمایش به عنوان یک عدد اعشاری نرمال در نوع داده هدف باشد.[۱] می پاریز در بخش به عنوان منفی در نظر گرفته سرریز از توان از ارزش ممیز شناور. به عنوان مثال، اگر قسمت نمایانگر میتواند مقادیری از ۱۲۸- تا ۱۲۷ را نشان دهد، نتیجه ای با مقدار کمتر از ۱۲۸- ممکن است باعث کمبود جریان شود.
ذخیره مقادیر بسیار کم در یک متغیر عدد صحیح (به عنوان مثال، تلاش برای ذخیرهسازی ۱- در عدد صحیح نا منفی) به درستی به عنوان overflow عدد صحیح، یا بهطور گستردهتر، عدد صحیح عدد صحیح ذکر میشود. اصطلاح underflow بهطور معمول فقط به عددهای اعشاری اشاره دارد که مسئله ای جداگانه است. در بیشتر طرحهای با ممیز ذخیره مقدار خیلی کم امکانپذیر نیست، زیرا معمولاً آنها علامت دار شده و دارای مقدار نامتناهی منفی هستند.
شکاف پایین
[ویرایش]فاصله بین fminN- و fminN، جایی که fminN کوچکترین مقدار مثبت اعشاری طبیعی است، شکاف کم جریان نامیده میشود. دلیل این امر این است که اندازه این فاصله بسیاری از دستورات بزرگتر از فاصله بین مقادیر اعشاری طبیعی مجاور درست در خارج از شکاف است. به عنوان مثال، اگر نوع داده اعشاری بتواند ۲۰ بیت را نشان دهد، فاصله کم جریان 2 21 برابر بیشتر از فاصله مطلق بین مقادیر اعشاری مجاور درست در خارج از شکاف است.
در طراحیهای قدیمی تر، شکاف کم جریان فقط یک مقدار قابل استفاده داشت، صفر. هنگامی که کمبود جریان رخ داد، نتیجه واقعی با صفر جایگزین شد (یا مستقیماً توسط سختافزار یا توسط نرمافزار سیستم که شرایط اولیه کمبود جریان را دارد). این جایگزین «فلاش به صفر» نامیده میشود.
نسخه 1984 IEEE 754 اعداد غیرطبیعی را معرفی کرد. اعداد غیرعادی (از جمله صفر) شکاف زیر جریان را با مقادیری پر میکنند که فاصله مطلق بین مقادیر مجاور همان مقدار مقادیر مجاور درست در خارج از شکاف جریان کم باشد. این «کمبود جریان تدریجی» را امکانپذیر میسازد، جایی که از نزدیکترین مقدار غیرطبیعی استفاده میشود، همانطور که در صورت امکان از نزدیکترین مقدار طبیعی نیز استفاده میشود. حتی هنگام استفاده از کمبود جریان تدریجی، نزدیکترین مقدار ممکن است صفر باشد.[۲]
فاصله مطلق بین مقادیر اعشار مجاور درست در خارج از شکاف epsilon ماشین نامیده میشود، بهطور معمول با بزرگترین مقداری مشخص میشود که حاصل جمع آن با مقدار ۱ منجر به پاسخ با مقدار ۱ در آن طرح نقطه شناور شود. میتوان اینگونه نوشت ، جایی که تابعی است که مقدار واقعی را به نمایش نقطه شناور تبدیل میکند. در حالی که اپسیلون دستگاه نباید با سطح کم جریان (با فرض اعداد غیرطبیعی) اشتباه گرفته شود، این رابطه نزدیک است. اپسیلون دستگاه وابسته به تعداد بیتهای که تا میباشد ضریب علمی، در حالی که سطح سرریز بستگی به تعداد ارقام است که زمینه نما را تشکیل میدهند. در اکثر سیستمهای نقطه شناور، سطح کم جریان از اپسیلون ماشین کمتر است.
جابجایی زیر جریان
[ویرایش]وقوع یک جریان کم ممکن است یک بیت وضعیت «چسبنده» تنظیم کند، یک استثنا را ایجاد کند، در سطح سختافزار ایجاد وقفه کند یا ترکیبی از این اثرات ایجاد کند.
همانطور که در IEEE 754 مشخص شده است، شرایط کمبود جریان فقط در صورت کاهش دقت نشان داده میشود. بهطور معمول این به عنوان نادرست بودن نتیجه نهایی تعیین میشود. با این حال، اگر کاربر در زیر جریان گیر افتاده باشد، بدون توجه به کاهش دقت، ممکن است این اتفاق بیفتد. مدیریت پیش فرض در IEEE 754 برای کمبود جریان (و همچنین سایر موارد استثنایی) ثبت به عنوان یک وضعیت نقطه شناور است که کمبود جریان رخ داده است. این برای سطح برنامهنویسی برنامه مشخص شده است، اما اغلب به عنوان نحوه مدیریت آن در سطح سختافزار نیز تفسیر میشود.
جستارهای وابسته
[ویرایش]- عدد غیرطبیعی
- ممیز شناور حسابی
- IEEE 754
- سرریز عدد صحیح
- سیستم اعداد لگاریتمی
- اپسیلون ماشین
- شماره عادی (محاسبه)
منابع
[ویرایش]- ↑ Coonen, Jerome T (1980). "An implementation guide to a proposed standard for floating-point arithmetic". Computer. 13 (1): 68–79. doi:10.1109/mc.1980.1653344.
- ↑ Demmel, James (1984). "Underflow and the Reliability of Numerical Software". SIAM Journal on Scientific and Statistical Computing. 5 (4): 887–919. doi:10.1137/0905062.