Misplaced Pages

IEEE 754

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

A technical standard is an established norm or requirement for a repeatable technical task which is applied to a common and repeated use of rules, conditions, guidelines or characteristics for products or related processes and production methods, and related management systems practices. A technical standard includes definition of terms; classification of components; delineation of procedures; specification of dimensions, materials, performance, designs, or operations; measurement of quality and quantity in describing materials, processes, products, systems, services, or practices; test methods and sampling procedures; or descriptions of fit and measurements of size or strength.

#337662

54-464: The IEEE Standard for Floating-Point Arithmetic ( IEEE 754 ) is a technical standard for floating-point arithmetic originally established in 1985 by the Institute of Electrical and Electronics Engineers (IEEE). The standard addressed many problems found in the diverse floating-point implementations that made them difficult to use reliably and portably . Many hardware floating-point units use

108-417: A coordination problem : it emerges from situations in which all parties realize mutual gains, but only by making mutually consistent decisions. Examples : Private standards are developed by private entities such as companies, non-governmental organizations or private sector multi-stakeholder initiatives, also referred to as multistakeholder governance . Not all technical standards are created equal. In

162-424: A 34 digit decimal number. log 10   MAXVAL is a measure of the range of the encoding. Its integer part is the largest exponent shown on the output of a value in scientific notation with one leading digit in the significand before the decimal point (e.g. 1.698·10 is near the largest value in binary32, 9.999999·10 is the largest value in decimal32). The binary32 (single) and binary64 (double) formats are two of

216-404: A binary computer. In either case, the set of numbers (combinations of sign, significand, and exponent) that may be encoded is identical, and special values (±zero with the minimum exponent, ±infinity, quiet NaNs, and signaling NaNs) have identical encodings. The standard defines five rounding rules. The first two rules round to a nearest value; the others are called directed roundings : At

270-509: A custom, convention, company product, corporate standard, and so forth that becomes generally accepted and dominant is often called a de facto standard. A technical standard may be developed privately or unilaterally, for example by a corporation, regulatory body, military, etc. Standards can also be developed by groups such as trade unions and trade associations. Standards organizations often have more diverse input and usually develop voluntary standards: these might become mandatory if adopted by

324-473: A default value and has a corresponding status flag that is raised when the exception occurs. No other exception handling is required, but additional non-default alternatives are recommended (see § Alternate exception handling ). The five possible exceptions are These are the same five exceptions as were defined in IEEE 754-1985, but the division by zero exception has been extended to operations other than

378-434: A floating-point standard arose from chaos in the business and scientific computing industry in the 1960s and 1970s. IBM used a hexadecimal floating-point format with a longer significand and a shorter exponent . CDC and Cray computers used ones' complement representation, which admits a value of +0 and −0. CDC 60-bit computers did not have full 60-bit adders, so integer arithmetic was limited to 48 bits of precision from

432-434: A government (i.e., through legislation ), business contract, etc. The standardization process may be by edict or may involve the formal consensus of technical experts. The primary types of technical standards are: Technical standards are defined as: Technical standards may exist as: When a geographically defined community must solve a community-wide coordination problem , it can adopt an existing standard or produce

486-515: A large user base, doing some well established thing that between them is mutually incompatible. Establishing national/regional/international standards is one way of preventing or overcoming this problem. To further support this, the WTO Technical Barriers to Trade (TBT) Committee published the "Six Principles" guiding members in the development of international standards. The existence of a published standard does not imply that it

540-462: A magnitude strictly larger than k are rounded to the corresponding infinity. "Round to nearest, ties to even" is the default for binary floating point and the recommended default for decimal. "Round to nearest, ties to away" is only required for decimal implementations. Unless specified otherwise, the floating-point result of an operation is determined by applying the rounding function on the infinitely precise (mathematical) result. Such an operation

