اصطلاح کمبود حسابی (همچنین underflow point floating point ، یا فقط underflow ) شرایطی در یک برنامه کامپیوتری است که مقدار نتیجه محاسبه کوچکتر از چیزی است که کامپیوتر واقعاً می تواند در حافظه واحد پردازش مرکزی خود (CPU) نشان دهد.

کمبود حساب ممکن است زمانی اتفاق بیفتد که نتیجه واقعی یک کار نقطه شناور از نظر کوچکتر بودن مقدار (یعنی نزدیک به صفر) از کوچکترین مقدار قابل نمایش به عنوان یک عدد اعشاری نرمال در نوع داده هدف باشد. [۱] می پاریز در بخش به عنوان منفی در نظر گرفته سرریز از توان از ارزش ممیز شناور. به عنوان مثال ، اگر قسمت نمایانگر می تواند مقادیری از 128- تا 127 را نشان دهد ، نتیجه ای با مقدار کمتر از 128- ممکن است باعث کمبود جریان شود.

ذخیره مقادیر بسیار کم در یک متغیر عدد صحیح (به عنوان مثال ، تلاش برای ذخیره سازی 1- در عدد صحیح نا منفی) به درستی به عنوان overflow عدد صحیح ، یا به طور گسترده تر ، عدد صحیح عدد صحیح ذکر می شود. اصطلاح underflow به طور معمول فقط به عدد های اعشاری اشاره دارد که مسئله ای جداگانه است. در بیشتر طرحهای با ممیز ذخیره مقدار خیلی کم امکان پذیر نیست ، زیرا معمولاً آنها علامت دار شده و دارای مقدار نامتناهی منفی هستند.

شکاف پایین ویرایش

فاصله بین fminN- و fminN ، جایی که fminN کوچکترین مقدار مثبت اعشاری طبیعی است ، شکاف کم جریان نامیده می شود. دلیل این امر این است که اندازه این فاصله بسیاری از دستورات بزرگتر از فاصله بین مقادیر اعشاری طبیعی مجاور درست در خارج از شکاف است. به عنوان مثال ، اگر نوع داده اعشاری بتواند 20 بیت را نشان دهد ، فاصله کم جریان 2 21 برابر بیشتر از فاصله مطلق بین مقادیر اعشاری مجاور درست در خارج از شکاف است.

در طراحی های قدیمی تر ، شکاف کم جریان فقط یک مقدار قابل استفاده داشت ، صفر. هنگامی که کمبود جریان رخ داد ، نتیجه واقعی با صفر جایگزین شد (یا مستقیماً توسط سخت افزار یا توسط نرم‌افزار سیستم که شرایط اولیه کمبود جریان را دارد). این جایگزین "فلاش به صفر" نامیده می شود.

نسخه 1984 IEEE 754 اعداد غیرطبیعی را معرفی کرد. اعداد غیر عادی (از جمله صفر) شکاف زیر جریان را با مقادیری پر می کنند که فاصله مطلق بین مقادیر مجاور همان مقدار مقادیر مجاور درست در خارج از شکاف جریان کم باشد. این "کمبود جریان تدریجی" را امکان پذیر می سازد ، جایی که از نزدیکترین مقدار غیرطبیعی استفاده می شود ، همانطور که در صورت امکان از نزدیکترین مقدار طبیعی نیز استفاده می شود. حتی هنگام استفاده از کمبود جریان تدریجی ، نزدیکترین مقدار ممکن است صفر باشد. [۲]

فاصله مطلق بین مقادیر اعشار مجاور درست در خارج از شکاف epsilon ماشین نامیده می شود ، به طور معمول با بزرگترین مقداری مشخص می شود که حاصل جمع آن با مقدار 1 منجر به پاسخ با مقدار 1 در آن طرح نقطه شناور شود. می توان اینگونه نوشت   ، جایی که   تابعی است که مقدار واقعی را به نمایش نقطه شناور تبدیل می کند. در حالی که اپسیلون دستگاه نباید با سطح کم جریان (با فرض اعداد غیرطبیعی) اشتباه گرفته شود ، این رابطه نزدیک است. اپسیلون دستگاه وابسته به تعداد بیت های که تا می باشد ضریب علمی ، در حالی که سطح سرریز بستگی به تعداد ارقام است که زمینه نما را تشکیل می دهند. در اکثر سیستم های نقطه شناور ، سطح کم جریان از اپسیلون ماشین کمتر است.

جابجایی زیر جریان ویرایش

وقوع یک جریان کم ممکن است یک بیت وضعیت "چسبنده" تنظیم کند ، یک استثنا را ایجاد کند ، در سطح سخت افزار ایجاد وقفه کند یا ترکیبی از این اثرات ایجاد کند.

همانطور که در IEEE 754 مشخص شده است ، شرایط کمبود جریان فقط در صورت کاهش دقت نشان داده می شود. به طور معمول این به عنوان نادرست بودن نتیجه نهایی تعیین می شود. با این حال ، اگر کاربر در زیر جریان گیر افتاده باشد ، بدون توجه به کاهش دقت ، ممکن است این اتفاق بیفتد. مدیریت پیش فرض در IEEE 754 برای کمبود جریان (و همچنین سایر موارد استثنایی) ثبت به عنوان یک وضعیت نقطه شناور است که کمبود جریان رخ داده است. این برای سطح برنامه نویسی برنامه مشخص شده است ، اما اغلب به عنوان نحوه مدیریت آن در سطح سخت افزار نیز تفسیر می شود.

جستارهای وابسته ویرایش

منابع ویرایش

  1. 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.
  2. 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.