چکیده
برخی از پردازندههای مدرن شامل واحدهای نقطه-شناور اعشاری، با تایید پیادهسازی استاندارد IEEE-754 2008 هستند. متاسفانه بسیاری از الگوریتمهای ارائه شده در تحقیقات محاسبات کامپیوتری هنگام انجام محاسبات بر مبنای 10، دیگر درست نیستند. این امر به ویژه در مورد محاسبه میانگین دو عدد نقطه شناور اتفاق میافتد. چند الگوریتم مبنای 2، از جمله الگوریتمی که گرد کردن صحیح را فراهم میسازد، قابل دسترس هستند، اما در مبنای 10 درست نیستند. برای تضمین سطح اطمینان بالاتر، همچنین برهان رسمی Coq از قضایای خود را فراهم میکنیم که پاریز تدریجی را ملاحظه میکند. توجه کنید که برهان رسمی ما برای حصول اطمینان از درست بودن این الگوریتم هنگام انجام محاسبات در هر مبنای زوجی تعمیم داده میشوند.
1. پیشگفتار
محاسبات نقطه-شناور (FP) در هر جایی از زندگی ما وجود دارند. این محاسبات در نرمافزارهای کنترل و برای محاسبه پیشبینیهای آب و هوایی مورد استفاده قرار میگیرند و بلوک اساسی بسیاری از سیستمهای هیبرید (ترکیبی) – سیستمهای تعبیه شده که محاسبات پیوسته، مانند نتایج حسگرها، و محاسبات گسسته، مانند محاسبات ساعت-محدود ، را ترکیب میکنند – هستند. محاسبات کامپیوتری [1، 2]، عمدتا به عنوان نادرست شناخته میشوند (اگر اصلا شناخته شوند)، زیرا تنها تعداد محدودی رقم برای جزء اعشاری نگه داشته میشوند. علاوهبراین، تنها تعداد محدودی رقم برای نما حفظ میشوند. این امر، انتظارات سرریز و پاریز را ایجاد میکند که اغلب نادیده گرفته میشوند. در اینجا بیشتر علاقمند به بررسی پاریز هستیم.
Abstract
Some modern processors include decimal floating-point units, with a conforming implementation of the IEEE-754 2008 standard. Unfortunately, many algorithms from the computer arithmetic literature are not correct anymore when computations are done in radix 10. This is in particular the case for the computation of the average of two floating-point numbers. Several radix-2 algorithms are available, including one that provides the correct rounding, but none hold in radix 10. This paper presents a new radix-10 algorithm that computes the correctly-rounded average. To guarantee a higher level of confidence, we also provide a Coq formal proof of our theorems, that takes gradual underflow into account. Note that our formal proof was generalized to ensure this algorithm is correct when computations are done with any even radix.
1. Introduction
Floating-point (FP) computations are everywhere in our lives. They are used in control software, used to compute weather forecasts, and are a basic block of many hybrid systems: embedded systems mixing continuous, such as sensors results, and discrete, such as clock-constrained computations. Computer arithmetic [1], [2], is mostly known (if known at all) to be inaccurate, as only a finite number of digits is kept for the mantissa. On top of that, only a finite number of digits is kept for the exponent. This creates the underflow and overflow exceptions, that are often dismissed. We are here mostly interested in handling underflow.
چکیده
1. پیشگفتار
2. الگوریتمهای میانگین مبنای 2
3. الگوریتمهای ناموفق میانگین مبنای 10
4. الگوریتم برای میانگین اعداد نقطه شناور اعشاری
5. برهان رسمی
6. نتیجهگیری و چشماندازها
Abstract
1. Introduction
2. Radix-2 Average Algorithms
3. Unsuccessful Radix-10 Average Algorithms
4. Algorithm for the Average of Decimal FP Numbers
5. Formal Proof
6. Conclusion and Perspectives