594-412: A new one. The main geographic levels are: National/Regional/International standards is one way of overcoming technical barriers in inter-local or inter-regional commerce caused by differences among technical regulations and standards developed independently and separately by each local, local standards organisation , or local company. Technical barriers arise when different groups come together, each with

SECTION 10

#1732786607338

648-621: A number of papers in relation to the proliferation of private food safety standards in the agri-food industry, mostly driven by standard harmonization under the multistakeholder governance of the Global Food Safety Initiative (GFSI). With concerns around private standards and technical barriers to trade (TBT), and unable to adhere to the TBT Committee's Six Principles for the development of international standards because private standards are non-consensus,

702-428: A precision between two basic formats the exponent range must be as great as that of the next wider basic format. So for instance a 64-bit extended precision binary number must have an 'emax' of at least 16383. The x87 80-bit extended format meets this requirement. The original IEEE 754-1985 standard also had the concept of extended formats , but without any mandatory relation between emin and emax . For example,

756-453: A predicate totalOrder , which defines a total ordering on canonical members of the supported arithmetic format. The predicate agrees with the comparison predicates (see section § Comparison predicates ) when one floating-point number is less than the other. The main differences are: The totalOrder predicate does not impose a total ordering on all encodings in a format. In particular, it does not distinguish among different encodings of

810-529: A revision process started in September 2015, chaired by David G. Hough and edited by Mike Cowlishaw. It incorporates mainly clarifications (e.g. totalOrder ) and defect fixes (e.g. minNum ), but also includes some new recommended operations (e.g. augmentedAddition ). The international standard ISO/IEC 60559:2020 (with content identical to IEEE 754-2019) has been approved for adoption through ISO/IEC JTC 1 /SC 25 and published. The next projected revision of

864-455: A seven-year revision process, chaired by Dan Zuras and edited by Mike Cowlishaw . It replaced both IEEE 754-1985 (binary floating-point arithmetic) and IEEE 854-1987 Standard for Radix-Independent Floating-Point Arithmetic . The binary formats in the original standard are included in this new standard along with three new basic formats, one binary and two decimal. To conform to the current standard, an implementation must implement at least one of

918-562: A single international standard ; ISO 9001 (quality), ISO 14001 (environment), ISO 45001 (occupational health and safety), ISO 27001 (information security) and ISO 22301 (business continuity). Another example of a sector working with a single international standard is ISO 13485 (medical devices), which is adopted by the International Medical Device Regulators Forum (IMDRF). In 2020, Fairtrade International , and in 2021, Programme for

972-404: Is always useful or correct. For example, if an item complies with a certain standard, there is not necessarily assurance that it is fit for any particular use. The people who use the item or service (engineers, trade unions, etc.) or specify it (building codes, government, industry, etc.) have the responsibility to consider the available standards, specify the correct one, enforce compliance, and use

1026-405: Is complicated by the fact that some external indicator of the encoding in use may be required. The two options allow the significand to be encoded as a compressed sequence of decimal digits using densely packed decimal or, alternatively, as a binary integer . The former is more convenient for direct hardware implementation of the standard, while the latter is more suited to software emulation on

1080-513: Is intended for the exchange or storage of small numbers (e.g., for graphics). The encoding scheme for these binary interchange formats is the same as that of IEEE 754-1985: a sign bit, followed by w exponent bits that describe the exponent offset by a bias , and p  − 1 bits that describe the significand. The width of the exponent field for a k -bit format is computed as w  = round(4 log 2 ( k )) − 13. The existing 64- and 128-bit formats follow this rule, but

1134-408: Is said to be correctly rounded . This requirement is called correct rounding . Required operations for a supported arithmetic format (including the basic formats) include: The standard provides comparison predicates to compare one floating-point datum to another in the supported arithmetic format. Any comparison with a NaN is treated as unordered. −0 and +0 compare as equal. The standard provides

SECTION 20

#1732786607338

1188-439: Is the case whether or not it is interpreted as a floating-point or integer value. The purpose of this is to enable high speed comparisons between floating-point numbers using fixed-point hardware. If there are e {\displaystyle e} bits in the exponent, the bias is typically set as b = 2 e − 1 − 1 {\displaystyle b=2^{e-1}-1} . Therefore,

1242-506: The Motorola 68881 80-bit format, where emin = − emax , was a conforming extended format, but it became non-conforming in the 2008 revision. Interchange formats are intended for the exchange of floating-point data using a bit string of fixed length for a given format. For the exchange of binary floating-point numbers, interchange formats of length 16 bits, 32 bits, 64 bits, and any multiple of 32 bits ≥ 128 are defined. The 16-bit format

1296-583: The WTO does not rule out the possibility that the actions of private standard-setting bodies may be subject to WTO law. BSI Group compared private food safety standards with "plugs and sockets", explaining the food sector is full of "confusion and complexity". Also, "the multiplicity of standards and assurance schemes has created a fragmented and inefficient supply chain structure imposing unnecessary costs on businesses that have no choice but to pass on to consumers". BSI provide examples of other sectors working with

1350-413: The exponent is biased in the engineering sense of the word – the value stored is offset from the actual value by the exponent bias , also called a biased exponent . Biasing is done because exponents have to be signed values in order to be able to represent both tiny and huge values, but two's complement , the usual representation for signed values, would make comparison harder. To solve this problem

1404-406: The 16- and 32-bit formats have more exponent bits (5 and 8 respectively) than this formula would provide (3 and 7 respectively). As with IEEE 754-1985, the biased-exponent field is filled with all 1 bits to indicate either infinity (trailing significand field = 0) or a NaN (trailing significand field ≠ 0). For NaNs, quiet NaNs and signaling NaNs are distinguished by using the most significant bit of

1458-468: The Endorsement of Forest Certification (PEFC) issued position statements defending their use of private standards in response to reports from The Institute for Multi-Stakeholder Initiative Integrity (MSI Integrity) and Greenpeace. Private standards typically require a financial contribution in terms of an annual fee from the organizations who adopt the standard. Corporations are encouraged to join

1512-601: The IEEE 754 standard. The standard defines: IEEE 754-2008 , published in August 2008, includes nearly all of the original IEEE 754-1985 standard, plus the IEEE 854-1987 Standard for Radix-Independent Floating-Point Arithmetic . The current version, IEEE 754-2019, was published in July 2019. It is a minor revision of the previous version, incorporating mainly clarifications, defect fixes and new recommended operations. The need for

1566-475: The basic formats as both an arithmetic format and an interchange format. The international standard ISO/IEC/IEEE 60559:2011 (with content identical to IEEE 754-2008) has been approved for adoption through ISO / IEC JTC 1 /SC 25 under the ISO/IEEE PSDO Agreement and published. The current version, IEEE 754-2019 published in July 2019, is derived from and replaces IEEE 754-2008, following

1620-406: The basic formats. An extended precision format extends a basic format by using more precision and more exponent range. An extendable precision format allows the user to specify the precision and exponent range. An implementation may use whatever internal representation it chooses for such formats; all that needs to be defined are its parameters ( b , p , and emax ). These parameters uniquely describe

1674-478: The binary formats, the leading bit convention is required. The following table summarizes some of the possible interchange formats (including the basic formats). In the table above, integer values are exact, whereas values in decimal notation (e.g. 1.0) are rounded values. The minimum exponents listed are for normal numbers; the special subnormal number representation allows even smaller (in magnitude) numbers to be represented with some loss of precision. For example,

IEEE 754 - Misplaced Pages Continue

1728-443: The board of governance of the standard owner which enables reciprocity. Meaning corporations have permission to exert influence over the requirements in the standard, and in return the same corporations promote the standards in their supply chains which generates revenue and profit for the standard owner. Financial incentives with private standards can result in a perverse incentive , where some private standards are created solely with

1782-461: The development of a technical standard, private standards adopt a non-consensus process in comparison to voluntary consensus standards. This is explained in the paper International standards and private standards . The International Trade Centre published a literature review series with technical papers on the impacts of private standards and the Food and Agriculture Organization (FAO) published

1836-468: The division. Some decimal floating-point implementations define additional exceptions, which are not part of IEEE 754: Additionally, operations like quantize when either operand is infinite, or when the result does not fit the destination format, will also signal invalid operation exception. Technical standard It is usually a formal document that establishes uniform engineering or technical criteria, methods, processes, and practices. In contrast,

1890-435: The exponent is stored as an unsigned value which is suitable for comparison, and when being interpreted it is converted into an exponent within a signed range by subtracting the bias. By arranging the fields such that the sign bit takes the most significant bit position, the biased exponent takes the middle position, then the significand will be the least significant bits and the resulting value will be ordered properly. This

1944-470: The extremes, a value with a magnitude strictly less than k = b emax ( b − 1 2 b 1 − p ) {\displaystyle k=b^{\text{emax}}\left(b-{\tfrac {1}{2}}b^{1-p}\right)} will be rounded to the minimum or maximum finite number (depending on the value's sign). Any numbers with exactly this magnitude are considered ties; this choice of tie may be conceptualized as

1998-435: The floating-point unit. Exception processing from divide-by-zero was different on different computers. Moving data between systems and even repeating the same calculations on different systems was often difficult. The first IEEE standard for floating-point arithmetic, IEEE 754-1985 , was published in 1985. It covered only binary floating-point arithmetic. A new version, IEEE 754-2008 , was published in August 2008, following

2052-452: The intent of generating money. BRCGS, as scheme owner of private standards, was acquired in 2016 by LGC Ltd who were owned by private equity company Kohlberg Kravis Roberts . This acquisition triggered substantial increases in BRCGS annual fees. In 2019, LGC Ltd was sold to private equity companies Cinven and Astorg. Exponent bias In IEEE 754 floating-point numbers,

2106-411: The item correctly. Validation of suitability is necessary. Standards often get reviewed, revised and updated on a regular basis. It is critical that the most current version of a published standard be used or referenced. The originator or standard writing body often has the current versions listed on its web site. In social sciences , including economics , a standard is useful if it is a solution to

2160-431: The memory encoding, and under the standard the explicitly represented part of the significand will lie between 0 and 1. This rule is called leading bit convention , implicit bit convention , or hidden bit convention . This rule allows the binary format to have an extra bit of precision. The leading bit convention cannot be used for the subnormal numbers as they have an exponent outside the normal exponent range and scale by

2214-431: The midpoint between ± b emax ( b − b 1 − p ) {\displaystyle \pm b^{\text{emax}}(b-b^{1-p})} and ± b emax + 1 {\displaystyle \pm b^{{\text{emax}}+1}} , which, were the exponent not limited, would be the next representable floating-point numbers larger in magnitude. Numbers with

IEEE 754 - Misplaced Pages Continue

2268-453: The most common formats used today. The figure below shows the absolute precision for both formats over a range of values. This figure can be used to select an appropriate format given the expected value of a number and the required precision. An example of a layout for 32-bit floating point is and the 64 bit layout is similar. The standard specifies optional extended and extendable precision formats, which provide greater precision than

2322-504: The number of bits used in their interchange encoding. There are three binary floating-point basic formats (encoded with 32, 64 or 128 bits) and two decimal floating-point basic formats (encoded with 64 or 128 bits). The binary32 and binary64 formats are the single and double formats of IEEE 754-1985 respectively. A conforming implementation must fully implement at least one of the basic formats. The standard also defines interchange formats , which generalize these basic formats. For

2376-436: The possible integer values that the biased exponent can express lie in the range [ 1 − b , b ] {\displaystyle [1-b,b]} . To understand this range, with e {\displaystyle e} bits in the exponent, the possible unsigned integers lie in the range [ 0 , 2 e − 1 ] {\displaystyle [0,2^{e}-1]} . However,

2430-412: The result (value) does not depend on the representation of the inputs. For the decimal formats, any representation is valid, and the set of these representations is called a cohort . When a result can have several representations, the standard specifies which member of the cohort is chosen. For the binary formats, the representation is made unique by choosing the smallest representable exponent allowing

2484-609: The same floating-point representation, as when one or both encodings are non-canonical. IEEE 754-2019 incorporates clarifications of totalOrder . For the binary interchange formats whose encoding follows the IEEE 754-2008 recommendation on placement of the NaN signaling bit , the comparison is identical to one that type puns the floating-point numbers to a sign–magnitude integer (assuming a payload ordering consistent with this comparison), an old trick for FP comparison without an FPU. The standard defines five exceptions, each of which returns

2538-456: The set of finite numbers (combinations of sign, significand, and exponent for the given radix) that it can represent. The standard recommends that language standards provide a method of specifying p and emax for each supported base b . The standard recommends that language standards and implementations support an extended format which has a greater precision than the largest basic format supported for each radix b . For an extended format with

2592-628: The smallest non-zero positive number that can be represented is 1×10, and the largest is 9999999×10 (9.999999×10), so the full range of numbers is −9.999999×10 through 9.999999×10. The numbers − b and b (here, −1×10 and 1×10) are the smallest (in magnitude) normal numbers ; non-zero numbers between these smallest numbers are called subnormal numbers . Some numbers may have several possible floating-point representations. For instance, if b  = 10, and p  = 7, then −12.345 can be represented by −12345×10, −123450×10, and −1234500×10. However, for most operations, such as arithmetic operations,

2646-409: The smallest positive number that can be represented in binary64 is 2; contributions to the −1074 figure include the emin value −1022 and all but one of the 53 significand bits (2 = 2). Decimal digits is the precision of the format expressed in terms of an equivalent number of decimal digits. It is computed as digits × log 10 base . E.g. binary128 has approximately the same precision as

2700-518: The smallest represented exponent as used for the smallest normal numbers. Due to the possibility of multiple encodings (at least in formats called interchange formats ), a NaN may carry other information: a sign bit (which has no meaning, but may be used by some operations) and a payload , which is intended for diagnostic information indicating the source of the NaN (but the payload may have other uses, such as NaN-boxing ). The standard defines five basic formats that are named for their numeric base and

2754-407: The standard is in 2029. An IEEE 754 format is a "set of representations of numerical values and symbols". A format may also include how the set is encoded. A floating-point format is specified by A format comprises For example, if b = 10, p = 7, and emax = 96, then emin = −95, the significand satisfies 0 ≤ c ≤ 9 999 999 , and the exponent satisfies −101 ≤ q ≤ 90 . Consequently,

SECTION 50

#1732786607338

2808-455: The strings containing all zeros and all ones are reserved for special values, so the expressible integers lie in the range [ 1 , 2 e − 2 ] {\displaystyle [1,2^{e}-2]} . It follows that: When interpreting the floating-point number, the bias is subtracted to retrieve the actual exponent. The floating-point format of the IBM 704 introduced

2862-399: The trailing significand field exclusively, and the payload is carried in the remaining bits. For the exchange of decimal floating-point numbers, interchange formats of any multiple of 32 bits are defined. As with binary interchange, the encoding scheme for the decimal interchange formats encodes the sign, exponent, and significand. Two different bit-level encodings are defined, and interchange

2916-445: The value to be represented exactly. Further, the exponent is not represented directly, but a bias is added so that the smallest representable exponent is represented as 1, with 0 used for subnormal numbers. For numbers with an exponent in the normal range (the exponent field being neither all ones nor all zeros), the leading bit of the significand will always be 1. Consequently, a leading 1 can be implied rather than explicitly present in

#337662